Buscar

Estrutura de repetição com pré-teste e com pós-teste


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Na execução do comando while o teste da condição que controla a execução, ou não, dos comandos subordinados, é feito, sempre, antes de cada iteração. Desta forma, é correto afirmar que:
	
	
	
	Independentemente da condição de teste, os comandos subordinados sempre serão executados.
	
	
	Os comandos subordinados serão executados no mínimo uma vez.
	
	
	A condição de teste deverá ser sempre verdadeira antes do início da execução.
	
	
	Os comandos subordinados poderão não ser executados.
	
	
	A condição de teste deverá ser sempre falsa antes do início da execução.
	
Explicação:
No comando enquanto primeiro se testa a condição para depois se executar o corpo da repetição. Se a condição for falsa nada dentro do corpo da repetição será executado.
	
	
	
	 
		
	
		2.
		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/for
	
	
	do/while
	
	
	for
	
	
	for/while
	
	
	while
	
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.
	
	
	
	 
		
	
		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;
	
	
	
	25
	
	
	30
	
	
	20
	
	
	35
	
	
	40
	
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 linguagem de programação C++ dispõe de três estruturas de repetição: do..while, while e for. Pensando na maneira como cada uma delas funciona, observe o trecho de código a seguir:
Qual das alternativas a seguir, escritas com a estrutura for, equivale à estrutura while anterior?
	
	
	
	for (cont++; cont <= 10; int cont=0)
{  cout << "Estamos na " << cont << "a. rodada..."; }
	
	
	for (int cont=10; cont <= 0; cont++)
{  cout << "Estamos na " << cont << "a. rodada..."; }
	
	
	for (int cont=10; cont <= 200; cont+=2)
{  cout << "Estamos na " << cont << "a. rodada..."; }
	
	
	for (int cont=0; cont <= 10; cont++)
{  cout << "Estamos na " << cont << "a. rodada..."; }
	
	
	for (int cont=0; cont <= 10; cont+=2)
{  cout << "Estamos na " << cont << "a. rodada..."; }
	
	
	
	 
		
	
		5.
		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
	
	
	do{ }while
	
	
	repeat until
	
	
	for{}
	
	
	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.
 
	
	
	
	 
		
	
		6.
		Assinale a opção que corresponde à condição da estrutura de repetição que faz com que o programa abaixo imprima 4 vezes a expressão Bom dia.
int a = 8;
while  (  ____   )
 {
   cout << "Bom dia\n";
   a = a -2;
}
	
	
	
	a == 0
	
	
	a < 0
	
	
	a >= 0
	
	
	a > 0
	
	
	a <= 0
	
Explicação:
Analisando o trecho temos que  :
· a variável a funciona como contador e  começa com 8. 
· a variável a varia de 2 em 2. Assim :
· quando a é 8 imprime-se  Bom dia (Logo após ele vai decaindo, ou seja a= a-2 --> a= 8-2 = 6)
· quando a é 6  imprime-se Bom dia (Logo após ele vai decaindo, ou seja a= a-2 --> a= 6-2 = 4)
· quando a é 4 imprime-se Bom dia  (Logo após ele vai decaindo, ou seja a= a-2 --> a= 4-2 = 2)
· quando a é 2 imprime-se Bom dia  (Logo após ele vai decaindo, ou seja a= a-2 --> a= 2-2 = 4) porém como já imprimiu 4 vezes ele para.
· quando a for zero não se pode mais imprimir Bom dia, pois já se imprimiu 4 vezes, como visto acima.
Logo, a opção certa é :  a > 0, pois quando a for zero (a=0), a repetição irá terminar.
Lembrando que a não pode ser 0 pois já terá impresso 4 vezes bom dia.
	
	
	
	 
		
	
		7.
		Imagine que você precisa escrever um programa em C++ que receba uma sequência de números e, para cada número informado, diga se ele é par ou ímpar. Essa sequência se encerra quando o usuário digitar 0 e você precisa utilizar uma estrutura repetitiva com pré-teste. Qual dos trechos a seguir atenderia essa solicitação?
	
	
	
	for (num==0; num!=0; num--) { 
  if (num%2==0) 
  { cout <<"Este número é par.\n"; }
  else
  { cout <<"Este número é ímpar.\n"; }
  cout <<"Informe  um número qualquer: ";
  cin >>num;
}
	
	
	while (num!=0) { 
  if (num%2==0) 
  { cin <<"Este número é par.\n"; }
  else
  { cin <<"Este número é ímpar.\n"; }
  cin <<"Informe  um número qualquer: ";
  cout >>num;
}
	
	
	for (num!=0) { 
  switch (num%2==0) 
  { cout <<"Este número é par.\n"; }
  switch
  { cout <<"Este número é ímpar.\n"; }
  cout <<"Informe  um número qualquer: ";
  cin >>num;
}
	
	
	do { 
  if (num%2==0) 
  { cout <<"Este número é par.\n"; }
  else
  { cout <<"Este número é ímpar.\n"; }
  cout <<"Informe  um número qualquer: ";
  cin >>num;
} while (num!=0)
	
	
	while (num!=0) { 
  if (num%2==0) 
  { cout <<"Este número é par.\n"; }
  else
  { cout <<"Este número é ímpar.\n"; }
  cout <<"Informe  um número qualquer: ";
  cin >>num;
}
	
	
	
	 
		
	
		8.
		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 diferente de zero e são exibidos os valores 10 e 8, pelo menos.
	
	
	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 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 no1o. 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.