Prévia do material em texto
1. Imagine que , com base na sintaxe do Portugol Studio, você precisa escrever um algoritmo que receba uma sequência de números e, para cada número informado, diga se ele é par ou ímpar. A sequência se encerra quando o usuário digitar 0. Considerando que é necessário utilizar uma estrutura repetitiva com pré-teste, qual das alternativas a seguir ajuda a resolver o problema proposto? enquanto (num!=0) { se (num%2==0) { escreva("Este número é par!\n") } senao { escreva("Este número é ímpar!\n") } escreva("Informe um número qualquer: ") leia(num) } enquanto (num==0) { se (num/2==0) { escreva("Este número é par!\n") } senao { escreva("Este número é ímpar!\n") } escreva("Informe um número qualquer: ") leia(num) } faca { se (num%2==0) { escreva("Este número é par!\n") } senao { escreva("Este número é ímpar!\n") } escreva("Informe um número qualquer: ") leia(num) } enquanto (num!=0) faca { se (num%2!=0) { escreva("Este número é par!\n") } senao { escreva("Este número é ímpar!\n") } escreva("Informe um número qualquer: ") leia(num) } enquanto (num>0) enquanto (num>0) { se (num%2!=0) { escreva("Este número é par!\n") } senao { escreva("Este número é ímpar!\n") } escreva("Informe um número qualquer: ") leia(num) } 2. A partir da comparação entre as estruturas while e do...while, é certo afirmar que: Dependendo da condição de teste, em ambos os casos o bloco de comandos controlado será sempre executado, pelo menos uma vez. No do...while, o bloco de comandos controlado poderá não ser executado. Enquanto que no while o bloco de comandos será sempre executado, pelo menos uma vez. Dependendo da condição de teste, em ambos os casos o bloco de comandos controlado poderá não ser executado. Em termos de execução não há diferença. A diferença está, apenas, na sintaxe. No while, o bloco de comandos controlado poderá não ser executado. Enquanto que no do...while o bloco de comandos controlado será sempre executado, pelo menos uma vez. Explicação: Falso. No do/while primeiro se faz o que está no corpo do loop para depois testar e no while, se testa para depois fazer o queestá no corpo do loop. Em termos de execução não há diferença. A diferença está, apenas, na sintaxe. Falso. No do/while o bloco de instruções será feito pelo menos 1 vez. No do...while, o bloco de comandos controlado poderá não ser executado. Enquanto que no while o bloco de comandos será sempre executado, pelo menos uma vez. Verdadeiro No while, o bloco de comandos controlado poderá não ser executado. Enquanto que no do...while o bloco de comandos controlado será sempre executado, pelo menos uma vez. Falso. No while pode não ser executado nenhuma vez. Dependendo da condição de teste, em ambos os casos o bloco de comandos controlado será sempre executado, pelo menos uma vez. Falso. No do/while as instruções serão feitas pelo menos 1 vez. Dependendo da condição de teste, em ambos os casos o bloco de comandos controlado poderá não ser executado 3. 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: while for/while do/for for do/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. 4. A estrutura de dados de iteração na qual uma ação será executada pelo menos uma vez, antes da avaliação da condição, é implementada pelo comando básico de repetição de seleção de atribuição condicional sequencial Explicação: A estrutura de dados de iteração na qual uma ação será executada pelo menos uma vez, antes da avaliação da condição, é implementada pelo comando básico de repetição 5. Utilizando a sintaxe do Portugol Studio, que comando seria adequado para iniciar uma repetição capaz de exibir todos os números pares entre 2 e 1000? para (cont=2;cont<=1000;cont++) para (cont=1;cont<=1000;cont+=2) para (cont=1;cont<100;cont++) para (cont=0;cont>1000;cont+=1) para (cont=2;cont<=1000;cont+=2) 6. O trecho de código a seguir utiliza uma estrutura de repetição do tipo for . Marque a alternativa que apresenta de forma correta o mesmo trecho utilizando a estrutura de repetição while. Seja: for( int i=3; i<100; i+=2) cout << i ; int i; while (i<100) { cout << i; i=3; i=i+2; } int i; while (i<100) { i=3; cout << i; i=i+2; } int i; i=3; while(i<100) cout << i; i=i+2; int i; i=3; while (i<100) { cout << i; i=i+2; } int i; i=3; while(i<100) { i=i+2; cout << i; } Explicação: A estrutura dos dois comandos é a seguinte : inicialização, teste lógico, incremento/decremento e o trecho da repetição. conforme aula e gabarito. 7. Assinale a alternativa correta em relação a quantidade de vezes que a palavra "PAZ" será impressa, no trecho de código abaixo: x = 50; do{ y = 8; do{ cout<<"PAZ \n"; y++; } while ( y <10); x--; }while ( x > 48); 7 vezes 6 vezes 5 vezes 8 vezes 4 vezes Explicação: Analisando passo a passo o trecho dado : x = 50; do{ y = 8; do{ cout<<"PAZ \n"; y++; } while ( y <10); x--; } while ( x > 48); x y 50 8 49 9 48 (48 > 48 ? ) Falso 10 ... 10 < 10 ? FALSO 8 9 10 ... 10 < 10 ? Falso PAZ PAZ PAZ PAZ 8. 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 < 10 x <= 5 x < 5 x <= 11 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.