Informática, perguntado por marcgarden, 1 ano atrás

Há situações em nossos programas que precisamos repetir um determinado trecho de código ou todo o código um determinado número de vezes. Nestes casos, utilizaremos uma estrutura de repetição que nos permite criar um loop para efetuar o processamento de um trecho de código quantas vezes for necessário. Na literatura essas estruturas de repetição (loop) são, também, denominadas de laços de repetição e malhas de repetição, podendo ser laços contados ou laços condicionais. Nos laços condicionais não sabemos previamente o número de execuções e atrelamos a repetição a uma condição. Em linguagem C, os casos com condição no início e no final do laço são, respectivamente, as estruturas: while e do while.

LEAL, Gislaine Camila Lapasini. Algoritmos e Lógica de Programação II. Maringá-PR. Unicesumar, 2018.

Dada a definição de Estrutura de Repetição com laços condicionais while e do while, analise o trecho de algoritmo abaixo escrito em Linguagem C:

int a;
a=11;
do
{
printf("imprime Y \n");
a--;
}
while (a>0);
a=11;
while (a >= 0)
{
a--;
printf("imprime Z \n");
}

Assinale a alternativa correta e que apresenta a o número de vezes em que são impressos os textos “imprime Y” e “imprime Z”, respectivamente:

Alternativas
Alternativa 1:
10 e 10.

Alternativa 2:
11 e 12.

Alternativa 3:
12 e 11.

Alternativa 4:
11 e 11.

Alternativa 5:
12 e 12.

Soluções para a tarefa

Respondido por Gabrielmartinsseco
0

Resposta:

Está correta a alternativa 2:

1 °)

a=11;

do

{

printf("imprime Y \n");

a--;

}

while (a>0);

Neste trecho do código a variável "a" tem seu valor inicial definido como 11, no laço foi determinado que enquanto "a" fosse maior que 0, seria impresso "imprime Y" e seria decrementado 1 de "a", sendo assim ficaria:

imprime Y (com "a" valendo 11)

imprime Y (com "a" valendo 10)

imprime Y (com "a" valendo 9)

imprime Y (com "a" valendo 8)

imprime Y (com "a" valendo 7)

imprime Y (com "a" valendo 6)

imprime Y (com "a" valendo 5)

imprime Y (com "a" valendo 4)

imprime Y (com "a" valendo 3)

imprime Y (com "a" valendo 2)

imprime Y (com "a" valendo 1)

Finalmente com "a" valendo 0 e não entrando no laço, pois 0 não é maior que 0. Sendo impresso 11 vezes a frase "imprime Y".

2°)

a=11;

while (a >= 0)

{

a--;

printf("imprime Z \n");

}

Neste trecho do código a variável "a" tem seu valor inicial definido como 11, no laço foi determinado que enquanto "a" fosse maior ou igual a 0, seria impresso "imprime Z" e seria decrementado 1 de "a", sendo assim ficaria:

(Perceba que é decrementado 1 de "a" antes de imprimir a mensagem).

imprime Z (com "a" valendo 10)

imprime Z (com "a" valendo 9)

imprime Z (com "a" valendo 8)

imprime Z (com "a" valendo 7)

imprime Z (com "a" valendo 6)

imprime Z (com "a" valendo 5)

imprime Z (com "a" valendo 4)

imprime Z (com "a" valendo 3)

imprime Z (com "a" valendo 2)

imprime Z (com "a" valendo 1)

imprime Z (com "a" valendo 0)

imprime Z (com "a" valendo -1)

Finalmente com "a" valendo -1 e não entrando no laço, pois -1 não é maior que 0. Sendo impresso 12 vezes a frase "imprime Y".

Sendo impressas as frases "imprime Y” e “imprime Z”, respectivamente, 11 e 12 vezes.

Espero ter ajudado, abraços e bons estudos!

Perguntas interessantes