Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercício: CCT0749_EX_A7_201801153345_V1 23/10/2018 15:38:05 (Finalizada) Aluno(a): JORGIVALDO NOGUEIRA LEAL 2018.3 EAD Disciplina: CCT0749 - ALGORITMOS 201801153345 1a 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; cout << "Digite um numero: "; cin >> x; for (i=0; i<5; i++){ cout << "Digite um numero: "; cin >> y; if (y > x){ x = y; } } cout << "Numero: " << x << "\n"; system("PAUSE"); return 0; } O menor de todos os elementos digitados O maior de todos os elementos digitados A quantidade de elementos digitados A quantidade de elementos pares A média dos elementos digitados Explicação: Ao final do programa o valor de x será impresso e vemos que a cada rodada do loop (while), o valor de entrada armazenado em y é comparado com x. Se y for maior que x, guardamos em x o maior valor. 2a Questão O que o trecho de programa em C++ abaixo imprime na tela ? int x; for (x = 1; x <= 5; x++) if (x % 3 == 0 && x % 5 == 0 ) cout << x + 2 << " "; else cout << x + 1 << " "; 2 3 4 6 1 3 5 7 9 3 5 7 9 2 4 6 8 10 2 3 4 5 6 Explicação: Analisemos o trecho : int x; for (x = 1; x <= 5; x++) if (x % 3 == 0 && x % 5 == 0 ) cout << x + 2 << " "; else cout << x + 1 << " "; Para cada x de 1 até 5, inclusive, faça : >>>> teste se x é divisível por 3 e por 5, analisando o resto da divisão com %. Se for divisível por ambos, imprime o valor de x + 2. Se não for por ambos, imprime o valor de x +1. Quando x for 6, não entraremos mais no loop. Vejamos passo a passo : >> para x igual a 1 : o teste do if falha. Então, imprimimos 2 >> para x igual a 2 : o teste do if falha. Então, imprimimos 3 >> para x igual a 3 : o teste do if falha. Então, imprimimos 4 >> para x igual a 4 : o teste do if falha. Então, imprimimos 5 >> para x igual a 5 : o teste do if falha. Então, imprimimos 6 >> para x igual a 6 : o teste do for falha. Logo, a resposta é 2 3 4 5 6 3a Questão A REPETIÇÃO é uma das estruturas básicas de programação, determine entre as atividades abaixo a que representa uma REPETIÇÃO : No trânsito, se o sinal estiver vermelho, PARE, se não, PODE PASSAR. Para encher um copo com água, mantenha a torneira aberta enquanto o copo não esitver cheio. Se um aluno obter média abaixo de 6.0 estará REPROVADO, se não estará APROVADO. Calcule a média de um aluno somando as duas maiores notas e dividindo a soma por dois. Para fazer um bolo, prepare os ingredientes, misture-os bem e ponha no forno para assar. Explicação: Falso. É um condicional. No trânsito, se o sinal estiver vermelho, PARE, se não,PODE PASSAR. Verdadeiro. Tem o comando enquanto. Para encher um copo com água, mantenha a torneira aberta enquanto o copo não esitver cheio. Falso. É uma sequência Para fazer um bolo, prepare os ingredientes, misture-os bem e ponha no forno para assar. Falso. É um comando condicional ... tem se ... se não.. Se um aluno obter média abaixo de 6.0 estará REPROVADO, se não estará APROVADO. Falso. Comando sequencial. Calcule a média de um aluno somando as duasmaiores notas e dividindo a soma por dois. 4a 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 2 3 2 5 6 3 2 1 6 5 2 3 1 6 5 3 2 1 5 4 3 2 1 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 5a 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++. b) if(i>10) { if (i<100) i=0;} e) for(i++, , int i) { cout<< I;} c) for( i>0, i<10,i++) { cout< < I;} d) if(int i;i<10;i++) {cout< < I;} 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;} 6a Questão Marque a opção correta. Considere o trecho de programa feito em C++. O valor final de s e o valor final de num, são respectivamente: int conta, num=1, s=0; for(conta = 10; conta < = 40; conta= conta+10){ s= s+num; num= num +2; } 50 e 16 16 e 9 9 e 9 o valor de s está indefinido e o valor de num é 7 50 e 9 Explicação: Acompanhe o teste de mesa : num s conta conta <= 10 ? 1 0 10 sim 3 1 20 sim 5 4 30 sim 7 9 40 sim 9 16 50 não Logo, s vale 16 e num vale 9 7a 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 = 3 x = 2 r = 5 x = 7 r = 2 x = 3 r = 7 x = 5 r = 36 x = 7 r = 3 x = 4 r = 8 x = 6 r = 37 x = 7 r = 36 x = 7 r = 2 x = 3 r = 7 x = 5 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 r = 2 x = 3 r = 7 x = 5 r = 36 x = 7 8a 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 quantidade de elementos digitados A média dos elementos digitados A soma dos elementos pares A soma de todos os elementos 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.
Compartilhar