Programação Estruturada Professor Luis Nícolas de Amorim Trigo [email protected] http://professor.ifsertao-pe.edu.br/nicolas.trigo/ EMENTA Programação Estruturada 2 1 CONTEÚDO • Introdução ao Algoritmo • Tipos de Algoritmos • Método para construção de algoritmos Programação Estruturada 3 CONCEITO DE ALGORITMO • Desde o início da existência do homem, ele tem procurado criar máquinas que o auxiliem em seus trabalhos, diminuindo esforços e economizando tempo. Dentre essas máquinas, o computador tem se mostrado uma das mais versáteis, rápidas e seguras. • O computador é capaz de auxiliar em qualquer coisa que lhe seja solicitada, mas não tem iniciativa, por isso precisa receber instruções nos mínimos detalhes. Programação Estruturada 4 2 CONCEITO DE ALGORITMO • A finalidade básica de um computador é receber, manipular, armazenar e fornecer dados. Programação Estruturada 5 CONCEITO DE ALGORITMO • “Algoritmo é uma seqüência de passos que visa atingir um objetivo bem definido.” (FORBELLONE) • “Algoritmo é a descrição de uma seqüência de passos que deve ser seguida para a realização de uma tarefa.” (ASCENCIO) • “Algoritmo é um procedimento passo a passo para a solução de um problema. Também pode ser uma seqüência detalhada de ações a serem executadas para realizar alguma tarefa”. (MEDINA) • “Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido. Portanto, algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.” (FARRER) Programação Estruturada 6 3 PADRÃO DE COMPORTAMENTO • Observe a seqüência de números a seguir e descubra o valor de X: – 1, 6, 11, 16, 21, 26, X, ... Inicia com 1 e a partir do 2º número, captura o valor anterior e soma 5. – 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, X, ... Seqüência de Fibonacci, que obedece a seguinte regra: inicialmente é fornecido os números 0 e 1, e para gerar o próximo número soma-se os dois números anteriores. – 2, 10, 12, 16, 17, 18, 19, X, ... Número começa com a letra D: 2, 10, 12, 16, 17, 18, 19, 200. Programação Estruturada 7 TIPOS DE ALGORITMOS Descrição Narrativa A escrita é em linguagem natural. • Vantagem: Não é necessário aprender uma forma de escrita. • Desvantagem: Difícil transcrição para algo compreensível para o computador. Programação Estruturada 8 4 TIPOS DE ALGORITMOS Descrição Narrativa Podemos observar que executamos vários algoritmos todos os dias, tendo como exemplo: • FAZER UM SANDUÍCHE DE QUEIJO 1. 2. 3. 4. 5. 6. 7. Pegar a faca Pegar o pão Cortar o pão Colocar a faca na mesa Pegar a fatia de queijo Abrir o pão Colocar a fatia de queijo no pão Programação Estruturada 9 TIPOS DE ALGORITMOS Descrição Narrativa Outro Exemplo: • MULTIPLICAÇÃO DE DOIS NÚMEROS 1. 2. 3. 4. 5. 6. Pega o primeiro número Pega o segundo número Aplica o sinal de multiplicação entre eles Executa a multiplicação Captura o resultado da multiplicação Mostra o resultado da multiplicação Programação Estruturada 10 5 EXERCÍCIO DE FIXAÇÃO • Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas ele mesmo e mais uma das três cargas que são: – um lobo, – um bode e – um maço de alfafas. • Observe as leis naturais: – o lobo é carnívoro e – o bode é herbívoro. • O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas. Programação Estruturada 11 TIPOS DE ALGORITMOS Fluxograma A escrita é montada em símbolos gráficos. • Vantagem: Símbolos gráficos torna-se mais compreensíveis do que elementos textuais. • Desvantagem: Além de aprender a simbologia do fluxograma, dificulta a transcrição para algo compreensível para o computador. Programação Estruturada 12 6 TIPOS DE ALGORITMOS Fluxograma DESCRIÇÃO NARRATIVA FLUXOGRAMA Passo 1: Receber os dois números que serão multiplicados. Passo 2: Multiplicar os números. Passo 3: Mostrar o resultado obtido na multiplicação. Programação Estruturada 13 TIPOS DE ALGORITMOS Pseudocódigo A escrita é dotada regras predefinidas, de instruções. • Vantagem: É fácil a transcrição para algo compreensível para o computador. • Desvantagem: É necessário aprender as regras do pseudocódigo. Programação Estruturada 14 7 TIPOS DE ALGORITMOS Pseudocódigo INÍCIO VARIÁVEL Num1, Num2, M: INTEIRO ESCREVA (“Digite dois números: ”) LEIA (Num1, Num2) M Num1 * Num2 ESCREVA (“Multiplicação: ”, M) FIM Programação Estruturada 15 MÉTODO PARA CONSTRUÇÃO DE ALGORITMOS Para a construção de qualquer tipo de algoritmo são necessários os seguintes passos: 1. Ler atentamente o anunciado, identificando as partes importantes; 2. Definir os dados de entrada, que são os dados fornecidos; 3. Definir o processamento, através de cálculos e restrições utilizando os dados de entrada; 4. Definir os dados de saída, que são gerados a partir do processamento; 5. Construir o algoritmo utilizando um dos tipos de algoritmos; 6. Testar o algoritmo realizando simulações. Programação Estruturada 16 8 MAIS EXERCÍCIOS DE FIXAÇÃO • Criar uma seqüência de passos (algoritmo) de como fritar um ovo. • Criar uma seqüência de passos (algoritmo) de como trocar um pneu de um carro. • Criar uma seqüência de passos (algoritmo) de como fazer um bolo comum. • Elabore uma seqüência de passos que mova três discos de uma torre de Hanói, que consiste em três hastes (a - b - c), uma das quais serve de suporte para três discos de tamanhos diferentes (1 - 2 - 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor e nunca pode deixar qualquer disco fora das hastes. O objetivo é transferir os três discos que se encontram na haste 'A' para a haste 'C’. Programação Estruturada 17 REFERÊNCIAS BIBLIOGRÁFICAS • ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. Fundamentos de Programação de Computadores: Algoritmos, Pascal e C/C++. São Paulo: Pearson Prentice Hall, 2002. • FARRER, Harry; BECKER, Cristiano Gonçalves; FARIA, Eduardo Chaves; et. al. Programação Estruturada de Computadores: Algoritmos Estruturados. 3. ed. Rio de Janeiro: LTC – Livros Técnicos e Científicos Editora S.A., 1999. • FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de Programação: A construção de algoritmos e estruturas de dados. 3. ed. São Paulo: Pearson Prentice Hall, 2005. • MEDINA, Marco; FERTIG, Cristina. Algoritmos e Programação: Teoria e Prática. São Paulo: Novatec Editora, 2006. Programação Estruturada 18 9