quarta-feira, 8 de abril de 2020

Estruturas de repetição - Cpp



        Estrutura de repetição     

As estruturas de controle apresentadas nas secções anteriores apresentam algo em comum, apenas permitem executar um procedimento apenas uma vez. Com isso, caso haja necessidade de executar mais de uma vez, será necessário reiniciar a execução do programa. Como forma de contornar esta limitação podemos recorrer a estruturas de repetição, que nos permitie repetir a execução de um procedimento o número de vezes que for necessário. As estruturas de repetição também são designadas de laços ou loops.

Existem três comandos básicos que podem ser usados na estrutura de repetição: for, while e do.

    Comando for     
É uma espécie de um loop contado que é usado quando se conhece previamente o número de vezes em que um procedimento será repetido.
Existem duas sintaxes que podem ser utilizadas na declaração da cláusula for. Como ilustra a sintaxe 1, no temos apenas uma única instrução enquanto que na segunda sintaxe, temos uma declaração composta por mais de uma instrução. Nesse último caso é obrigatório delimitar as instruções usando o chavetas.

Sintaxe 1
  for (var_inicial; condição; expressão)
   instruções;

Sintaxe 2        
  for (var_inicial; condição; expressão)
     {
     Intrução 1;
     Intrução 2;
     Intrução 3;
             ...
Intrução n;
}

Nas duas sintaxes temos quatro aspectos importantes que demarcam a cláusula for:
·         Var_inicial – variável do tipo inteiro que representa o valor inicial a ser usado para efeitos de contagem;
·         Condição – expressão que identifica a condição de contagem. Enquanto a condição for verdadeira a contagem continua.
·         Expressão – identifica o procedimento de contagem a ser usado.
·         Instruções – identificam a operação a ser realizada.

A seguir é apresentado um exemplo de utilização da cláusula for que exibe como resultado uma contagem crescente de 1 a 10.

#include <stdio.h>
#include <stdlib.h>
int main() {
     int i;   
     for(i=0; i<=10; i++)
     cout << i;
    
     return 0;
}

Contagem crescente usando o comando for

A variável contadora i é inicializada com o valor 0, e é especificado o valor final de referência no entanto a contagem ira começar de 1 a 10, permitindo com que o programa seja executado 10 vezes recorrendo apenas a uma única instrução for. Sem este comando para obter o mesmo resultado seria necessário recorrer a 10 instruções printf.
     0 1 2 3 4 5 6 7 8 9 10      

       Comando while     

Na clausula while a execução de um procedimento é repetido enquanto uma determinada condição for satisfeita(verdadeira). Esta clausula é usada quando não se conhece o número de vezes em que um procedimento será repetido.
Existem duas sintaxes que podem ser utilizadas na declaração da cláusula while. Como ilustra a sintaxe 1, neste caso temos apenas uma única instrução enquanto que na segunda sintaxe(sintaxe 2) temos uma declaração composta por mais de uma instrução. Nesse último caso é obrigatório delimitar as instruções usando chavetas.

Sintaxe 1        
While (condição)
     Intrução 1;

Sintaxe 2
     While (condicao)
{
               Intrução 1
               Intrução 2
               intrução 3
                       ...
Intrução n
 }
                       
Exemplo:
   #include<iostream>
   using namespace std;
   int main()
   {
        int i=0;
        while(i!=1)
        {
            printf("Mensagem ");
            cout << " Fora do loop";
        }
        printf(" Fora do loop");
    }
                       
Neste exemplo o programa exibe uma mensagem sempre que o valor da variável i for diferente de 1. E quando o utilizador digitar 1 o programa termina a execução.

           Comando do        

A execução de um procedimento é repetido até que uma determinada condição seja alcançada. Nesta cláusula existe uma característica particular, o teste lógico é realizado no final da execução do loop.
Existem duas sintaxes que podem ser utilizadas na declaração da cláusula do. Na primeira sintaxe temos apenas uma única instrução enquanto que na segunda instrução temos uma declaração composta por mais de uma instrução. Nesse último caso é obrigatório delimitar as instruções com chavetas.

Sintaxe 1        
            do
          Instrução
       while (condição);

Sintaxe 2
            do{
           Intrução 1;
      Intrução 2;
      intrução 3;
             ...
      Intrução n;
        }
        until (condicao) do
                       
Exemplo
    #include<iostream>
    using namespace std;
    int main ()
    {
   int num, right_digit;
   cout << ("Enter your number.\n");
   cin >> num;
   do {
      right_digit = num % 10;
      cout << right_digit;
      num = num / 10;
   }
   while ( num != 0 );
   cout << "\n";
   return 0;
     }

Este programa recebe um número inteiro qualquer e exibe na ordem inversa.

       Exercícios propostos       

  1. Execute e compile os exemplos apresentados nesta apostila.
  2. Leia um valor numérico n e escreva o valor da soma dos n termos.
  3. Fazer um programa que leia um conjunto de 10 notas de alunos de uma disciplina, armazene-as na variável nota e determine a maior delas.
  4. Recorrendo ao comando for, crie um programa que permita exibir o seguinte output: az by cx dw ev fu gt hs Ir jq kp lo mn nm ol pk qj ri sh tg uf ve wd xc yb za.
  5. Tem-se um conjunto de dados contendo a altura e o sexo (M ou F) de 15 pessoas. Faça um Programa que calcule e escreva: a média de altura das mulheres; o número de homens.
  6. Desenvolver um programa que efectue a soma de todos os números ímpares e que se encontram no conjunto dos números de 1 até 500.
  7. Escreva um programa que receba a idade de 10 pessoas, calcule e imprima a quantidade de pessoas maiores de idade (idade >= 18 anos).
  8. Fazer um programa que calcule a média aritmética de n números digitados pelo teclado. Até que o usuário informe o valor zero.
  9. Escreva um programa que leia vários números inteiros ate que seja informado o numero 0. Se o número lido for positivo, escreva uma mensagem indicando se ele é par ou ímpar. Se o número for negativo, escreva a seguinte mensagem Este número não é positivo. (use a função mod deve ser "x mod y" e retorna o resto da divisão de x por y).

Share:

0 comentários:

Enviar um comentário

Seguidores

Visitantes do blog

Pesquisar neste blogue

posts recentes

Traduzir