A maior rede de estudos do Brasil

Grátis
8 pág.
Algoritmos Aula 07

Pré-visualização | Página 1 de 2

1a Questão 
 
Ao fazer um programa de computador, algumas estruturas precisam ser utilizadas. Assinale a alternativa 
correta para que um programa repita 200 vezes um bloco de comandos através da estrutura de repetição FOR 
na linguagem C++. 
 
 
 
for ( i=0; i <= 200; i++) 
 
for (int i=0, i <= 200, i++) 
 
for (int i=0; i =< 200; i++) 
 for (int i=0; i < 200; i++) 
 
for (int i=0; i <= 200; i++) 
 
 
Explicação: 
Verdadeira 
for (int i=0; i < 200; 
i++) 
Falsa. Entraremos 201 vezes no bloco do for, pois i começou de 0 e é <= no 
teste do for. 
for (int i=0; i <= 200; 
i++) 
FAlsa. A variável i não foi declarada. for ( i=0; i <= 200; i++)
 Não existe =< 
for (int i=0; i =< 200; 
i++) 
 Uso indevido do for. Não se põe vírgula e sim ponto e vírgula. 
for (int i=0, i <= 200, 
i++) 
 
 
 
 
 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 
 
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) == 1){ 
 y = y + x; 
 } 
 } 
 cout << "Numero: " << y << "\n"; 
 system("PAUSE"); 
 return 0; 
} 
 
 
 
A média dos elementos digitados 
 
A quantidade de elementos digitados 
 
O maior de todos os elementos digitados 
 
A soma de todos os elementos 
 A soma dos elementos ímpares 
 
 
Explicação: 
Comentando o programa : 
 
 double x, 
 y = 0; //inicializa o somatório 
 for (i = 0; i < 10; i++){ 
 cout << "Digite um numero: "; 
 cin >> x; //lê número e armazena em x 
 if ((x % 2) == 1){ //testa se x é ímpar. Se for então faz a acumulação em y, ou seja, gera um 
somatório com o valor de cada x 
 y = y + x; 
 } 
 } 
 cout << "Numero: " << y << "\n"; //imprime y que acumulou a soma dos valores armazenados em 
x, ou seja, os valores ímpares 
 
 
 
 4a Questão 
 
Analise o trecho de código em C++ abaixo : 
for (int x = 0; x < 10; x++) 
{ 
 if (valor[x] % 3 == 0 && valor[x] % 7 == 0) 
 cout << valor[x]; 
} 
 
 
 
 
Imprimirá na tela todos os valores de um vetor que são pares. 
 
Imprimirá na tela todos os valores de um vetor que são ímpares. 
 
Imprimirá na tela todos os valores de um vetor que não são múltiplos de 5. 
 Imprimirá na tela todos os valores de um vetor que são múltiplos de 3 e múltiplos de 7. 
 
Imprimirá na tela todos os valores de um vetor. 
 
 
Explicação: 
Verdadeiro 
 
Imprimirá na tela todos os valores de um vetor que são 
múltiplos de 3 e múltiplos de 7. 
Falso. Imprimirá o valor 105, que é múltiplo 
de 3, 7 e 5. 
 
Imprimirá na tela todos os valores de um vetor que não são 
múltiplos de 5. 
Falso. Só imprimirá os múltiplos de 3 e 7. 
 
Imprimirá na tela todos os valores de um vetor. 
Imprimirá na tela o valor 21, que é 
 
Imprimirá na tela todos os valores de um vetor que são pares.
Imprimirá na tela o valor 42, que é Imprimirá na tela todos os valores de um vetor que são 
ímpares. 
 
 
 
 
 5a Questão 
 
A REPETIÇÃO é uma das estruturas básicas de programação, determine entre as atividades abaixo a que 
representa uma REPETIÇÃO : 
 
 
 
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 encher um copo com água, mantenha a torneira aberta enquanto o copo não esitver cheio. 
 
Para fazer um bolo, prepare os ingredientes, misture-os bem e ponha no forno para assar. 
 
No trânsito, se o sinal estiver vermelho, PARE, se não, PODE PASSAR. 
 
 
Explicação: 
Falso. É um condicional. 
No trânsito, se o sinal estiver vermelho, PARE, se não, PODE 
PASSAR. 
Verdadeiro. Tem o comando 
 
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. 
Comando sequencial. 
Calcule a média de um aluno somando as duas maiores notas e 
dividindo a soma por dois. 
 
 
 
 
 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; 
} 
 
 
 16 e 9 
 50 e 9 
 9 e 9 
 o valor de s está indefinido e o valor de num é 7 
 50 e 16 
 
 
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 = 4 
r = 8 x = 6 
r = 37 x = 7 
 
 r = 2 x = 3 
r = 7 x = 5 
 
 r = 3 x = 2 
r = 5 x = 7 
 
 
 r = 36 x = 7 
 r = 2 x = 3 
r = 7 x = 5 
r = 36 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 
r = 2 x = 3 
r = 7 x = 5 
r = 36 x = 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 2 3 1 
 
 
5 6 3 2 1 
 
 
5 4 3 2 1 
 
 6 5 2 3 2 
 
 
6 5 3 2 1 
 
 
 
Explicação: