Algoritmos e Estruturas de Dados I

Aula 5: Desenvolvimento de Programas:

Programar envolve:

Definição do Problema

Especificação do problema

Especificação da entrada

Especificação da saída

Exemplo

Problema: determinar o número de aprovados em uma disciplina com nota mínima 60.

Entrada: arquivo contendo notas dos alunos

Saída: número de alunos aprovados

Consistência dos Dados de Entrada

Verificação da validade dos dados

Exemplo de arquivo de notas:

9837184 95

9700000 83

98371 84 94

9937184 67

9837184 102

9837I84 z

Projeto do Algoritmo

Algoritmo:

Exemplos:

Características de algoritmos:

Descritos em ``pseudo-linguagens'' de altíssimo nível.

Exemplo

algoritmo aprovados-aeds1;
   inteiro: número, nota, aprovados;
   início
      aprovados := 0;
      enquanto existem dados faça
         leia (número, nota);
         se nota >= 60 então
            aprovados := aprovados + 1;
         fim se;
      fim enquanto;
      imprima (aprovados);
   fim.

Codificação em Pascal

{ Determina numero de aprovados }
program aprovados_aeds1;
var numero, nota, aprovados: integer;
begin
  aprovados := 0;
  while not eof begin
    readln(numero, nota);
    if nota >= 60 then
      aprovados := aprovados + 1;
  end;
  writeln(`AEDS1 - 2o. semestre 1998');
  write(`numero de alunos `);
  writeln(`aprovados = `, aprovados);
end.

Depuração

Descoberta, localização e correção de erros.

Erros:

Localizar erros de sintaxe: compilador.

Localizar erros de execução e lógica:

Testes

Verificar se o programa funciona com dados diferentes

Teste somente demonstra a presença de erros, nunca sua ausência!!!

Número de possibilidades para dados de entrada é muito grande:

Documentação

Extremamente importante!!! Sem documentação o programa não pode ser entendido ou usado.

Dentro do programa:

Técnica:

Do usuário