Prof. Edson J. R. Justino Aula Teórica 02 Escola Politécnica Pontifícia Universidade Católica do Paraná - PUCPR Introdução ao Conceito de Algoritmo e Programação Estruturada Enquanto “existir um quadrado livre e não tenha vencido (ou perdido) o jogo” “espere a jogada do oponente, continue depois” O Conceito de Algoritmo e as Estruturas Básicas de Controle Se “existe um quadrado livre” então Se “o centro estiver livre” então “jogue no centro” senão Se “o oponente tem dois quadrados quaisquer em linha com o terceiro desocupado” então “jogue neste quadrado desocupado” senão Se “há algum canto livre” então “jogue neste canto” Fim-se Fim-se Fim-se Fim-se Fim-enquanto 1 Introdução ao Conceito de Algoritmo e Programação Estruturada O conceito central da programação e da ciência da computação é o de algoritmo Programar é basicamente construir algoritmos A programação estruturada é vista como a técnica de construir e formular algoritmos de uma forma sistemática Introdução ao Conceito de Algoritmo e Programação Estruturada Exemplo de Algoritmo 1- Somar três números Passo 1 – Receber os três números. Passo 2 – Somar os três números. Passo 3 – Mostrar o resultado obtido. 2 Introdução ao Conceito de Algoritmo e Programação Estruturada Exemplo de Algoritmo 2 – Fazer um sanduíche Passo 1 – Pegar o pão. Passo 2 – Cortar o pão ao meio. Passo 3 – Pegar a maionese. Passo 4 – Passar a maionese no pão. Passa 5 – Pegar e cortar alface e tomate. Passo 6 – Colocar alface e tomate no pão. Passo 7 – Pegar o hambúrguer. Passo 8 – Fritar o hambúrguer. Passo 9 – Colocar o hambúrguer no pão. Introdução ao Conceito de Algoritmo e Programação Estruturada Exemplo de Algoritmo 3 – Trocar uma lâmpada Passo 1 – Pegar uma Lâmpada nova. Passo 2 – Pegar uma escada. Passo 3 – Posicionar a escada embaixo da lâmpada queimada. Passo 4 – Subir na escada com a lâmpada nova na mão. Passo 5 – Retirar a lâmpada queimada. Passo 6 – Colocar a lâmpada nova. Passo 7 – Descer da escada. Passo 8 – Testar o interruptor. Passo 9 – Guardar a escada. Passo 10 – Jogar a lâmpada velha no lixo (reciclagem). 3 Introdução ao Conceito de Algoritmo e Programação Estruturada Exemplo de Algoritmo 4 – Ir para a escola Passo 1 – Acordar cedo. Passo 2 – Ir ao Banheiro. Passo 3 – Abrir o armário para escolher uma roupa. Passo 4 – Se o tempo estiver quente, pegar uma camiseta e calça jeans; caso contrário, pegar um agasalho e calça jeans. Passo 5 – Vestir a roupa escolhida. Passo 6 – Tomar café. Passo 7 – Pegar uma condução. Passo 8 – Descer próximo à escola. Introdução ao Conceito de Algoritmo e Programação Estruturada Exemplo de Algoritmo 5 – Sacar dinheiro no banco 24 horas Passo 1 – Ir até um banco 24 horas. Passo 2 – Colocar o cartão. Passo 3 – Digitar a senha. Passo 4 – Solicitar a quantia desejada. Passo 5 – Se o saldo for maior ou igual à quantia desejada , sacar; caso contrário, mostrar mensagem de impossibilidade de saque. Passo 6 – Retirar o cartão. Passo 7 – Sair do banco 24 horas. 4 Introdução ao Conceito de Algoritmo e Programação Estruturada “Mas eu realizo essas atividades de maneira diferente!” Na maioria das vezes um mesmo problema pode apresentar soluções diferentes, mas o mesmo resultado “Podem existir vários algoritmos para resolver o mesmo problema!” Introdução ao Conceito de Algoritmo e Programação Estruturada Num algoritmo podemos distinguir claramente dois aspectos complementares: um aspecto estático e um aspecto dinâmico. A formulação de um algoritmo geralmente consiste em um texto contendo comandos (instruções) que devem ser executados numa ordem prescrita, evidentemente estático Por outro lado, este texto não nos interessa em si, mas pelos efeitos que sua execução pode evocar, evidentemente dinâmico Somar 1 + 1 Apresentar resultado estático 2 dinâmico 5 Introdução ao Conceito de Algoritmo e Programação Estruturada Qual é o padrão de comportamento utilizado para gerar a seqüência? 1, 5, 9, 13, 17, 21, 25, ... Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações primitivas, das quais damos por certo que elas podem ser executadas. Introdução ao Conceito de Algoritmo e Programação Estruturada Método para a construção de algoritmos Para construir qualquer tipo de algoritmo são necessários os passos seguintes: ○ Ler atentamente o enunciados do problema, destacando os pontos mais importantes; ○ Definir os dados de entrada, ou seja, quais dados serão fornecidos; ○ Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos. O processamento é responsável pela transformação dos dados de entrada em dados de saída; ○ Definir os dados de saída, quais dados serão gerados depois do processamento; ○ Construir o algoritmo seguindo um dos padrões de representação estruturada; ○ Testar o algoritmo utilizando simulações. 6 Programação Estruturada Basicamente, a programação estruturada ou algoritmo estruturado consiste numa metodologia de projeto de programas visando: Facilitar a escrita dos programas; Facilitar a leitura ( entendimento) dos programas; Permitir a verificação a priori dos programas; Facilitar a manutenção e modificação dos programas. O maior problema em grandes sistemas de software reside na enorme complexidade desses sistemas. Algoritmo Estruturado Tipos de Algoritmos Os três tipos mais usados de algoritmos são: Descrição narrativa, fluxograma e pseudocódigo ou portugol. Descrição Narrativa ○ A descrição narrativa consiste em analisar o enunciado do problema e escrever o procedimento de solução, utilizando linguagem natural. Vantagem: não é necessário aprender nenhum conceito novo; Desvantagem: a linguagem natural abre espaço para várias interpretações, dificultando a transcrição desse algoritmo para um programa. 7 Algoritmo Estruturado Descrição Narrativa Enquanto “existir um quadrado livre e não tenha vencido (ou perdido) o jogo” “espere a jogada do oponente, continue depois” Se “existe um quadrado livre” então Se “o centro estiver livre” então “jogue no centro” senão Se “o oponente tem dois quadrados quaisquer em linha com o terceiro desocupado” então “jogue neste quadrado desocupado” senão Se “há algum canto livre” então “jogue neste canto”. Algoritmo Estruturado Fluxograma ○ O fluxograma consiste em analisar o enunciado do problema e escrever o procedimento de solução, utilizando símbolos gráficos predefinidos. Vantagem: elementos gráficos facilitam a compreensão do problema; Desvantagem: é necessário aprender a simbologia e seu uso pode gerar diagramas excessivamente complexos. 8 Algoritmo Estruturado Símbolo utilizado para indicar o início e o fim do algoritmo Indica o sentido do fluxo Símbolo utilizado para indicar cálculos Símbolo utilizado para indicar entra de dados Símbolo utilizado para indicar saída de dados Símbolo utilizado para indicar tomada de decisão Algoritmo Estruturado Exemplo de Algoritmo 1- Somar três números Fluxograma Passo 1 – Receber os três números. Passo 2 – Somar os três números. Passo 3 – Mostrar o resultado obtido. 9 Algoritmo Estruturado Início Exemplo de Algoritmo 2 – Fazer um sanduíche Fluxograma Passo 1 – Pegar o pão. Passo 2 – Cortar o pão ao meio. Passo 3 – Pegar a maionese. Passo 4 – Passar a maionese no pão. Passa 5 – Pegar e cortar alface e tomate. Passo 6 – Colocar alface e tomate no pão. Passo 7 – Pegar o hambúrguer. Passo 8 – Fritar o hambúrguer. Passo 9 – Colocar o hambúrguer no pão. Pão, Maionese, Alface, Tomate, Hambúrger Cortar o pão ao meio Passar maionese no pão Colocar alface e tomate no pão Cortar alface e tomate Fritar o hambúrger Colocar o hamburger no pão Sanduíche Fim Algoritmo Estruturado Exemplo de Algoritmo 3 – Trocar uma lâmpada Passo 1 – Pegar uma Lâmpada nova. Passo 2 – Pegar uma escada. Passo 3 – Posicionar a escada embaixo da lâmpada queimada. Passo 4 – Subir na escada com a lâmpada nova na mão. Passo 5 – Retirar a lâmpada queimada. Passo 6 – Colocar a lâmpada nova. Passo 7 – Descer da escada. Passo 8 – Testar o interruptor. Passo 9 – Guardar a escada. Passo 10 – Jogar a lâmpada velha no lixo (reciclagem). Início Fluxograma Lâmpada, escada Posicionar a escada embaixo da lâmpada queimada Subir na escada com a lâmpada nova na mão Colocar a lâmpada nova Retirar a lâmpada queimada Descer da escada Testar o interruptor Não Lâmpada nova Sim Jogar lâmpada no lixo Guardar escada Fim 10 Algoritmo Estruturado Exemplo de Algoritmo 4 – Ir para a escola Passo 1 – Acordar cedo. Passo 2 – Ir ao Banheiro. Passo 3 – Abrir o armário para Início Acordar cedo Abrir o armário para escolher uma roupa Ir ao Banheiro Fluxograma escolher uma roupa. Quente Passo 4 – Se o tempo estiver quente, pegar uma camiseta e calça jeans; caso contrário, pegar um agasalho e calça jeans. Passo 5 – Vestir a roupa escolhida. Passo 6 – Tomar café. Passo 7 – Pegar uma condução. Passo 8 – Descer próximo à escola. Se o tempo estiver Camiseta, Calça jeans Agasalho, Calça jeans Vestir a roupa escolhida Pegar uma condução Tomar café Descer próximo à escola Fim Frio Algoritmo Estruturado Exemplo de Algoritmo 5 – Sacar dinheiro no banco 24 horas Passo 1 – Ir até um banco 24 horas. Passo 2 – Colocar o cartão. Passo 3 – Digitar a senha. Passo 4 – Solicitar a quantia desejada. Passo 5 – Se o saldo for maior oi igual à quantia desejada , sacar; caso contrário, mostrar mensagem de impossibilidade de saque. Passo 6 – Retirar o cartão. Passo 7 – Sair do banco 24 horas. Início Ir até um banco 24 horas Senha, Quantia desejada Colocar o cartão Fluxograma Não Saldo >= Quantia desejada Impossibilidade de saque Sim Sacar Retirar o cartão Fim Sair do banco 24 horas 11 Algoritmo Estruturado Pseudocódigo ou Portugol ○ O pseudocódigo ou portugol consiste em analisar o enunciado do problemas e escrever o procedimento de solução, utilizando regras predefinidas (sintáticas e estruturais). Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata, basta conhecer a sintaxe da linguagem de programação; Desvantagem: é necessário aprender as regras do pseudocódigo. Algoritmo Estruturado Enquanto “existir um quadrado livre e não tenha vencido (ou perdido) o jogo” “espere a jogada do oponente, continue depois” Se “existe um quadrado livre” então Se “o centro estiver livre” então “jogue no centro” senão Se “o oponente tem dois quadrados quaisquer em linha com o terceiro desocupado” então “jogue neste quadrado desocupado” senão Se “há algum canto livre” então “jogue neste canto” Fim-se Fim-se Fim-se Fim-se Fim-enquanto 12 Exercícios 1) 2) 3) 4) 5) 6) Escreva um algoritmo para descrever como você faz para ir de casa para a Universidade . Desenhe um fluxograma do algoritmo da questão 1. O que você entende por aspectos estáticos e dinâmicos de um algoritmo. O que é um algoritmo? O que é um algoritmo estruturado? Quais as formas de representação dos algoritmos? 13