Buscar

AULA 5 ALGORITMOS EXERCÍCIO 3

Prévia do material em texto

Exercício: CCT0749_EX_A5_201803250976_V3 02/09/2018 22:27:52 (Finalizada) 
Aluno(a): 
Disciplina: CCT0749 - ALGORITMOS 
 
 
 
 
 1a Questão 
 
 
 Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas, 
sendo que na 1ª. execução o valor de entrada é 10 e na 2ª. execução o valor de entrada é 0. Para isso, 
considere o seguinte trecho em C++. 
 int num; 
 cout << "Digite um numero: "; 
 cin >> num; 
 if (num > 0) 
 { 
 num++; 
 cout << num << " "; 
 } 
 cout << num + 1 << " "; 
 if (num < 0) 
 { 
 num--; 
 cout << num << " "; 
 } 
 else 
 cout << num * 10 ; 
 
 
 
 
11 110 1 0 
 
 
11 110 1 10 
 
 
11 12 110 
 
 
11 110 1 0 
 
 11 12 110 1 0 
 
 
 
Explicação: 
Analisando ... 
1a. execução : Valor de entrada é 10. Logo, num recebeu 10 na entrada. 
1o. teste >>> 10 > 0 ? Sim . Então, entramos no bloco do 1o. if e fazemos num receber 11. Depois, 
exibimos 11 na tela. Seguindo... é exibido o valor de num + 1, ou seja, é exibido na tela o valor 12. 
2o. teste >>> 11 < 0 ? Não. Então, entramos no último else que imprime o resultado de 11 * 10, que é 110 
Concluindo a 1a. execução para a entrada 10 : 11 12 110 
 
2a. execução : Valor de entrada é 0. Logo, num recebe 0 na entrada. 
1o. teste >>> 0 > 0 ? Falso. Não entramos no 1o. if. SEguindo em frente temos que o valor de num+1 é 
exibido na tela. Ou seja, 1 é exibido na tela. 
2o. teste >>> 1 < 0 ? Não. Então, entramos no último else, que imprime o valor de 1 * 10, que é 10. 
Concluindo a 2a. execução para a entrada 0 : 1 10 
 
 
 
 
 
 
 2a Questão 
 
 
Qual das sentença em C++ a seguir verifica se o valor da variável x do tipo inteiro é diferente de 7 e maior 
que 10? 
 
 if (x != 7 && x > 10) 
 
if (x == 7 || x <= 10) 
 
if (x != 7 || x > 10) 
 
if (x != 7 || x >= 10) 
 
if (x == 7 && x > 10) 
 
 
Explicação: 
PAra diferente usamos o operador != 
E para maior usamos o operador > 
E para o e lógico usamos o operador && 
 
 
 
 
 
 3a Questão 
 
 
Quando estudamos sobre a estrutura do se ... entao...senao, sempre nos é dito que, quando 
tivermos duas possibilidades de respostas, devemos escolher a estrutura do se composto ao 
invés de usar duas estruturas do se simples. 
Observe as afirmativas abaixo e, depois, escolha a resposta que respalda o uso do se 
composto pelo que foi dito acima ao invés do se simples. 
I Maior clareza no código, mas não influência na eficiência do mesmo 
II Maior eficiência porque diminui o número de testes no código 
III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o 
mesmo 
IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o 
mesmo 
 
 A II E IV estão corretas 
 Somente a II está correta 
 Somente a I está correta 
 Somente a IV está correta 
 A II E A III estão corretas 
 
 
Explicação: 
I Maior clareza no código, mas não influência na eficiência do mesmo . 
Comentário : Falso. Traz clareza e afeta a eficiência sim, pois acaba se fazendo testes desnecessários. 
II Maior eficiência porque diminui o número de testes no código 
Comentário : Correto. 
III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo. 
Comentário : Falso. Não é só legibilidade, mas é uma questão de eficiência, pois evita-se teste 
desnecessário. 
IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo 
Comentário : Falso. O desenvolvedor pode escolher sim, mas o uso adequado do condicional composto pode 
trazer maior eficiência para o código. 
Opção correta : 
 Somente a II está correta 
 
 
 
 
 
 4a Questão 
 
 
Considere o trecho de programa em C++. O que é impresso na tela ? 
 
int x = 10, y = 3, z, k; 
y = x + y - 1; 
z = x/y; 
k = y % x; 
if (k == 0) 
cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k; 
else 
cout << x + 1 << " " << y - 1 << " " << z + 2 << " " << k - 2; 
 
 
x= 11 y = 11 z = 2 k = 0 
 
x = 10 y = 12 z = 0.833 k = 0 
 
x = 10 y = 12 z = 0 k = 0 
 11 11 2 0 
 
10 12 2 0 
 
 
Explicação: 
É preciso fazer um teste de mesa ou chinês e encontrar a resposta correta, como indicado. Para isso, o 
conteúdo sobre comando condicional, atualmente, na aula 5, é suficiente, junto com declaração de variáveis 
de aula anterior. 
 
x recebe 10 e depois 
y recebe 3 e depois y recebe 10+3-1, que dá 12 
z recebe 10/12, que dá 0 
k recebe 2 
TEste do if é falso. Então, entra-se no else e é impresso : 11 11 2 0 
 
 
 
 
 
 5a Questão 
 
 
Analise o trecho abaixo que um aluno desenvolveu na linguagem C++ e escolha a opção onde estão os 
valores que aprecem na tela. 
int x = 13, y = 4, z; 
if( x > y ) { z = x; x = y; y = z; } 
cout << z << " " << x << " " << y ; 
 
 13 4 13 
 
4 13 13 
 
13 13 4 
 
0 13 4 
 
0 4 13 
 
 
Explicação: 
Fazendo um teste de mesa através de comentários no trecho dado : 
int x = 13, y = 4, z; // x recebe 13 e y recebe 4 
 
if( x > y ) //testa se 13 é maior que 4 ... É verdade. Então, entra no bloco do if 
{ 
 z = x; // z recebe x, que vale 13. Ou seja, z recebe 13 
 x = y; // x recebe y, que é 4. Ou seja, x recebe 4 
 y = z; // y recebe z, que vale 13. Ou seja, y recebe 13 
} 
cout << z << " " << x << " " << y ; //SErá impresso : 13 4 13 
 
 
 
 
 
 
 
 6a Questão 
 
 
Tendo em mente os conceitos dos comandos básicos de decisão do C++, analise o trecho de programa 
abaixo e assinale a alternativa que corresponda a saída na tela: 
 
 
 
11 
 
-1 
 22 
 
5 
 
2 
 
 
 
 
 
 7a Questão 
 
 
Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas, 
sendo que na 1ª. execução o valor de entrada é 7 e na 2ª. execução o valor de entrada é 8. Para isso, 
considere 
o seguinte trecho em C++. 
 int num; 
 cout << "Digite um numero: "; 
 cin >> num; 
 if (num != 2 || num != 4 || num != 6) 
 { 
 num = num + 2; 
 cout << num << " "; 
 } 
 if (num != 8) 
 { 
 num--; 
 cout << num << " "; 
 } 
 else 
 cout << num * 5 ; 
 
 
 
9 40 
 
 
9 8 10 40 
 
 
9 6 10 9 
 
 
8 10 40 
 
 9 8 10 9 
 
 
 
Explicação: 
Analisando o trecho de programa em C++ ... 
1a. execução : num recebe 7. Daí, testamos o 1o. if. Note que usamos o || lógico. A condição é verdadeira 
e entramos no bloco do 1o. if. Então, num recebe 9 e é impresso o valor 9 na tela. 
Seguimos para o próximo if e testamos sua condição. É verdade que 9 != 8 ? Sim. Entramos no bloco do 
2o. if e então decrementamos 9 para 8 e imprimimos o valor 8. 
Concluindo esta 1a. execução : Foram impressos 9 8 
2a. execução : num recebe 8. Daí, testamos o 1o. if. Note que usamos o || lógico. A condição é 
verdadeira e entramos no bloco do 1o. if. Então, num recebe 10 e é impresso o valor 10. 
Seguimos para o próximo if e testamos sua condição. É verdade que 10 != 8 ? Sim. Entramos no bloco do 
2o. if e então decrementamos 10 para 9, imprimindo o valor 9. 
Concluindo esta 2a. execução : Foram impressos 10 9 
 
 
 
 
 
 8a Questão 
 
 
Analise o trecho abaixo que um aluno desenvolveu na linguagem C++ e escolha a opção onde estão os 
valores que aprecem na tela.int x = 235, y = 138, z = 177, m; 
m = z; 
if( x < m) m = x; 
if( y < m) m = y; 
cout << m << " " << x << " " << y ; 
 
 138 235 138 
 
138 138 235 
 
235 235 138 
 
177 235 138 
 
177 138 235 
 
 
Explicação: A variável m ficará com o menor valor

Continue navegando