Baixe o app para aproveitar ainda mais
Prévia do material em texto
Mariá Cristina Vasconcelos Nascimento Valério Rosset Aula 2 – Algoritmos: pseudocódigos e fluxogramas Noções de lógica Colocar ordem no pensamento Correção do pensamento Exemplo de silogismos no estudo da Lógica Proposicional. Exemplos: Todo mamífero é um animal. Todo cavalo é um mamífero. Portanto, todo cavalo é um animal. Usando a lógica Um missionário foi capturado por canibais em uma floresta. Os canibais então lhe fizeram a seguinte proposta: Se fizer uma declaração verdadeira, será cozido com batatas. Se fizer uma declaração falsa, será assado na churrasqueira. Usando a lógica, como foi que o missionário evitou as duas situações? Usando a lógica Um missionário foi capturado por canibais em uma floresta. Os canibais então lhe fizeram a seguinte proposta: Se fizer uma declaração verdadeira, será cozido com batatas. Se fizer uma declaração falsa, será assado na churrasqueira. Usando a lógica, como foi que o missionário evitou as duas situações? Ele disse: “Serei assado na churrasqueira”. Mas e a lógica de programação? O uso correto das leis do pensamento, da “ordem da razão” Objetivo: O desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes Resolvam com qualidade os problemas que se deseja programar Lógica de Programação Assim como utilizamos as palavras para expressar o raciocínio no dia-a-dia, existem as linguagens de programação Entretanto, as linguagens de programação estão atreladas a uma grande diversidade de detalhes computacionais, que pouco tem a ver com o raciocínio original. Para representar mais fielmente o raciocínio da Lógica de Programação, utilizamos os Algoritmos. O que é um algoritmo? É uma sequência de passos que visam a atingir um objetivo bem definido. Para especificar uma sequência de passos, é necessário pensar com ordem. O que é preciso para descrevermos um bom algoritmo? Especificar ações claras e precisas que a partir de um estado inicial e após um período de tempo finito produzem um estado final previsível e bem definido. Isso significa que o algoritmo fixa um padrão de comportamento a ser seguido, uma norma de execução a ser trilhada. Visa a solução de um problema garantindo que sempre que executado, sob as mesmas condições, produza o mesmo resultado. Algoritmizando a Lógica Uma vez concebida uma solução algorítmica para um problema, esta pode ser traduzida para qualquer linguagem de programação Agregar funcionalidades - codificação Algoritmos para computadores Numéricos e não-numéricos Antes, calculadora, hoje processador de informações Pseudocódigo Def. Um algoritmo é formalmente uma sequência finita de passos que levam à execução de uma tarefa. Por exemplo: “Somar dois números quaisquer”. • Escreva o primeiro número no retângulo A • Escreva o segundo número no retângulo B • Some o número do retângulo A com número do retângulo B e coloque o resultado no retângulo C Exemplo de Pseudocódigo Trocar_Lampada_Queimada{ Se(houver na dispensa lâmpada boa 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 no sentido anti-horário até soltá- la; Posicionar a nova lâmpada no bocal; Girá-la no sentido horário até prendê-la; Descer da escada; } Algoritmo do método de Báskara RaízesEquação2Grau(A,B,C){ Ler (A,B,C); Delta B2-4*A*C; Se (Delta >=0){ x1 ; x2 ; Imprimir(X1,X2); } Senão { Real ; Imag ; Imprimir( Real+Imag, Real – Imag) } } Exercícios 1) Identifique os dados de entrada, processamento e saída no algoritmo abaixo Receba código da peça Receba valor da peça Receba Quantidade de peças Calcule o valor total da peça (Quantidade * Valor da peça) Mostre o código da peça e seu valor total 2) Faça um algoritmo para “Calcular o estoque médio de uma peça”, sendo que ESTOQUEMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2 3) Teste o algoritmo anterior com dados definidos por você. Exercício 4) Escrever o algoritmo para o cálculo do fatorial de um número. Fluxogramas Um algoritmo pode ser representado de forma textual e na forma gráfica. Saliba (1993) define fluxograma como sendo uma representação gráfica de algoritmos Nela, formas geométricas diferentes implicam diferentes instruções Facilita o entendimento das ideias Fluxograma Seta Indica o sentido do fluxo de execução. Serve para conectar os blocos existentes O símbolo: Entrada de Dados Exibe a variável onde será armazenado/guardado o valor informado pelo usuário Sem aspas Valor1 O símbolo: Processamento Fornece recursos para que as operações sejam feitas e representadas Operações matemáticas, de atribuição. SOMA= Valor1+Valor2 O símbolo: Exibir Tela Pode mostrar ao usuário textos e variáveis; Uma variável é uma palavra que representa o endereço de memória onde determinado valor está armazenado “A soma é”, SOMA Fluxograma - sistemática Como construir um fluxograma? – Deve seguir a mesma lógica do pseudocódigo. Qual a disposição das instruções? – Devem estar dispostas em sequência começando da parte superior mais a esquerda com sentido para baixo. Exemplo de fluxograma: cálculo de média Início Valor 1 Valor 2 “A soma é”, SOMA Fim SOMA= Valor1+ Valor2 Exemplo 1 Um pseudocódigo e seu respectivo fluxograma para a seguinte instrução: comer um bombom (que esteja embrulhado). Uma Resposta - pseudocódigo Comer_bombom{ Pegar o bombom Retirar toda a sua embalagem Colocar na boca Comer Jogar o papel no lixo } Fluxograma correspondente Início Pegar o Bombom Retirar Toda a Embalagem Colocar na boca Comer Jogar o papel no Lixo Fim Exemplo 2 Um pseudocódigo e seu respectivo fluxograma para a seguinte problema: – comer bombom que esteja embrulhado e se for de morango. Outros símbolos Símbolo Significado Instrução Desvio Condicional Indica tomada de decisão. Divide o fluxo em dois caminhos Conector Serve para identificar o limite de um laço de repetição. Repetição com variável de controle Usado especificamente para o comando de repetição Repetição com teste lógico no início Usado para o comando de repetição com teste lógico no início Repetição com teste lógico no final Usado para o comando de repetição com teste lógico no final Mais Símbolos Mais Símbolos: Desvio condicional Indica tomada de decisão. Divide o fluxo em dois caminhos. SIM NÃO SE X > Y Fluxograma correspondente Início Pegar o Bombom Retirar Toda a Embalagem Colocar na Boca Comer Jogar o papel no lixo Fim Se for de Morango Mais Símbolos: Repetição de instruções Repetição com variável de controle. Repetição com teste lógico no início Repetição com teste lógico no final X <= 10 X <= 10 X <= 10 Mais Símbolos: Repetição de instruções Sequencia de Instruções do laço Sim Não Sequencia de Instruções do laço e Atualiza X Sequencia de Instruções do laço e Atualiza X Não Sim Não SIM X <= 10 X==1 Atualiza X X == 1 Exemplo 3 Um pseudocódigo e seu respectivo fluxograma para a seguinte problema: – Comer N bombons (que estejam embrulhados e sejam de morango). Pegar o Bombom Retirar Toda a Embalagem Colocar na BocaComer Jogar o papel no lixo Fim Se for de Morango Sim Há Bombons Início Não Sim Não Teste de mesa Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não. Exemplo de Teste de Mesa Considere o seguinte pseudocódigo cujo objetivo é calcular a média de 3 provas de um conjunto de alunos. Calcula Media { Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Some todas as notas e divida o resultado por 3 Mostre o resultado da divisão } Exemplo de fluxograma: cálculo de médias Início Prova1 Prova2 “A Média é”, M Fim M = (Prova1+ Prova2 + Prova3)/3 Prova3 Exemplo de Teste de Mesa Prova1 Prova2 Prova3 Média ... Exemplo de Teste de Mesa Prova1 Prova2 Prova3 Média 7 0 0 0 Receba a nota da prova1 Exemplo de Teste de Mesa Prova1 Prova2 Prova3 Média 7 0 0 0 7 8 0 0 Receba a nota da prova2 Exemplo de Teste de Mesa Prova1 Prova2 Prova3 Média 7 0 0 0 7 8 0 0 7 8 6 0 Receba nota da prova3 Exemplo de Teste de Mesa Prova1 Prova2 Prova3 Média 7 0 0 0 7 8 0 0 7 8 6 7 Some todas as notas e divida o resultado por 3 Exercícios 1. Escrever o fluxograma para o cálculo do fatorial de um número inteiro. 2. Apresentar um teste de mesa sobre o algoritmo do cálculo do fatorial de 7. Referências Bibliográficas E. C. de Araújo. (2007) Algoritmos: Fundamentos e Práticas. Visual Books P. S.Moraes, Curso Básico de Lógica de Programação, Unicamp, Centro de Computação. W.L.C. Saliba (1993) Técnicas de Programação: Uma abordagem estruturada. Makron Books. Forbellone e Eberspacher, Lógica de Programação, 3 edição. Referências Bibliográficas P. S.Moraes, Curso Básico de Lógica de Programação, Unicamp, Centro de Computação. Slide 1 Noções de lógica Usando a lógica Usando a lógica Mas e a lógica de programação? Lógica de Programação O que é um algoritmo? O que é preciso para descrevermos um bom algoritmo? Algoritmizando a Lógica Algoritmos para computadores Pseudocódigo Exemplo de Pseudocódigo Algoritmo do método de Báskara Slide 14 Exercício Slide 16 Fluxograma O símbolo: Entrada de Dados O símbolo: Processamento O símbolo: Exibir Tela Slide 21 Slide 22 Exemplo 2 Uma Resposta - pseudocódigo Slide 25 Slide 26 Outros símbolos Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Teste de mesa Exemplo de Teste de Mesa Exemplo de fluxograma: cálculo de médias Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Exercícios Referências Bibliográficas Slide 44
Compartilhar