Buscar

AlgoritmoAula08.V04

Prévia do material em texto

ALGORITMOS 
8a aula 
Lupa 
 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
Exercício: CCT0749_EX_A8_201802365591_V4 04/11/2018 20:08:08 (Finalizada) 
Aluno(a): 2018.3 EAD 
Disciplina: CCT0749 - ALGORITMOS 
 
 
 
 
 1a Questão 
 
 
Comando de repetição é utilizado quando se deseja repetir determinados comandos. Marque a opção que representa o uso 
do comando while para implementar a estrutura de um contador corretamente. 
 
 int cont = 0; while (cont <=10){ cout << "exibindo o número " << cont; cont++; } 
 
while (if cont =10){ } 
 
String cont = ""; { cont++; } while (cont!="") 
 
while (repita 10 vezes) { } 
 
while () { cout << "exibindo o número"; } 
 
 
Explicação: 
A estrutura geral do while quando se usa contador no teste do loop é a seguinte : 
while ( < condição... teste lógico ... com o contador > ) 
 { 
 < comandos> 
 alteração do contador 
} 
 
Analisando ... 
 Falsa. Faltou a condição ou teste lógico ou variável que pode 
ser true ou false. 
while () { cout << "exibindo o número"; } 
 
 
Verdadeira. Pode se r encaixada na explicação no início. 
int cont = 0; while (cont <=10){ cout << 
"exibindo o número " << cont; cont++; } 
 
FAlsa. Não tem String em C++. Existe string, mas não 
String. Sintaxe incorreta no uso do while. 
String cont = ""; { cont++; } while (cont!="") 
 
Falsa. Sintaxe incorreta. Uso de repita sem sentido. while (repita 10 vezes) { } 
 
Falsa. Uso incorreto do if na parte relativa à condição do 
while. 
while (if cont =10){ } 
 
 
 
 
 
 2a Questão 
 
 
Considere o trecho abaixo sabendo que num é um variável inteira. 
 
num = 11; 
do { 
 if (num % 2 == 0) 
 cout << num << "\n"; 
 num = num -1 ; 
} while (num != 0); 
 
Assinale a opção correta : 
 
 O trecho fornecido pára quando num for zero e os números exibidos são todos os pares de 10 até 2, nesta ordem. 
 
O trecho entra em loop. 
 
O trecho fornecido pára quando num for diferente de zero e o único número exibido é o 10. 
 
O trecho fornecido pára quando num for zero e os números exibidos são todos os pares de 10 até 0, nesta ordem. 
 
o trecho fornecido pára quando num for diferente de zero e são exibidos os valores 10 e 8, pelo menos. 
 
 
Explicação: 
1a. opção está correta. Veja o teste de mesa : 
num num % 2 é igual a zero ? 
num é 
diferente de 
zero ? 
 
11 11 % 2 é 1. Logo, é falso o teste do if. 
10 
10 diferente de 
0 ? sim 
 
 10 % 2 é zero ? sim. Imprime o 10 
9 
9 é diferente de 
0 ? sim 
 
 9 % 2 é zero ? Não 
8 
8 é diferente de 
zero ? sim 
 
 8 % 2 é zero ? Sim. Imprime o 8 
7 
7 é diferente de 
zero ? sim 
 
 7 % 2 é zero ? Não 
6 
 6 % 2 é zero ? Sim. Imprime o 6 e decrementa para 
5 valor de num 
6 é diferente de 
zero ? sim 
 
 
 E assim continua ... irá parar quando num for zero... 
Note que está imprimindo os pares de 10 até 2, pois 
quando decrementa num para zero, o teste 
do do...while falha. 
 
 
Imprimirá os números 10 8 6 4 2 , um embaixo do outro. 
 
2a. opção é falsa. Pára quando o valor de num for zero, mas não imprime o valor 0, justamente pelo já explicado no 
item anterior. 
3a. opção é falsa. Pára quando o valor de num for zero. Além disso, é um loop, então imprimem-se vários níumeros 
como mostrado na explicação da 1a. opção. 
4a. opção é falsa. Como mostrado no 1o. item, vários números são impressos : os números 10 8 6 4 2 , um 
embaixo do outro. 
5a. opção é falsa. Falso. Como mostrado no 1o. item, vários números são impressos : os números 10 8 6 4 2 , um 
embaixo do outro. Ocorre a parada do loop quando num for zero. 
 
 
 
 
 
 3a Questão 
 
 
Considerando a seguinte sequencia de instruções, marque a alternativa que indica o comando correspondente para 
preenchimento da lacuna. 
 
... 
cin>>matricula; 
 
______________ (matricula<99) 
 
{ 
 
cin>>matricula; 
} 
 
 
do case 
 
loop 
 
repeat 
 
for 
 while 
 
 
Explicação: 
 
Falso. Nâo tem repeat em C++. repeat 
 
Falso. Não se encaixa a sintaxe do comando for. for 
 
 Verdadeiro while 
 
 Falso. Não existe comando do... case. do case 
 
Falso. Nâo existe comando loop. loop 
 
 
 
 
 
 4a Questão 
 
 
Assinale a alternativa correta em relação a quantidade de vezes que a palavra "ALGORITMO" será impressa, no trecho 
de código abaixo: 
cont = 0; 
while( cont < 30 ) { 
 cout << "ALGORITMO" << endl; 
 cont = cont + 1; 
} 
 
 
31 
 
Nenhuma das alternativas. 
 30 
 
15 
 
29 
 
 
Explicação: 
Fazendo passo a passo : 
cont = 0; 
while( cont < 30 ) { 
 cout << "ALGORITMO" << endl; 
 cont = cont + 1; 
} 
variável cont Teste cont < 30 ? Sim ou não ? 
0 0 < 30 ? sim 
1 1 < 30 ? sim 
2 2 < 30 ? Sim 
3 3 < 30 ? Sim 
4 4 < 30 ? Sim 
5 5 < 30 ? sim 
6 6 < 30 ? sim 
7 7 < 30 ? sim 
continuando até 
29 
 29 < 30 ? Sim 
30 
30 < 30 ? Não. Falso. Não entra no while 
Note que entrou 30 vezes no corpo do while e a cada vez 
que entrou imprimiu ALGORITMO 
TELA 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
>>>>>>>>>>>>>>>>>> Logo, imprimiu 30 vezes a palavra ALGORITMO 
 
 
 
 
 
 5a Questão 
 
 
As estruturas de repetição permitem executar mais de uma vez um mesmo trecho de código. Trata-
se de uma forma de executar blocos de comandos somente sob determinadas condições, mas com a 
opção de repetir o mesmo bloco quantas vezes forem necessárias. As estruturas de repetição são 
úteis, por exemplo, para repetir uma série de operações semelhantes que são executadas para todos 
os elementos de uma lista ou de uma tabela de dados, ou simplesmente para repetir um mesmo 
processamento até que uma certa condição seja satisfeita. Sejam as seguintes afirmativas: 
I - Toda estrutura de repetição apresenta um teste no início e um na saída. 
II - Toda estrutura de repetição pode ser substituída por um conjunto de estruturas de decisão, onde 
não haja testes ou condições. 
III - Toda estrutura de repetição apresenta um critério de parada. 
IV- Toda estrutura de repetição apresenta fluxo de execução invertido devido a diversas iterações. 
 
Marque a alternativa que representa apenas as afirmativas CORRETAS: 
 
 
I e III 
 III 
 
I 
 
I e IV 
 
II, III e IV 
 
 
Explicação: 
I - Toda estrutura de repetição apresenta um teste no início e um na saída. Falso. Ou no início ou 
no fim. 
II - Toda estrutura de repetição pode ser substituída por um conjunto de estruturas de decisão, onde 
não haja testes ou condições. 
 Falso. São estruturas diferentes. 
III - Toda estrutura de repetição apresenta um critério de parada. Verdadeiro. 
IV- Toda estrutura de repetição apresenta fluxo de execução invertido devido a diversas 
iterações. Falso. 
 
 
 
 
 
 6a Questão 
 
 
Leia atentamente o trecho de código abaixo e diga o que ele apresentará ao usuário no final : 
int main ( ){ 
 int i = 0; 
 double x, y = 0; 
 cout << "Digite um numero: "; 
 cin >> x; 
 while (x != 0){ 
 i = i + 1; 
 y = y + x; 
 cout << "Digite um numero: "; 
 cin >> x; 
 } 
 y = y / i; 
 cout << "Numero: " << x << "\n"; 
 system("PAUSE"); 
 return 0; 
} 
 
 O último número digitado, ou seja, zero 
 
O maior de todos os elementos digitados 
 
O menor de todos os elementos digitados 
 
A quantidade de elementos digitados 
 
A média dos elementos digitados 
 
 
Explicação: 
A última impressão será o valor de x e o último valor de x é zero, pois foi o valor que parou a repetição. 
Terminada a repetição, um novo y é gerado e depois o valor de x é impresso. Ou seja, 0. 
 
 
 
 
 
 7a Questão 
 
 
Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a variável num seja diferente de 
0? 
 
 
enquanto (num > 0) 
 while (num != 0) 
 
for ( i = 0; i == num; i++) 
 
for (i = num; i > 0; i++) 
 
while (num == 0) 
 
 
Explicação: 
 verdadeira while (num != 0) 
 
FAlsa. Diferente é !=. Nesta opção está "enquanto num é igual a zero." while (num == 0) 
 
 FAlsa. Nesta opção está "enquanto num for maior que zero" enquanto (num > 0) 
 
 Falsa. Teste incorreto no for. == é para teste de igualdade. for ( i = 0; i == num; i++) 
 
 FAlsa. Não inicializa ou testa corretamente. for (i = num; i > 0; i++) 
 
 
 
 
 
 8a Questão 
 
 
Qual a estrutura de repetição mais indicada para os casos em que é necessário que o bloco de código a ser repetido 
seja sempre repetido pelo menos uma vez? 
 
 
while{} 
 
for{} 
 
while do 
 
repeat until 
 do{ }while 
 
 
Explicação: 
O comando do... while deixa fazer para depois testar. Logo, é feita apenas 1 vez. 
No caso do comando while ou for, é possível não entrarmos no bloco do loop nenhuma vez.

Continue navegando