Algoritmos e Estruturas de Dados I

Aula 7: Algoritmos:

Linguagem Descrição de Algoritmos

Algoritmos:

Qual linguagem usar para descrever algoritmos ?

Linguagem Descrição de Algoritmos

Algoritmo = ações + dados

Dados são:

Variáveis:

Declaração de variáveis -- tipo: lista vars;

inteiro: numero, nota;
real: media;

Estruturas de Controle

Atribuição de valores:

  variável := expressão;

Expressões

  variável ; expr + expr ; expr & expr ; ! expr ; (expr)

Sequência:

  comando1;
  comando2;

Condicional:

se condição
  então comando1;
  senão comando2;
fimse;

se condição então comando1; fimse;

Estruturas de Controle

Repetição

enquanto condição faça
  comando1;
fimenquando;


repita
  comando1;
até condição;


para variável de valor1 até valor2 faça
  comando1;
fimpara;

Entrada e Saída

  leia (lista de variáveis);
  escreva ( lista de variáveis)

Exemplo: Polinômio de Grau 2

algoritmo poli2;
      real: a, b, c, delta, xr1, xr2, xi1, xi2;
início
      enquanto existem dados faça
            leia(a, b, c);
            delta := b2 - 4 a c;
            se delta >= 0 então
                  xr1 := ;
                  xr2 := ;
                  xi1 := 0; xi2 := 0;
            senão
                  xr1 := ;
                  xr2 := xr1;
                  xi1 := ;
                  xi2 := - xi1;
            fimse;
            escreva(a, b, c, xr1, xr2, xi1, xi2);
      fimenquanto;
fim.

Exemplo: Somatório Impares < 100

Algoritmo para calcular a soma de todos os números ímpares menores que 100:

algoritmo somatório;
      inteiro: numero, soma;
início
      numero := 1;
      soma := 0;
      enquanto numero < 100 faça
            soma := soma + numero;
            numero := numero + 2;
      fimenquanto;
      escreva(soma);
fim.

Observações:

Exemplo: Fatorial de n

algoritmo fatorial;
      inteiro: n, f, k;
início
      leia(n);
      k := 0;
      f := 1;
      enquanto k < n faça
            k := k + 1;
            f := f k;
      fimenquanto;
      escreva (n, f);
fim.

Exemplo: Maior Idade

Algoritmo para cálculo da idade da pessoa mais velha de um grupo.

algoritmo maior-idade;
      inteiro: idade, maior;
início
      maior := 0;
      enquanto existem dados faça
            leia(idade);
            se idade > maior então maior := idade; fimse;
      fimenquanto;
      escreva(maior);
fim.

Observação:

Exemplo: Cálculo da Idade

Algoritmo para cálculo da idade em anos e meses dados ano/mes de nascimento de ano/mes atual.

algoritmo idade;
      inteiro: mes1, ano1,   { data de nascimento }
                  mes2, ano2,   { data atual }
                  mesestotal, anosidade, mesesidade;
início
      leia( mes1, ano1);
      leia( mes2, ano2);
      mesestotal := (ano2 - ano1) 12 + (mes2 - mes1);
      anosidade := mesestotal div 12;
      mesesidade := mesestotal mod 12;
      escreva (mes1, ano1, anosidade, mesesidade);
fim.