Baixe o app para aproveitar ainda mais
Prévia do material em texto
16/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2775468&p0=03c7c0ace395d80182db07ae2c30f034… 1/7 ALGORITMOS 7a aula Lupa Vídeo PPT MP3 1a Questão Laços de repetição são usados para que uma determinada sequência de comandos seja repetida um determinado número de vezes, sem a necessidade de reescrever tais comandos inúmeras vezes. Marque a alternativa que apresenta corretamente a representação de um laço de repetição codificado em C++. d) if(int i;i<10;i++) {cout< < I;} e) for(i++, , int i) { cout<< I;} c) for( i>0, i<10,i++) { cout< < I;} b) if(i>10) { if (i<100) i=0;} a) for(int i=0;i<10;i++) { cout<< i;} Explicação: Verdadeira a) for(int i=0;i<10;i++) { cout<< i;} Falso. O comando if não é de repetição. É um comando condicional. b) if(i>10) { if (i<100) i=0;} Falso. A 1a. parte do for é a inicialização e não um teste como feito na opção. Deve se usar ; separando a inicialização do teste lógico e da parte dos incrementos. c) for( i>0, i<10,i++) { cout< < I;} Falso. O comando if não é de repetição e a opção ainda usa o if de forma incorreta. d) if(int i;i<10;i++) {cout< < I;} FAlso. A 1a. parte do for é a inicialização e não um incremento como feito na opção. Deve se usar ; separando a inicialização do teste lógico e da parte dos incrementos. e) for(i++, , int i) { cout<< I;} 16/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2775468&p0=03c7c0ace395d80182db07ae2c30f034… 2/7 2a Questão Considere a estrutura for ( ; ; ), e assinale a afirmação correta: Não é executada pois não tem incremento. Não é executada, pois não tem condição de teste. Não é executada, pois não tem variável. Tem a sintaxe incorreta. É um laço infinito. Explicação: Verdadeiro É um laço infinito. Falso. É possível para loops infinitos ou quase infinitos Tem a sintaxe incorreta. FAlso. É possível para loops infinitos ou quase infinitos Não é executada, pois não tem variável. Falso. O teste pode ser feito dentro do for. Não é executada, pois não tem condiçãode teste. Falso. O incremento pode ser posto dentro do for. Não é executada pois não tem incremento. 3a Questão Leia atentamente o trecho de código abaixo e diga o que ele retornaria ao usuário: int main ( ) { int i; double x, y = 0; for (i = 0; i < 10; i++){ cout << "Digite um numero: "; cin >> x; y = y + x; } cout << "Numero: " << y << "\n"; system("PAUSE"); return 0; } O maior de todos os elementos digitados A soma de todos os elementos A quantidade de elementos digitados A média dos elementos digitados A soma dos elementos pares 16/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2775468&p0=03c7c0ace395d80182db07ae2c30f034… 3/7 Explicação: Antes do loop é lido um valor e armazenado em x e a cada rodada o valor de x é acumulado em um somatório, indicado na linha : y = y + x; Assim, ao final do for, teremos em y o somatório de todos os números que x armazenou. 4a Questão Marque a opção correta. O que é impresso na tela ? int conta, x = 1, r = 1; for (conta = 2; conta >= 0; conta--) { r = r * x + 1; x += 2; cout << "r= " << r << " x = " << x << endl; } r = 2 x = 3 r = 7 x = 5 r = 36 x = 7 r = 36 x = 7 r = 2 x = 3 r = 7 x = 5 r = 3 x = 2 r = 5 x = 7 r = 3 x = 4 r = 8 x = 6 r = 37 x = 7 Explicação: int conta, x = 1, r = 1; for (conta = 2; conta >= 0; conta--) { r = r * x + 1; x += 2; cout << "r= " << r << " x = " << x << endl; } conta conta >= 0 x r 2 sim 1 1 3 2 1 sim 5 7 0 sim 7 36 -1 TELA 16/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2775468&p0=03c7c0ace395d80182db07ae2c30f034… 4/7 r = 2 x = 3 r = 7 x = 5 r = 36 x = 7 5a Questão Leia atentamente o trecho de código abaixo e diga o que ele retornaria ao usuário: int main ( ) { int i; double x, y = 0; for (i = 0; i < 10; i++){ cout << "Digite um numero: "; cin >> x; if ((x % 2) == 0){ y = y + x; } } cout << "Numero: " << y << "\n"; system("PAUSE"); return 0; } O maior de todos os elementos digitados A soma de todos os elementos A soma dos elementos pares A média dos elementos digitados A quantidade de elementos digitados Explicação: Analisando o trecho do programa dado : int i; double x, y = 0; //inicializa y que irá acumular o somatório for (i = 0; i < 10; i++){ cout << "Digite um numero: "; cin >> x; //Lê o valor de x if ((x % 2) == 0){ //testa se x é par y = y + x; //Se x é par então acumula em y o valor de x, somando todos os valores das variáveis x que são pares } } cout << "Numero: " << y << "\n"; //Imprime y, que acumulou o somatório mencionado acima 6a Questão Marque a opção correta. Considere o trecho de programa feito abaixo em C++. O que é impresso na tela ? int conta, num = 1, prod = 1; for (conta = 4; conta > 0; conta--) { prod = prod *num; num++; } cout << "Prod = " << prod << " num = " << num << endl; Prod = 1 num = 2 16/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2775468&p0=03c7c0ace395d80182db07ae2c30f034… 5/7 Prod = 2 num = 3 Prod = 6 num = 4 Prod = 24 num = 5 Prod = 6 num = 5 Prod = 24 num = 5 Prod não pode ser calculado e num assumirá o valor final 5. Prod = 6 num = 4 Explicação: Analisando o trecho e fazendo em seguida um teste de mesa : int conta, num = 1, prod = 1; for (conta = 4; conta > 0; conta--) { prod = prod *num; num++; } cout << "Prod = " << prod << " num = " << num << endl; TESTE de mesa : conta conta > 0 num prod 4 4 > 0 ? sim 1 1 3 3 > 0 ? sim 2 1 2 2 > 0 ? sim 3 2 1 1 > 0 ? sim 4 6 0 0 > 0 ? FAlso 5 24 Terminando o for, será impresso : Prod = 24 num = 5 7a Questão Após análise do código responda a questão: 16/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2775468&p0=03c7c0ace395d80182db07ae2c30f034… 6/7 Ao ser compilado e executado, o programa irá exibir na tela: Os números ímpares entre 1 e 5 (inclusive) em ordem decrescente. Os números pares entre 1 e 5 (inclusive) em ordem crescente. Os valores entre 1 e 5 (inclusive) em ordem decrescente. Os números ímpares entre 1 e 5 em ordem decrescente. Os valores entre 1 e 5 (inclusive)em ordem crescente. Explicação: Verdadeira, visto que o programa imprimirá : O valor de i e 5 O valor de i e 3 O valor de i e 1 Portanto em ordem decrescente incluindo o 5 e o 1. Os números ímpares entre 1 e 5 (inclusive) em ordem decrescente. Falso. Não é entre apenas, pois inclui 5 e 1. Os números ímpares entre 1 e 5 emordem decrescente. FAlso.É em ordem decrescente e imprime os ímpares e não os pares. Os números pares entre 1 e 5 (inclusive) em ordem crescente. FAlso. Não é qualquer valor, mas apenas os ímpares de 5 a 1, incluindo 5 e 1. Os valores entre 1 e 5 (inclusive) em ordem decrescente. FAlso. Não é qualquer valor, mas apenas os ímpares em ordem decrescente de 5 a 1. Os valores entre 1 e 5 (inclusive)em ordem crescente. 16/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2775468&p0=03c7c0ace395d80182db07ae2c30f034… 7/7 8a Questão O que o trecho de programa em C++ abaixo imprime na tela ? int x; for (x = 5; x > 0; x--) if (x % 3 == 0) cout << x - 1 << " "; else cout << x + 1 << " "; 6 5 3 2 1 6 5 2 3 1 5 4 3 2 1 5 6 3 2 1 6 5 2 3 2 Explicação: int x; for (x = 5; x > 0; x--) if (x % 3 == 0) cout << x - 1 << " "; else cout << x + 1 << " "; Analisando o trecho dado e fazendo teste de mesa : x x > 0 ? (x % 3 == 0) ? 5 5 > 0 ? sim 5 % 3 é zero ? Não. Imprime 6 4 4 > 0 ? sim 4 % 3 é zero ? não. Imprime 5 3 3 > 0 ? Sim 3 % 3 é zero ? sim. Imprime 2 2 2 > 0 ? sim 2 % 3 é zero ? não. Imprime 3 1 1 > 0 ? sim 1 % 3 é zero ? não. Imprime 2 0 0 > 0 ? não TELA 6 5 2 3 2
Compartilhar