Introdução a programação
Algoritmos
Contextualização
• Hoje em dia a Informática sofre profundas transformações em decorrência das novas tecnologias de hardware e das novas técnicas e paradigmas de desenvolvimento de software; Entretanto, a porta de entrada para isso ainda continua sendo o aprendizado da construção de ALGORITMOS; Ensinar programação de computadores não significa ensinar uma linguagem de programação; A arte de programar consiste na arte de organizar e dominar a complexidade! A utilização de linguagens de programação para representar as várias etapas do raciocínio algorítmico força o iniciante a se preocupar com problemas menos importantes (por exemplo, regras de sintaxe);
• • • •
• Definição
– Algoritmo: seqüência ordenada e sem ambigüidades de comandos que levam à execução de uma tarefa ou à solução de um problema. – Um algoritmo se destina a resolver um problema: fixa um padrão de comportamento a ser seguido, uma norma de execução a ser trilhada, para se atingir, como resultado final, a solução de um problema.
Exemplo:
INÍCIO
– Trocar_Lâmpada_Queimada {
Se (houver na dispensa lâmpada de mesma potência)
Pegar a lâmpada;
Senão
Comprar lâmpada de mesma potência;
Posicionar a escada abaixo do bocal da lâmpada; Subir na escada até alcançar a lâmpada; Girar a lâmpada do bocal no sentido anti-horário até soltá-la; Posicionar a lâmpada nova no bocal; Girá-la no sentido horário até prendê-la; Descer da escada. FIM
Propriedades de Bons Algoritmos
• 1.a Propriedade: o tempo de execução deve ser finito para qualquer entrada. • 2.a Propriedade: todo algoritmo deve ter início e fim; • 3.a Propriedade: os comandos do algoritmo devem ser precisos.
– – – – – Ex: comandos precisos e imprecisos Se ( | x - y | é pequeno) x y; impreciso Se ( | x - y | 0.001) x y; preciso Colocar uma pitada de sal; impreciso Colocar 5g de sal; preciso
Propriedades de Bons Algoritmos
• 4.a Propriedade: o algoritmo deve ter pelo menos