Buscar

ALGORITIMOS 7ª AULA

Prévia do material em texto

1.
		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 entra em loop.
	
	
	o trecho fornecido pára quando num for diferente de zero e são exibidos os valores 10 e 8, pelo menos.
	
	
	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 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é 2, nesta ordem.
	
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.
                   
	
	
	
	 
		
	
		2.
		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
	
	
	30
	
	
	Nenhuma das alternativas.
	
	
	29
	
	
	15
	
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
 
	
	
	
	 
		
	
		3.
		Considere o trecho de programa em C++ abaixo. Marque a opção que, corretamente, mostra o que é impresso na tela.
int x, y, z;
x = 5;
y = 20;
while (x <= y) {
z = x + y;
x = x + 5;
}
cout << z << endl;
	
	
	
	20
	
	
	30
	
	
	40
	
	
	35
	
	
	25
	
Explicação:
Analisando passo a passo...
x recebe 5 e y recebe 20
1o. teste ... 5 <= 20 ? sim. Entra no loop e faz  :
                 z recebe 25
                 x recebe 5+5, que dá 10
2o. teste ... 10 <= 20 ? sim. Entra no loop e faz :
    z recebe 30
    x recebe 15
 
3o. teste ... 15  <= 20 ? sim. Entra no loop e faz :
    z recebe 35
    x recebe 20
 
4o. . teste ... 20  <= 20 ? sim. Entra no loop e faz :
    z recebe 40
    x recebe 25
5o. teste ... 25 <= 20 ? Falso.
Depois do fim do while será impresso o valor de z que é 40.
 
	
	
	
	 
		
	
		4.
		A fim de possibilitar a implementação de algoritmos estudamos algumas estruturas básicas, como estrutura de desvio de fluxo, estrutura de repetição etc. Entre as estrutura de repetição há uma na qual uma ação será executada pelo menos uma vez, antes da avaliação da condição. Esta estrutura é implementada em C++ pelo comando básico:
	
	
	
	do/while
	
	
	for/while
	
	
	while
	
	
	for
	
	
	do/for
	
Explicação:
O comando do...while faz para depois testar. Então, o bloco a ser repetido será executado pelo menos uma vez antes de testarmos a condição.
Os comando for ou while, temos que testar antes de fazer.
	
	
	
	 
		
	
		5.
		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;
}
	
	
	
	while
	
	
	do case
	
	
	for
	
	
	loop
	
	
	repeat
	
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
	
	
	
	 
		
	
		6.
		Para que a palavra "AMOR" seja escrita na tela 5 vezes, qual condição apropriada deve ser colocada no trecho de código abaixo? Marque a opção correta.
x = 1;
while ( _________ )
{
cout<<"AMOR \n";
x = x + 2;
}
	
	
	
	x < 5
	
	
	x <= 11
	
	
	x <= 5
	
	
	x < 10
	
	
	x > 10
	
Explicação:
Analisando : 
x = 1;
while ( _________ )
{
cout<<"AMOR \n";
x = x + 2;
}
Note que x é um contador que é inicializado com 1 e que varia de 2 em 2. Logo, é preciso testar  x < 10.  Veja que entraremos no loop quando  :
x vale 1
x vale 3
x vale 5
x vale 7
x vale 9
E quando x for para 11, o teste do loop falhará. Então, teremos entrado 5 vezes no bloco do while.
	
	
	
	 
		
	
		7.
		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.
	
	
	
	while () { cout << "exibindo o número"; }
	
	
	while (repita 10 vezes) { }
	
	
	int cont = 0; while (cont <=10){ cout << "exibindo o número " << cont; cont++; }
	
	
	while (if cont =10){ }
	
	
	String cont = ""; { cont++; } while (cont!="")
	
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){ }
	
	
	
	 
		
	
		8.
		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{}
	
	
	do{ }while
	
	
	for{}
	
	
	repeat until
	
	
	while do
	
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