Lógica de Programação Prof. Hélio Oliveira Prof. Airton Ribeiro Lógica de Programação Introdução à lógica de programação Introdução O que é lógica? Seqüência lógica Construindo uma sequência lógica Instruções Algoritmo Programa Representação de algoritmos Introdução Lógica de Programação A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas. Ela permite definir a seqüência lógica para o desenvolvimento. Introdução à Lógica de Programação O que é lógica? Imagine a seguinte sequência: Sair do banco. 2. Aguardar a vez de ser atendido. 3. Entrar na fila do caixa. 4. Digitar a senha. 5. Entrar no banco. 6. Informar o valor a ser retirado. 7. Procurar a fila do caixa. 8. Pegar o comprovante do saque, o cartão eletrônico e o dinheiro. 9. Entregar o cartão eletrônico ao atendente do caixa. 10. Conferir o valor sacado. Lógica de Programação 1. Introdução à Lógica de Programação O que é lógica? Organizando, reordenando a sequência: Entrar no banco. 2. Procurar a fila do caixa. 3. Entrar na fila do caixa. 4. Aguardar a vez de ser atendido. 5. Entregar o cartão eletrônico ao atendente do caixa. 6. Informar o valor a ser retirado. 7. Digitar a senha. 8. Pegar o comprovante do saque, o cartão eletrônico e o dinheiro. 9. Conferir o valor sacado. 10. Sair do banco. Lógica de Programação 1. Introdução à Lógica de Programação O que é lógica? Lógica de Programação É a técnica de encadear pensamentos para atingir um determinado objetivo. Estes pensamentos podem ser descritos como uma seqüência lógica de instruções que devem ser seguidas para se cumprir uma determinada tarefa. Introdução à Lógica de Programação Seqüência lógica Lógica de Programação São passos executados até atingir um objetivo ou solução de um problema. Introdução à Lógica de Programação Construindo uma seqüência lógica Lógica de Programação Um carro sai da cidade de Boa Viagem com destino à cidade de Enfim-Cheguei, que fica à 25Km de distância. Na estrada que liga as duas cidades há um restaurante no quilômetro 5, um posto de combustíveis no quilômetro 15, um trecho em obras no quilômetro 18 e uma curva sinuosa no quilômetro 22. Dessa forma, qual a sequência de placas de indicação(avisos e quilometragem) da estrada? Introdução à Lógica de Programação Construindo uma seqüência lógica Lógica de Programação Boa Viagem, Volte sempre - Enfim-Cheguei a 25Km, Km 1, Km 2, Km 3 – Restaurante a 2Km, Km4, Restaurante, Km 6, Km 7, Km 8, Km 9, Km 10, Km 11, Km 12, Km 13 - Posto de Combustível a 2 Km, Km 14, Posto de combustíveis, Km 16 – Obras a 2 Km, Km 17, Obras, Km 19, Km 20 – Curva sinuosa a 2Km, Km 21, Curva sinuosa, Km 23 – Enfim-Cheguei a 2Km, Km 24, Bem vindo a Enfim-Cheguei. Introdução à Lógica de Programação Instruções Lógica de Programação Na linguagem comum, entende-se por instruções “um conjunto de regras ou normas definidas para a realização ou emprego de algo”. Introdução à Lógica de Programação Instruções Lógica de Programação Em informática, porém, instrução é a informação que indica a um computador uma ação a executar. Introdução à Lógica de Programação Algoritmo Lógica de Programação Usamos algoritmos, mesmo sem perceber, em todos os momentos de nossa vida. Uma receita de cozinha e um manual de configuração são exemplos de algoritmos. Introdução à lógica de programação Algoritmo Lógica de Programação É a descrição de uma seqüência finita de passos lógicos, bem definidos, que descreve a solução de um problema. Introdução à lógica de programação Algoritmo Lógica de Programação É um conjunto finito de regras, bem definidas, para a solução de um problema específico em um tempo finito e com um número finito de passos. Introdução à lógica de programação Algoritmo Lógica de Programação Serve como modelo para programas, pois sua linguagem é intermediária à linguagem humana e às linguagens de programação. Dessa forma, os algoritmos são uma boa ferramenta na validação da lógica de tarefas a serem automatizadas. Introdução à lógica de programação Algoritmo Algoritmo “Tirar um carro da garagem” Lógica de Programação – – – – – – – – – – – – Passo 1: Abrir o portão da garagem Passo 2: Entrar no carro Passo 3: Verificar se o carro está engrenado Passo 4: Ligar o carro Passo 5: Aplicar marcha à ré Passo 6: Desativar o freio de mão Passo 7: Verificar pelo retrovisor se a saída está livre Passo 8: Acelerar controlando a embreagem Passo 9: Sair da garagem Passo 10: Frear Passo 11: Ativar o freio de mão Passo 12: Desligar o motor Introdução à lógica de programação Algoritmo Algoritmo “Fazer um sanduíche” Lógica de Programação – – – – – – – – – Passo 1: Pegar o pão Passo 2: Cortar o pão ao meio Passo 3: Pegar maionese Passo 4: Passar maionese no pão Passo 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 hambúrguer no pão OBS: Existem diferentes formas de fazer um sanduíche, logo podem existir diversas maneiras de solucionar um mesmo problema. Introdução à lógica de programação Programa Lógica de Programação Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de programação(Java, C++, PhP, C#, entre outras). Introdução à lógica de programação Representação de algoritmos Lógica de Programação Os algoritmos podem ser representados de três formas: – Descrição narrativa; – Fluxograma ou Diagrama de blocos; – Pseudocódigo ou Portugol. Introdução à lógica de programação Representação de algoritmos: Descrição narrativa Lógica de Programação Consiste em utilizar a linguagem natural para descrever os passos necessários para a resolução de um problema. Introdução à lógica de programação Representação de algoritmos: Descrição narrativa Lógica de Programação Vantagem: Não é necessário aprender conceitos novos. Desvantagem: A linguagem natural abre espaço para várias interpretações, o que pode dificultar sua tradução para um programa. Introdução à lógica de programação Representação de algoritmos: Descrição narrativa Lógica de Programação Ex1: “Chupar uma bala” – Passo1: Pegar uma bala – Passo2: Retirar o papel – Passo3: Chupar a bala – Passo4: Jogar o papel fora Introdução à lógica de programação Representação de algoritmos: Descrição narrativa Lógica de Programação Ex2: “Somar dois números quaisquer”: – Passo1: escreva o 1º nº no retângulo A – Passo2: escreva o 2º nº no retângulo B – Passo3: some os dois números – Passo4: escreva o resultado no retângulo C. Retângulo A Retângulo C Retângulo B + = Introdução à lógica de programação Representação de algoritmos: Fluxograma ou Diagrama em blocos Lógica de Programação Consiste em analisar o problema e escrever o algoritmo de sua solução utilizando símbolos gráficos. Introdução à lógica de programação Representação de algoritmos: Fluxograma ou Diagrama em blocos Lógica de Programação Com o fluxograma, é utilizada uma seqüência de símbolos, com significados bem definidos, que facilitam a visualização dos passos de um processamento. Introdução à lógica de programação Representação de algoritmos: Fluxograma ou Diagrama em blocos Lógica de Programação Vantagem: o entendimento gráficos é mais simples. de elementos Desvantagens: é necessário aprender uma nova simbologia; Introdução à lógica de programação Representação de algoritmos: Fluxograma ou Diagrama em blocos Lógica de Programação Desvantagens: – O algoritmo resultante pode não apresentar muitos detalhes, dificultando sua tradução para uma linguagem de programação; – Um algoritmo detalhado pode ser complexo de entender. Introdução à lógica de programação Representação de algoritmos: Fluxograma ou Diagrama em blocos Lógica de Programação Símbolos: início/fim Direção do fluxo Cálculos e Atribuições Entrada de Dados Tomada de decisão Saída de Dados Introdução à lógica de programação Representação de algoritmos: Fluxograma ou Diagrama em blocos Lógica de Programação Ex1: algoritmo “multiplicação de dois números” início N1, N2 M = N1 * N2 Imprime M fim Introdução à lógica de programação Representação de algoritmos: Fluxograma ou Diagrama em blocos Lógica de Programação Ex2: algoritmo “divisão de dois números” início N1, N2 N2= 0 Não D = N1/N2 Imprime D Sim Divisão/zero fim Introdução à lógica de programação Fluxograma não Convencional e Diagrama de Blocos Mais símbolos utilizados no fluxograma: Lógica de Programação = Operação de entrada de dados = Operação de saída de dados em vídeo = Conector utilizado quando é preciso particionar o diagrama, colocando uma letra ou número no símbolo para identificar os pares da conexão = Conector específico para indicar conexão do fluxo de execução em outra página = Preparação - operações que utilizam uma chave que modifica a execução do programa Lógica de Programação Diagrama de Chapin Criador: Ned Chapin Substituição do fluxograma tradicional por um diagrama que apresenta uma visão hierárquica e estruturada da lógica do programa. Vantagem : representação das estruturas que tem um ponto de entrada e um ponto de saída e são compostas pelas estruturas básicas de controle de seqüência, seleção e repartição. Lógica de Programação Diagrama de Chapin para o algoritmo do cálculo da média de um aluno Representação de algoritmos: Pseudocódigo ou Portugol Lógica de Programação É uma das algoritmos. principais formas de representação de A utilização de pseudocódigo na representação de algoritmos garante sua independência das linguagens de programação. Dessa forma, não existe um formalismo rígido de como deve ser escrito um algoritmo. Conhecido como português estruturado ou portugol Rico em detalhes Introdução à lógica de programação Representação de algoritmos: Pseudocódigo ou Portugol Lógica de Programação O pseudocódigo, ao contrário do fluxograma, é mais rico em detalhes, assemelhando-se muito aos códigos-fontes de uma linguagem de programação. Em vez de símbolos gráficos, utilizamos instruções(comandos) para representar uma determinada tarefa/processamento. Introdução à lógica de programação Pseudocódigo ou Portugol Algoritmo na forma de pseudocódigo Lógica de Programação algoritmo <nome_do_algoritmo> <variáveis globais> <subalgoritmos> {Programa Principal} início <declaração_de_variáveis>; <corpo_do_algoritmo>; fim; fim algoritmo. Pseudocódigo para somar dois números algoritmo SOMA início Lógica de Programação real: NUM1,{Valor do primeiro número} NUM2,{Valor do segundo número} SOMA;{Valor da soma entre NUM1 e NUM2} NUM1 2; NUM2 4; SOMA NUM1+NUM2; escreva(“O resultado foi:”,SOMA); fim; fim algoritmo. Pseudocódigo ou Portugol Forma geral de um algoritmo: Lógica de Programação Introdução à lógica de programação Pseudocódigo ou Portugol Exemplo: Lógica de Programação Introdução à lógica de programação Tipos de Dados As linguagens de programação normalmente Lógica de Programação estabelecem regras precisas para definir que tipos de dados elas irão manipular A pseudo-linguagem também estabelece, ainda que informalmente, regras que reduzem o conjunto de dados existentes na natureza, a um conjunto mais simples e somente este conjunto poderá ser manipulado pelos algoritmos. Tipos de Dados Lógica de Programação O programador pode definir seus próprios tipos de dados – – tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se esses novos tipos typedef char tipo_nome [30]; tipo_nome nome; Tipos de Dados Existem três tipos básicos de dados que são manipulados nos algoritmos que : Lógica de Programação Dados numéricos Inteiros (...3,-2,-1,0,1,2,3,4,5,6,7,8,9...) Reais (5.3, -10.5, 3.1415) Obs: Vírgula não pode ser separador entre as partes real e inteira Dados literais ou alfa-numéricos (Caracteres para tratamento de textos) A,B,C,D ...,a,b,c,d...*,%,@,$,(,),-,+,?,<,>,!,” ,1,2,3... Dados lógicos Intensamente aplicado durante o processo de tomada de decisões; Valores Verdadeiro ou Falso Questão lógica "Se está chovendo". Esta expressão somente pode ter como resultado um de dois valores: verdade ou falso Tipos de Dados Lógica de Programação Resumindo Inteiro: Define variáveis numéricas do tipo inteiro, ou seja, sem casasdecimais. Real: Define variáveis numéricas do tipo real, ou seja, com casas decimais. Caractere: Define variáveis do tipo string, ou seja, cadeia de caracteres. Logico: Define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO. Lógica de Programação Fontes de pesquisa – GUIMARÃES, Ângelo de M; LAJES, Newton A. de C. Algoritmos e Estrutura de Dados. Livros Técnicos e Científicos Editora. – VELOSO, Paulo; DOS SANTOS, Clésio; AZEREDO, Paulo; FURTADO, Antônio. Estruturas de Dados. Editora Campus. – www.apostilando.com , acessado em 6 Ago 2007. – Apostila Lógica de Programação – Senac-RS