Controle de Fluxo de Execução


Introdução


Estrutura Seqüencial

algoritmo CalculaMedia;
variáveis
   N1,
   N2,
   Media : real;
início
   leia (N1, N2);
   Media <- (N1 + N2) / 2;
   escreva (Media);
fim.

Estrutura de Decisão (SE)

se <condição> então
   <comando1>
senão
   <comando2>

Exercícios

14) Escrever algoritmo para ler os valores A, B e C e informar se A + B é menor que C.

15) Escrever algoritmo para ler 3 números inteiros e escrever o menor deles.

16) Escrever algoritmo para ler 3 valores distintos e exibi-los em ordem crescente.

17) Escrever algoritmo para ler as medidas dos lados de um triângulo e determinar se este é eqüilátero (3 lados iguais), isósceles (2 lados iguais) ou escaleno (3 lados diferentes).


Exercícios de Revisão

18) Analise os algoritmos dados abaixo e escreva os objetivos destes.

a) algoritmo Questao18A;
   variáveis
     N1, N2, N3, Saida : inteiro;
   início
      leia (N1, N2, N3);
      Saida <- N1;
      se N2 > Saida então
         Saida <- N2;
      se N3 > Saida então
         Saida <- N3;
      escreva (Saida);
   fim.    
b) algoritmo Questao18B;
   variáveis
      P1, P2, P3 : literal;
   início
      leia (P1, P2, P3);
      se (P1 < P2) e (P1 < P3) então
         escreva (P1)
      senão
         se (P2 < P3) então
            escreva (P2)
         senão
            escreva (P3);
   fim.

19) Considerando o problema: "dados três valores, verificar se estes podem ser os comprimentos dos lados de um triângulo retângulo, escreva algoritmo de resolução deste (a) correto e (b) amigável.

20) Considerando que (1) o gabarito correto da prova é: 1-A, 2-C, 3-D, 4-B e 5-A e (2) cada questão vale 2 pontos, ajuste o algoritmo X dado para atender ao objetivo de correção de uma prova objetiva.

algoritmo X;
variáveis
   R1, R2, R3, R4, R5 : literal[1];
   Nota : inteiro;
constantes
   Pontos = 2;
início
   se R1 = 'A' então
     Nota <- Nota + Pontos
   senão
     se R2 = 'C' então
       Nota <- Nota + Pontos
     senão
       se R3 = 'D' então
         Nota <- Nota + Pontos
       senão
         se R4 = 'B' então
           Nota <- Nota + Pontos
         senão
           se R5 = 'A' então
             Nota <- Nota + Pontos
   escreva (Nota);
fim.

21) Considerando que: (1) o gabarito correto da prova é 1-A, 2-C, 3-D, 4-B e 5-A, (2) cada resposta correta incrementa 2 pontos e (3) cada resposta incorreta decrementa 1 ponto; ajustar o algoritmo X da questão 20.


Estrutura de Decisão (CASO)

caso <condição> seja
  <resultado1> : <comando1>;
  <resultado2> : <comando2>;
  ...
  <resultadoN> : <comandoN>;
senão
  <comandos>
fim;
algoritmo Identificadores;
variáveis
   Mes : inteiro;
início
   leia (Mes);
   caso Mes seja
      1: escreva ('Janeiro');
      2: escreva ('Fevereiro');
      3: escreva ('Março');
      4: escreva ('Abril');
      5: escreva ('Maio');
      6: escreva ('Junho');
      7: escreva ('Julho');
      8: escreva ('Agosto');
      9: escreva ('Setembro');
     10: escreva ('Outubro');
     11: escreva ('Novembro');
     12: escreva ('Dezembro');
   senão
      escreva ('Mês inexistente');
   fim;
fim.

Exercícios

22) Reescreva o algoritmo Calculadora, dado como ilustração de aula, usando a estrutura caso.

23) Proponha uma situação problema cuja solução implica no uso de um algoritmo composto pela estrutura caso.


Estruturas de Repetição


Estrutura de Repetição (PARA)

para <Contador> <- <Início> até <Fim> faça
   <comando>;
algoritmo MaiorDeTrês;
variáveis
   I, N, Maior : inteiro;
início
   Maior <- 0;
   para I <- 1 até 3 faça
      início
         leia (N);
         se N > Maior então
            Maior <- N
      fim
   escreva (Maior)
fim.
algoritmo SomaPares;
variáveis
   N, Soma : inteiro;
início
   Soma <- 0;
   para N <- 1 até 20 faça
      Soma <- Soma + 2 * N;
   escreva (Soma);
fim.

Exercícios

24) Ajustar o algoritmo SomaPares dado de forma que os números sejam exibidos.

25) Escrever algoritmo para calcular o somatório de 1/N, com N variando de 1 ao valor informado de N.

26) Escrever algoritmo para calcular o somatório de N primeiros múltiplos de 3 maior que 0.

27) Numa empresa há 25 vendedores. Do total de vendas de cada empregado, a empresa destina 10% a uma ONG. Escrever um algoritmo para calcular o montante a ser destinado à citada organização.


Estrutura de Repetição Condicional (ENQUANTO)

enquanto <Condição> faça
   <comando>;
algoritmo Fatorial;
variáveis
   Resultado, Numero : inteiro;
início
   Resultado <- 1;
   leia (Numero);
   enquanto (Numero > 1) faça
      início
         Resultado <- Resultado * Numero;
         Numero <- Numero - 1;
      fim;
   escreva (Resultado);
fim.
algoritmo SomaPares;
variáveis
   N, Soma : inteiro;
início
   Soma <- 0;
   N <- 1;
   enquanto N < 21 faça
      início
         Soma <- Soma + 2 * N;
         N <- N + 1;
      fim;
   escreva (Soma);
fim.

Exercícios

28) Faça um algoritmo que calcule e escreva o valor S = 1/50 + 3/49 + 5/48 + 7/47 + ... + 99/1.

29) Refaça o algoritmo da calculadora de forma a possibilitar que o usuário deste efetue operações +, -, *, / até que pressione a letra Q.

30) Elabore algoritmo para ler nome, quantidade e preço de produtos e componha uma nota de venda. O total da venda é calculado quando o usuário do programa digita FIM como nome do produto.

31) Elabore algoritmo para exibir os termos e o somatório de uma PG qualquer. Devem ser lidos: o primeiro termo, a razão e o número de termos.


Estrutura de Repetição Condicional (REPITA)

repita
  <comandos>;
até <condição>
algoritmo ProgressaoGeometrica;
variáveis
   Contador,
   Termo,
   Soma : inteiro;
início
   Contador <- 1;
   Termo <- 3;
   Soma <- 0;
   repita
      escreva (Termo);
      Soma <- Soma + Termo;
      Termo <- Termo * 3;
      Contador <- Contador + 1;
   até Contador > 25;
   escreva (Soma);
fim.
algoritmo SomaPares;
variáveis
   N, Soma : inteiro;
início
   Soma <- 0;
   N <- 1;
   repita
      Soma <- Soma + 2 * N;
      N <- N + 1;
   até N > 20;
   escreva (Soma);
fim.

Exercícios

32) Escreva algoritmo para ler palavras com 5 caracteres e exibi-las inversa (dado: calda, escreve adlac). A execução deve ser encerrada quando o usuário digitar 'FIM'.

33) Refaça o algoritmo que calcula o fatorial de um número, usando a estrutura REPITA.

34) Escreva algoritmo para ler palavras com 8 caracteres e exibir a quantidade de vogais que estas possuem.

35) Dado nome e salário dos funcionários de uma empresa, escreve nome e salário do funcionário com maior salário e daquele com menor salário.