Algoritmos PROGRAMAÇÃO I (COM06842) LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) F REDDY B RASILEIRO www.inf.ufes.br/~fbrasileiro [email protected] Conteúdo 3. Algoritmos 1. 2. 3. 4. Principais características dos algoritmos Regras para construção de algoritmos Refinamentos sucessivos Representação de algoritmos PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 2 Características • Capacidade de receber dado(s) de entrada; • Capacidade de gerar informações de saída; • Ser finito; • Não ser ambíguo; • Ser efetivo. PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 3 Regras para construção Precisa-se descrever a sequência de instruções de maneira simples e objetiva. Técnicas: • Usar somente um verbo por frase; • Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática; • Usar frases curtas e simples; • Ser objetivo; • Procurar usar palavras que não tenham sentido dúbio; PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 4 Refinamentos sucessivos Um comando que não for do entendimento do destinatário terá de ser desdobrado em novos comandos, que constituirão um refinamento do comando inicial. [FARRER] PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 5 Exemplo – N termos de Fibonacci • Receba o valor N • Processe os 2 primeiros termos • Processe os termos restantes PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 6 Exemplo – N termos de Fibonacci • Receba o valor N • Processe os 2 primeiros termos ◦ N >= 1? ◦ Imprima 1 ◦ N >= 2? ◦ Imprima 1 • Processe os termos restantes PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 7 Exemplo – N termos de Fibonacci • Receba o valor N • Processe os 2 primeiros termos ◦ N >= 1? ◦ Imprima 1 ◦ N >= 2? ◦ Imprima 1 • Processe os termos restantes ◦ N >= 3? ◦ i = 3; ◦ Enquanto i <= 3 ◦ F(i) = F(i-1) + F(i-2) ◦ Imprima F(i) ◦ i=i+1 PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 8 Representação de Algoritmos PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 9 Fluxograma Terminal Indica o INÍCIO ou FIM de um processamento. Exemplo: Início do algoritmo. Indica entrada de dados. Exemplo: Digite a nota da prova 1. Entrada Processamento : Calculo de dois números. Processamento Saída Condição Mostra informações ou resultados. Exemplo: Mostre o resultado do calculo. Verifica uma a validade de uma condição. Exemplo: Se a média for inferior a 7,0 então o aluno está reprovado, senão ele está aprovado. PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 10 Exemplo PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 11 Pseudo-código • Expressões concisas e pré-definidas para representar as ações e o fluxo de execução. • Descrição textual, estruturada e regida por regras que descrevem os passos executados no algoritmo. • Palavras-chaves, indentação, um passo por linha, um símbolo para indicar o final do passo (por exemplo, o ponto-e-virgula “;”). PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 12 Pseudo-código Vantagens: • Usa o português como base; • Pode-se definir quais e como os dados vão estar estruturados; • Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. Desvantagens: • Exige a definição de uma linguagem não real para trabalho; • Não padronizado. PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 13 Exemplo algoritmo CALCULA_MEDIA; var P1, P2, P3, MEDIA: real; inicio leia (P1,P2,P3); MEDIA <- (P1 + P2 + P3) / 3; escreva (MEDIA); se MEDIA >= 7,0 então escreva (‘APROVADO’); senão escreva (‘REPROVADO’); fim-se; fim. PROGRAMAÇÃO I (COM06842) / LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039) 14