Tutoriais

Vamos Programar? – Introdução à Programação #12

5 Comentários

Testes Lógicos de Repetição do while e for

O mundo está constantemente a evoluir: desde o mais pequeno inseto à espécie Humana. Dentro das palavras que mais ouvimos atualmente, incluímos “evolução”, “mudança”, “futuro”.

A tecnologia tem revolucionado o mundo das mais diversas formas: do mais simples aparelho para medir o tempo ao mais complexo acelerador de partículas. Se quer entrar no mundo da tecnologia e deixar a sua marca, pode começar aqui.

programacao11



[field name=iframe]

Visualize este vídeo no YouTube

 

Teste Lógico do while

Os testes lógicos de repetição são, como já deve saber, extremamente úteis em inúmeras situações pois permitem-nos reutilizar código. Recentemente abordámos o teste lógico de repetição while e hoje iremos abordar um outro semelhante: o do while. A sua sintaxe é a seguinte:

do
{
   //código a ser repetido
} while (condição);

Ao contrário do que acontece com o teste lógico while, no do while, o código é executado primeiro e só de seguida é que se confirma a veracidade da condição. Se a condição for verdadeira, então o código é executado mais uma vez, caso não o seja, já não será executado.

Este facto faz com que o que código contido dentro do teste lógico seja executado pelo menos uma vez. Veja então o seguinte exemplo de uma simples calculadora com o código documentado.
#include

int main()
{
/*
* Variável que irá determinar se executamos
* o código da calculadora de novo ou não.
*/
int calcular;

do {

char operacao;
float num1,
num2;

//Limpeza do buffer
fflush(stdin);
__fpurge(stdin);

printf(“Escolha a operação [+ – * / ]: “);
scanf(“%c”,&operacao);

printf(“Insira o primeiro número: “);
scanf(“%f”,&num1);

printf(“Insira o segundo número: “);
scanf(“%f”,&num2);

switch( operacao )
{
case ‘+’:
printf(“%.2f + %.2f = %.2f\n”, num1, num2, num1 + num2);
break;

case ‘-‘:
printf(“%.2f – %.2f = %.2f\n”, num1, num2, num1 – num2);
break;

case ‘*’:
printf(“%.2f * %.2f = %.2f\n”, num1, num2, num1 * num2);
break;

case ‘/’:
printf(“%.2f / %.2f = %.2f\n”, num1, num2, num1 / num2);
break;

default:
printf(“Você digitou uma operação invalida.\n”);
break;
}

printf(“Insira 0 para sair ou 1 \n”);
scanf(“%d”, &calcular);

} while (calcular);
/*
* Se “calcular” for diferente de 0 (falso), o código
* da calculadora será executado novamente.
*
* Para terminar o código basta então digitar 0 quando
* for pedido.
*/

return 0;

}

Teste Lógico for

Outro teste lógico de repetição que é muito importante é o for e é muito útil quando, por exemplo, precisamos de inicializar uma variável a que deve ser incrementado um número. Veja a sintaxe:
for(inicio_do_loop ; condição ; termino_de_cada_iteração)
{
//código a ser executado
}
Vamos agora ver um pequeno exemplo comparando a sintaxe com um teste lógico while. O código seguinte utiliza o último loop mencionado para imprimir os números de 0 a 100:
#include

int main()
{
int num;
num = 0;

while (num <= 100) {
printf(“%d\n”, num);
num++;
}

return 0;
}
Abaixo pode encontrar o seu equivalente com o teste de repetição for:
#include

int main()
{
int num;

for(num = 0; num <=100; num++) {
printf(“%d\n”, num);
}

return 0;
}
Apesar de parecer apenas uma pequena redução de duas linhas, com códigos mais complexos poderão ser poupadas mais linhas e este loop também melhora a legibilidade do código.

Ressalto também que os interruptores de fluxo break e continue funcionam com este teste lógico de repetição.

Exercícios

1 – Crie um pequeno menu de opções com, no mínimo, cinco opções à sua escolha sendo uma delas para terminar o programa e as restantes para efetuar qualquer coisa que deseje. O menu deverá continuar a aparecer até o utilizador pedir para fechar.

2 – Recorrendo ao teste lógico for, imprima todos os números divisíveis por 4, 10 e 25 entre 1 e 1000.


Mais uma vez, gostávamos de saber a sua opinião. Caso tenha alguma dúvida, pode sempre utilizar os comentários para colocar a questão. Caso o faça, pedimos que utilize a keyword [DUVIDA] no início do seu comentário.

Também pode gostar

Comentários

5

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Adiemlaonun
    Adiemlaonun

    O pdf vai buscar o nº 10 da série e não o 12.

    1. Avatar de Mosmmy
      Mosmmy

      é só o titulo cara volta a ver o conteúdo…..

      1. Avatar de Henrique Dias

        Obrigado, a todos, pelo reparo. O título do ficheiro já foi corrigido. Bons estudos/trabalho 🙂

  2. Avatar de Adiemlaonun
    Adiemlaonun

    É só o titulo

  3. Avatar de Bu
    Bu

    Estou a dar estas estruturas de controlo em A.I. B :D, só que é em Visual basic *facepalm*