Programação Estruturada Professor Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br 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. Pegar a faca 2. Pegar o pão 3. Cortar o pão 4. Colocar a faca na mesa 5. Pegar a fatia de queijo 6. Abrir o pão 7. 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. Pega o primeiro número 2. Pega o segundo número 3. Aplica o sinal de multiplicação entre eles 4. Executa a multiplicação 5. Captura o resultado da multiplicação 6. 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 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. FLUXOGRAMA 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