Pagina anteriorIndiceProxima pagina

Algoritmos Computacionais

3.2 Ninhos (NEST)

Se Condição Então
     .......
      Se Condição Então
      .......
      Senão
      .......
      Fim Se
     ......
Senão
     Se Condição Então
     .......
     Fim Se
Fim Se
.....
Algoritmo para achar o maior e o menor de 3.
Algoritmo MAIOR_E_MENOR
Início
   LER A, B, C
   Se A < C 
   Então
       Se A < B
       Então
            MIN <- A   { A < C, A < B }
            Se B > C
            Então MAX <- B
            Senão MAX <- C
            Fim Se
       Senão
           MAX <- C   { B < A < C }
           MIN <- B
       Fim Se
  Senão
      Se A > B
      Então MAX <- A   { A > B, A > C }
            Se B > C
            Então MIN <- C
            Senão MIN <- B
            Fim Se
      Senão    { C < A < B}
           MAX <- B
           MIN <- C
      Fim Se
  Fim Se
  ESCREVER 'MAIOR = ', MAX, 'MENOR = ', MIN
Fim de MAIOR_E_MENOR
 

Algoritmo Maior_e_Menor_2
Início
    LER A, B, C
    MAX <- A
    Se B > MAX
    Então
       MAX <- B
    Fim Se
    Se C > MAX
    Então
         MAX <- C
    Fim Se
    MIN <- A
    Se B < MIN
    Então
         MIN <- B
    Fim Se
   Se C < MIN
   Então
        MIN <- C
   Fim Se
   ESCREVER 'MAIOR = ', MAX, 'MENOR = ', MIN
Fim de Maior_e_Menor_2 

Ex.: Uma empresa decidiu dar um abono baseada em dois critérios: número de horas extras trabalhadas e n.º de horas de faltas.
 A entrada de dados é feita na seguinte ordem: nome do funcionário, n.º de horas extras, n.º de horas de faltas.
 O abono é calculado sobre o número de horas extras menos 2/3 do n.º de horas de faltas.
1º esboço <- Ler nome do funcionário com suas horas extras e horas de faltas.
   Testar para cada faixa de acordo com a tabela e calcular o abono.

Variáveis: nome, horas_faltas, horas_extras, abono
Algoritmo Abono;
Variáveis
   Nome: Cadeia de Caracteres
   Horas_Extras, Hora_Faltas: Inteiras
   Abono: Real;
Início
   LER Nome, Horas_Extras, Horas_Faltas
   Se (Horas_Extras - (2/3.0) * Horas_Faltas) > 40
   Então Abono <- 50.0
   Senão
      Se (Horas_Extras - (2/3.0) * Horas_Faltas) > 30
      Então Abono <- 40.0
      Senão
           Se (Horas_Extras - (2/3.0) * Horas_Faltas) > 20
           Então Abono <- 30.0
           Senão
                 Se (Horas_Extras - (2/3.0) * Horas_Faltas) > 10
                 Então Abono <- 20.0
                 Senão Abono <- 10.0
                 Fim Se
           Fim Se
     Fim Se
  Fim Se
  Escrever Nome, 'Receberá R$ ', Abono
Fim de Abono.

A expressão "(Horas_Extras - (2/3.0) * Horas_Faltas)" que é repetida pode ser calculada no início do algoritmo e usado apenas o seu resultado para cálculo do abono. Isto melhora o desempenho do cálculo.


Pagina anteriorIndiceProxima pagina

araujo@eng.uerj.br