Algoritmos Breve Introduo Prtica Representao de algoritmos Algoritmos
Algoritmos Breve Introdução Prática
Representação de algoritmos Algoritmos podem ser representados de várias maneiras, seguem algumas das mais utilizadas: • Língua Nativa (Português, por exemplo); • Linguagem de programação; • Linguagem algorítmica ou pseudo-código; • Diagrama de Nassi-Shneiderman ou Chapin; • Fluxograma;
Algoritmo em Língua Nativa Um algoritmo pode ser expresso na própria língua nativa (português). Esse tipo de expressão lembra uma receita culinária. Vantagens: • Facilidade de compreensão, portanto é uma forma didáctica de ensinar; Desvantagens: • • Pode levar a ambiguidade; Não há rigor, portanto um algoritmo pode ser resumido ou detalhado demais;
Algoritmo em Língua Portuguesa INÍCIO 1. Tirar o telefone do gancho; 2. Esperar até ouvir o sinal de linha; 3. Teclar o número desejado; 4. Se der o sinal de chamar: 4. 1. Conversar; 4. 2. Desligar; 5. Se não der o sinal de chamar: 5. 1. Desligar; 5. 2. Repetir desde o passo 1 FIM
Linguagem de programação A linguagem de programação é uma representação prática de um algoritmo, é o objectivo final do algoritmo. Vantagem: • permite testar efectivamente se o algoritmo está realmente correcto ou não, por meio da execução do programa. Desvantagem: • • pode ser detalhada demais para alguns casos, dificultando seu entendimento; o entendimento do algoritmo só é compreendido por aqueles que conhecem a sintaxe da linguagem;
Linguagem de programação Este é um código-fonte escrito em linguagem de programação java que implementa um algoritmo de divisão de dois números inteiros. // algoritmo para dividir dois inteiros // execute-a assim: java Divide <num 1> <num 2> public class Divide { public static void main(String[] args) { // converte o primeiro número int n 1 = Integer. parse. Int(args[0]); // converte o segundo número int n 2 = Integer. parse. Int(args[1]); // testa se o segundo é zero if (n 2 == 0) System. out. println("a divisão por zero não é permitida"); Else System. out. println("a divisão é: "+(n 1/n 2)); } }
Linguagem algorítmica É uma linguagem que se assemelha a uma linguagem de programação real, por isso é chamada também de pseudo-código. Geralmente é adaptada à língua nativa, português por exemplo é uma delas e por isso alguns a chamam de "Portugol" - ou seja, uma linguagem em língua portuguesa. Esta é a representação algorítmica mais utilizada no estudo de algoritmos. Vantagens: • • • Facilidade de compreensão, comparando-a com as linguagens de programação; Não é ambígua como uma língua; Não é rigorosa como uma linguagem de programação, facilitando a aprendizagem – focando a lógica e não sintaxe; Desvantagem: • Não existe um padrão de pseudo-código ;
Linguagem algorítmica (pseudo-código) Exemplo: {algoritmo para dividir dois inteiros} inicio real: N 1, N 2; leia(N 1); leia(N 2); se (N 2 = 0) entao escreva("A divisão por zero não é permitida"); senao inicio DIVISAO <- N 1/N 2; escreva("A divisão é: ", DIVISAO);
Diagrama de Nassi-Shneiderman ou Chapin É um diagrama gráfico onde cada sequência é representada por um bloco, que se pode subdividir em dois (no caso de uma condição). Vantagem: • Facilidade de compreensão; Desvantagem: • A sua criação e modificação é mais complexa que as anteriores;
Diagrama de Nassi-Shneiderman ou Chapin
Fluxograma é uma forma de representação algorítmica onde se utilizam blocos de processamento e de decisão, com setas apontando a associação entre eles. Vantagens: • É razoavelmente padronizado; • Facilita a compreensão gráfica do problema; Desvantagem: • A sua edição e manutenção é mais complexa que as representações textuais;
Fluxograma
Símbolos Gerais Terminal: Início e Fim Processo: Execução de Operações Entrada e Saída de Dados Decisão Preparação Conexão de Página Subrotina
Mais Símbolos Ecrã Documento Multi-documento Processo Alternativo Operação Manual Introdução Manual Disco (Armazenamento) Armazenamento Interno
- Slides: 14