Download 1 Lógica de Programação
Document related concepts
no text concepts found
Transcript
1 Lógica de Programação Técnicas de programação • Programação Sequencial • Programação Estruturada • Programação Orientada a Eventos e Objectos 1.1 Lógica – A lógica de programação é necessária para pessoas que desenvolvem programas informáticos. – A lógica de programação permite definir a sequência lógica para o desenvolvimento das aplicações. • O que é a lógica? – A lógica de programação é a técnica de encadear pensamentos para atingir determinado objectivo. 1.2 Sequência Lógica – Estes pensamentos podem ser descritos como uma sequência de instruções que devem ser seguidas para cumprir uma determinada tarefa. • Sequência lógica são os passos executados até atingir um objectivo ou solução de um problema. 1.3 Instruções • Em linguagem comum, entende-se por instruções: “um conjunto de regras ou normas definidas para a realização de um objectivo”. • Em Informática, uma instrução é uma informação que indica ao computador uma acção elementar a executar. • Convém ressaltar que uma ordem isolada não permite realizar o processo completo. É necessário um conjunto de instruções colocadas em ordem sequencial lógica. 1.3 Instruções • Por exemplo, para confeccionar uma omeleta de batata, precisamos de colocar em prática uma série de instruções: – – – – Descasca batatas; Bater os ovos; Fritar as batatas; Etc. • É evidente que estas instruções têm que ser executadas numa determinada ordem (não se podem descascar as batatas depois de as fritar). 1.3 Instruções • Desta forma, uma instrução realizada em separado não tem sentido. • Para obtermos o resultado, necessitamos colocar em prática o conjunto de todas as instruções, na ordem correcta. • Instruções são um conjunto de regras ou normas definidas para a realização de um objectivo. Em informática, uma instrução é o que indica ao computador uma acção elementar a executar. Algoritmia – O que significa? •Algoritmo + ia Estudo dos processos ou métodos de calcular. In Dicionário da língua portuguesa 2003 1.4 Algoritmo • É formalmente uma sequência finita de passos que levam à execução de uma tarefa. Podemos pensar num algoritmo como uma receita, uma sequência de instruções que permitem atingir um objectivo específico. • Estas instruções não podem ser redundantes nem subjectivos na sua definição. Deverão, isso sim, ser claras e objectivas. 1.4 Algoritmo • Como exemplos de algoritmos podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e subtracção) de números inteiros e decimais. 1.4 Algoritmo Exemplo de algoritmo “Soma de dois números” – Escreva o primeiro número no rectângulo A – Escreva o segundo número no rectângulo B – Some o número do rectângulo A com o número do rectângulo B e coloque o resultado no rectângulo C Rectângulo A 2 Rectângulo B + 2 Resultado = 4 1.5 Programas • Os programas de computador não são mais do que algoritmos escritos numa linguagem de programação (Pascal, C. Cobol, Fortran, Visual Basic, entre outras.) • Estes algoritmos codificados, são interpretados ou compilados por um computador e é devolvido um resultado. Exercício 1 • Crie uma sequência lógica para tomar banho. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Tirar as roupas Abrir a água Entrar no chuveiro Molhar o cabelo e corpo Aplicar o champô Aplicar o gel de banho Tirar toda a espuma Fechar a água Secar com a toalha Vestir roupa lavada Exercício 2 • Desenvolva um algoritmo para somar dois números e multiplicar o resultado pelo primeiro número. 1. 2. 3. 4. 5. Inserir o primeiro número Inserir o segundo número Somar o primeiro e segundo número Multiplicar a Soma pelo primeiro número Apresentar o resultado Exercício 3 • Descreva com detalhe a sequência lógica para trocar o pneu de um carro. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Retirar o pneu sobresselente Retirar o macaco Soltar os parafusos do pneu Colocar o macaco Subir o carro Retirar os parafusos Retirar o pneu Colocar o pneu novo Colocar os parafusos Baixar o carro Guardar o pneu velho e o macaco Exercício 4 • Descreva com detalhe a sequência para trocar uma lâmpada. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Desligar a energia Ir buscar escadote Montar escadote Subir ao escadote Retirar a lâmpada estragada Colocar a lâmpada nova Descer do escadote Ligar a energia Testar a lâmpada Retirar o escadote Guardar o escadote 2 Desenvolvendo Algoritmos 2.1 Pseudocódigo • Os algoritmos são descritos numa linguagem chamada pseudocódigo. • Este nome é uma alusão à fase anterior à implementação do código numa linguagem de programação (daí ser pseudo). Pseudocódigo Codificação 2.1 Pseudocódigo • Por isto mesmo os algoritmos são independentes das linguagens de programação. • Ao contrário de uma linguagem de programação, não existe um formalismo rígido para a escrita de um algoritmo. • Um algoritmo deve ser fácil de interpretar e de codificar. Ele deve ser o intermediário entre a linguagem falada e a linguagem de programação. 2.2 Regras para a construção de um Algoritmo • Para escrever um algoritmo precisamos descrever a sequência de instruções de forma simples e objectiva. Para tal usamos algumas técnicas: – Usar apenas um verbo por cada frase; – Imaginar que o algoritmo é para pessoas que não usam a informática; – Usar frases simples e curtas; – Ser objectivo; – Procurar usar palavras que não tenham sentido dúbio; 2.3 Fases • Qualquer tarefa que siga determinado padrão pode ser descrita através de um algoritmo. Por exemplo: – Fazer arroz doce; – Calcular o saldo financeiro; 2.3 Fases • No entanto, ao criarmos um algoritmo, primeiro necessitamos dividir o problema apresentado em três fases fundamentais: ENTRADA PROCESSAMENTO SAÍDA 2.3 Fases • Onde teremos: – ENTRADA: dados de entrada do algoritmo; – PROCESSAMENTO: são os procedimentos utilizados para chegar ao resultado final; – SAÍDA: são os dados já processados. 2.3 Fases • Analogia com o homem 2.4 Exemplo de um algoritmo • Imagine o seguinte problema: – Pretendemos calcular a média final dos alunos de uma determinada disciplina. Para tal, irão ser realizadas quatro momentos de avaliação (P1, P2, P3 e P4), todos com o mesmo peso na nota final, onde: • Média final= P1 + P2 + P3 + P4 4 2.4 Exemplo de um algoritmo • Para criar o algoritmo proposto, fazemos três perguntas: 1. Quais os dados de entrada? R: P1, P2, P3 e P4. 2. Qual será o processamento a ser utilizado? R: Será somar todos os dados de entrada e dividilos por 4. 3. Quais serão os dados de saída? R: O dado de saída será a média final de aluno. 2.4 Exemplo de um algoritmo • Algoritmo Receber a nota da Prova 1 Receber a nota da Prova 2 Receber a nota da Prova 3 Receber a nota da Prova 4 Somar todas as notas e dividir por 4 Mostrar o resultado do cálculo 2.5 Teste de Mesa • Após desenvolver um algoritmo deverá sempre testá-lo. • Este teste é chamado de Teste de Mesa. • Chama-se desta forma porque significa seguir de forma precisa, todos os passos para verificar se o procedimento utilizado está correcto ou não. 2.5 Teste de Mesa • Veja o Teste de Mesa para o nosso exemplo: Nota da Prova 1 Nota da Prova 2 Nota da Prova 3 Nota da Prova 4 Utilize a tabela P1 ao Lado: P2 P3 P4 Média 2.6 Exercícios 1. Identifique os dados de entrada, processamento e saída do algoritmo abaixo: – – – – – Receber o código de uma peça Receber o valor de uma peça Receber a quantidade de peças Calcular o valor total da peça (Quantidade * valor da peça) Mostrar o código da peça e o seu valor total Entrada Indicar o código da peça Indicar o valor da peça Indicar a quantidade Processamento Calcular Valor= Quantidade * Valor da peça Saída Apresentar o resultado Valor 2.6 Exercícios • Seleccione uma (ou duas) das actividades relacionada com a sua actividade profissional e elabore um algoritmo, detalhado, para realização do objectivo pretendido. • Identifique os dados de entrada, processamento e saída. 2.6 Exercícios • Desenvolva o algoritmo para Calcular o stock médio de uma peça. O cálculo é feito utilizando a seguinte fórmula: Stock Médio = (Quantidade mínima + Quantidade máxima) / 2 Resolução: Indicar o valor da quantidade mínima Indicar o valor da quantidade máxima Efectuar a soma e divisão Apresentar o valor do Stock Médio calculado Fluxogramas ou Diagramas de Fluxos de Dados (DFD) 3.1 O que é um Fluxograma • É um Diagrama que representa os fluxos de informação (a forma como a informação vai fluir, circular) • Um Fluxograma é uma forma de representar os passos lógicos de um determinado processamento. • Utiliza uma sequência de símbolos, com significado bem definido, para representar os passos lógicos. 3.2 Simbologia •Existem diversos símbolos num Fluxograma Dentro de cada símbolo será sempre escrito algo, pois os símbolos apenas, identificam as operações a realizar. Comer um rebuçado INÍCIO 3.2 Simbologia TIRAR O REBUÇADO DO SACO TIRAR O PAPEL DEGUSTAR COLOCAR O PAPEL NO LIXO FIM No exemplo do rebuçado seguimos uma sequência lógica apenas com informações directas. No segundo exemplo, o cálculo da média, utilizamos o cálculo e exibimos o resultado do mesmo. 3.3 Exercícios Início Receber Nº 1 • Desenvolva um fluxograma que: Receber Nº 2 Receber Nº 3 – Leia 4 números; – Calcule o quadrado de cada um; Receber Nº 4 – Some todos os quadrados; Calcular: – Apresente o resultado. Valor = (Nº1) + (Nº2) + (Nº3) + (Nº4) 2 2 Valor Fim 2 2 Início 3.3 Exercícios • Construa um algoritmo para pagamento de comissões a vendedores de peças. A comissão é de 5% do total de vendas e são necessários os seguintes dados: – – – – Identificação do vendedor; Código da peça vendida; Preço por unidade; Quantidade vendida. • Faça: Fluxograma e o Teste de Mesa Id do vendedor Cód. Peça vendida Preço Unitário Quantidade Vendida Calcular: Valor = Preço Unit * Quantidade Calcular: Comissão = Valor * 5% Vendedor Comissão Fim 4 Constantes, Variáveis e Tipos de Dados 4 Constantes, Variáveis e Tipos de Dados • As variáveis e as constantes são os elementos básicos que um programa manipula. • Uma variável é um espaço reservado na memória do computador para armazenar um determinado tipo de dados. • As variáveis devem receber nomes para poderem ser referenciadas e modificadas sempre que necessário. • Um programa deve conter declarações que especificam de que tipo são as variáveis e por vezes o seu valor inicial. • Os tipos podem ser: inteiros, reais, caracteres, strings, etc. • As expressões combinam variáveis e constantes para calcular novos valores. 4.1 Constantes • Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. • Dependendo do tipo de variável, a constante é classificada como sendo numérica, lógica ou literal. – Exemplos de constantes: N1+N2+N3 3 Constante 4.2 Variáveis • Variável é uma representação simbólica dos elementos de um certo conjunto. • Cada variável corresponde a uma posição de memória, cujo conteúdo pode ser alterado ao longo do tempo durante a execução de um programa. • Embora uma variável possa assumir diferentes valores, só pode armazenar um valor a cada instante. Exemplos de variáveis: Variáveis Nome = “José” Total = Produto * Quantidade Variáveis Conteúdo das variáveis Idade = 50 4.3 Tipos de Variáveis 4.3 Tipos de Variáveis • As variáveis e as constantes podem ser de quatro tipos: – Numéricas; – Caracteres/ Strings; – Alfanuméricas; – Lógicas. 4.3 Tipos de Variáveis • Numéricas – específicas para armazenamento de números, que posteriormente poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras ou Reais. As variáveis de tipo Inteiro são para armazenamento de números inteiros e as Reais para o armazenamento de números que possuam casas decimais. • Caracteres – específicas para armazenamento de conjuntos de caracteres que não contenham números (literais). Ex. Nomes. • Alfanuméricas – específicas para dados que contenham letras e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para operações matemáticas. • Lógicas – armazenam apenas dados lógicos que podem ser Verdadeiro ou Falso. 1 333 5645 544 A Ana Sofia Lt3 2º Esq True 4.4 Declaração de variáveis • As variáveis só podem armazenar valores de um determinado tipo (do tipo que são declaradas). • Da mesma forma, só podem ser declaradas como sendo de um tipo apenas: numéricas, lógicas e alfanuméricas. 4.5 Exercícios 1. O que é uma constante? Dê dois exemplos. 2. O que é uma variável? Dê dois exemplos. 5 Operadores • Os operadores são os elementos que permitem incrementar, decrementar, comparar e avaliar dados dentro do computador. • Temos três tipos de operadores: – Aritméticos; – Relacionais; – Lógicos. 5.1 Operadores Aritméticos • São utilizados para obter resultados numéricos. Além da adição, subtracção, multiplicação e divisão, podemos também usar o operador para a exponencial. • Os símbolos para os operadores aritméticos são: 5.1 Operadores Aritméticos • Hierarquia das Operações Aritméticas 1º Parêntesis () 2º Exponencial 3º Multiplicação, divisão (o que surgir primeiro) 4º + ou – (o que surgir primeiro) 5.2 Operadores relacionais • Os operadores relacionais são utilizados para comparar String de caracteres e números. • Estes operadores retornam sempre valores lógicos (verdadeiro ou falso, True/False). • Para estabelecer prioridades no que diz respeito a qual a operação a executar primeiro, utilize os parêntesis. • Os operadores relacionais são: Descrição Símbolo Igual a = Diferente de <> Maior que > Menor que < Maior ou igual a >= Menor ou igual a <= 5.2 Operadores relacionais • Exemplo de utilização de operadores relacionais: – Tendo duas variáveis A=5 e B=3 Os resultado do cálculo de cada uma das expressões é: Expressão Resultado A=B Falso A<> B Verdadeiro A>B Verdadeiro A<B Falso A >= B Verdadeiro A <= B Falso 5.2 Operadores relacionais • Símbolo utilizado para a comparação entre expressões: Comparar o valor de duas variáveis ou constantes Codigo = Numero Não Sim Comparar o valor de variáveis ou constantes com uma constante numérica Codigo = 1000 Não Sim 5.2 Operadores relacionais Comparar o valor de uma variável ou constante com uma constante alfanumérica Nome = “JOSE” Não Sim 5.3 Operadores lógicos • Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. • Os operadores lógicos são: E AND E/AND – é verdadeira quando OU OR todas as condições o forem; NÃO NOT OU/OR – é verdadeira se pelo menos uma condição o for NÃO/NOT – inverte o valor da expressão ou condição 5.3 Operadores lógicos • Tabela dos valores possíveis criados pelos três operadores lógicos (AND, OR e NOT) 1º Valor Operador 2º Valor Resultado T AND T T T AND F F F AND T F F AND F F T OR T T T OR F T F OR T T F OR F T T NOT F F NOT T 5.3 Operadores lógicos • Suponha que temos três variáveis: A=5 B=8 C=1 Os resultados das expressões seriam: Expressões Resultado A=B AND B>C Falso A<>B OR B<C Verdadeiro A>B NOT A<B AND B>C Verdadeiro A>=B OR B=C Falso A<=B NOT Verdadeiro Falso 5.4 Exercícios 1. Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo, indique se as expressões são verdadeiras ou falsas. SALARIO IR SALLIQ Expressao 100 0 100 (SALLIQ >=100) 200 10 190 (SALLIQ<190) 300 15 285 (SALLIQ=SALARIO - IR) V ou F 5.4 Exercícios • Sabendo que A=3, B=7 e C=4, indique se as expressões abaixo são verdadeiras ou falsas: a) b) c) d) e) (A+B)>C B>=(A+2) C=(B-A) (B+A)<=C (C+A)>B __ __ __ __ __ 6 Operações lógicas • As operações lógicas são utilizadas quando se torna necessário tomar decisões num diagrama fluxo de dados. • Num DFD, todas as decisões terão sempre como resposta o resultado Verdadeiro ou Falso. • Como por exemplo “Não comer um rebuçado de morango”. Imaginemos que algumas pessoas não gostam de rebuçados de morango. Nesse caso o nosso algoritmo teria que ser qualquer coisa do género: 6 Operações lógicas • “Não comer um rebuçado de morango” – Pegar no rebuçado – O rebuçado é de morango? • Se sim, não coma • Se não, continue o algoritmo – Retirar o papel – Degustar o rebuçado – Deitar o papel no lixo 6 Operações lógicas • Exemplo do Algoritmo “Não comer o rebuçado de morango” utilizando o DFD Início Pegar no rebuçado Sim É de morango? Não coma Não Retirar o papel Degustar o rebuçado Deitar o papel no lixo Fim 6.1 Exercícios 1. Elabore um DFD que leia um número. Se o número for positivo, armazene-o em A, se for negativo, em B. No final, apresente o resultado. 2. Ler um número e verificar se é par ou ímpar. Quando for par, armazenar esse valor em P e quando for ímpar, armazenar em I. Mostrar o valor de P e I no final do processamento. 3. Construa um DFD que permita ler uma variável numérica N e apresentá-la apenas se esta for maior que 100, caso contrário, apresenta-a com o valor 0. 6.1 Exercícios 4. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule o seu peso ideal, utilizando as seguintes fórmulas: Para homens: (72.7 * a)-58 Para mulheres: (62.1 * a)-44.7 a=altura 6.1 Exercícios 5. Faça um teste de mesa para o diagrama apresentado, de acordo com os dados fornecidos. 6.1 Exercícios 6. Elabore o algoritmo em pseudocódigo, referente ao DFD anterior. 7 Estruturas de decisão e repetição • Necessitamos muitas vezes de tomar decisões para o decurso de um algoritmo. • Estas decisões interferem directamente no andamento de um programa. • Trabalhamos com dois tipos de estruturas: – As estruturas de decisão; – As estruturas de repetição; 7.1 Comandos de decisão • As estruturas de decisão fazem parte das técnicas de programação que conduzem a estruturas de programas que não são totalmente sequenciais. • Com este tipo de instruções pode fazer-se com que o programa proceda de uma ou outra forma, de acordo com decisões lógicas tomada em função dos dados ou resultados anteriores. • As principais estruturas de decisão são: Se… Então Se… Então… Senão Caso… Seleccione 7.1.1 SE… ENTÃO / IF… THEN • A estrutura de decisão “SE/IF” é acompanhada de um comando que identifica se a condição é satisfeita. Imagine um algoritmo que determina se um aluno está aprovado, mas só se a sua média for igual ou superior a 5.0 Se media >= 5.0 Então Aluno aprovado 7.1.1 SE… ENTÃO / IF… THEN Se media >= 5.0 Então Aluno aprovado • Em DFD, esta situação ficaria representada da seguinte forma: 7.1.2 SE… ENTÃO… SENÃO / IF… THEN… ELSE • A estrutura de decisão Se… Então… Senão, funciona como a estrutura SE. No entanto: – na estrutura SE, apenas podemos executar comandos caso a condição seja verdadeira; – Na estrutura SE…ENTÃO…SENÃO, é sempre executado um comando. (SE) Caso a condição seja verdadeira (ENTÃO), o comando respectivo é realizado, caso seja falsa, (SENÃO)é executado o comando da outra condição. 7.1.2 SE… ENTÃO… SENÃO/ IF… THEN… ELSE • Em algoritmo, a situação do aluno aprovado, ficaria assim representada: SE média>=5.0 ENTÃO Aluno aprovado SENÃO Aluno reprovado Neste exemplo está a ser verificada uma condição. Se for verdadeira, é executado o comando APROVADO, caso contrário executa o comando REPROVADO. 7.1.2 SE… ENTÃO… SENÃO/ IF… THEN… ELSE • Podemos também, dentro de uma mesma condição, testar outras hipóteses (condições). 7.1.3 CASO… SELECCIONE / SELECT… CASE • A estrutura de decisão CASO…SELECCIONE é utilizada para testar na condição, uma única expressão, que produz um resultado, ou o valor de uma variável. • Compara-se o resultado obtido no teste com os valores fornecidos em cada cláusula do CASO. • 7.1.3 CASO… SELECCIONE / SELECT… CASE No exemplo em baixo, é recebida uma variável OP e o seu conteúdo é testado. • Caso uma das condições seja satisfeita, é atribuída para a variável Título a String Opção X. Caso contrário, é atribuída a string Opção Errada. 7.1.3 CASO… SELECCIONE / SELECT… CASE 1. Desenvolva o algoritmo e o DFD para um programa que: a) Leia 4 números; b) Calcule o quadrado de cada um; c) Se o valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize; d) Caso contrário, imprima os valores lidos e os seus respectivos quadrados. 7.1.3 CASO… SELECCIONE / SELECT… CASE 2. Faça um DFD que leia um número inteiro e apresenta uma mensagem indicando se o número é par ou ímpar, e se é positivo ou negativo. 3. Elabore um algoritmo e respectivo DFD que, dada a idade de um nadador o classifique em cada uma das seguintes categorias: a) b) c) d) e) Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos Juvenil B = 14 a 17 anos Adultos = Maiores de 18 anos 7.1.3 CASO… SELECCIONE / SELECT… CASE 4. Elabore um algoritmo e respectivo DFD que gere e escreva os números ímpares lidos entre 100 e 200. 5. Construa um algoritmo que leia 500 valores inteiros e positivos e: a) Encontre o maior valor; b) Encontre o menor valor; c) Calcule a média dos números lidos. 7.2 Comandos de repetição • Os comando de repetição utilizam-se quando desejamos que um determinado conjunto de instruções ou comandos sejam executados um número indefinido de vezes, ou enquanto uma determinada situação de mantenha ou até que seja satisfeita uma condição. • Os comandos de repetição que veremos são: – – – – – Enquanto x, fazer (Do While… Loop) Até que x, fazer (Do Until… Loop) Fazer…, Enquanto x (Do… Loop While) Fazer…, Até que x (Do… Loop Until) De… Até… Seguinte (For… To… Next) 7.2.1 Enquanto x, fazer Do While… Loop • Neste caso, o bloco de código será executado enquanto a condição x for verdadeira. • O teste da condição será sempre realizado antes de qualquer operação. • Enquanto a condição for verdadeira, o processo repete-se. • Este estrutura é muito utilizada para trabalharmos com contadores. 7.2.1 Enquanto x, fazer Do While… Loop • Em DFD, podemos representar desta forma: 7.2.2 Até que, fazer Do Until… Loop • Neste caso, o bloco de código será executado até que a condição seja satisfeita. 7.2.3 Fazer…, Enquanto x Do… Loop While • Nesta situação, primeiro é executado o código e só depois é realizado o teste da condição. • Se a condição for verdadeira, o código é executado novamente. Caso seja falso, é terminado o comando DO. 7.2.4 Fazer… Até que x Do… Loop Until • Neste caso, primeiro é executado o bloco de código e só de seguida é realizado o teste da condição. • Se a condição for verdadeira, o fluxo do programa continua normalmente. Caso contrário é novamente percorrido o código que se encontra antes do teste da condição. 7.2.5 Exercícios 1. Elabore um algoritmo que determine o maior entre N números. A condição de paragem é a entrada de um valor 0, ou seja, o algoritmo deverá verificar qual o maior valor inserido, até que o utilizador coloque o valor 0. 2. Faça um algoritmo que conte de 1 a 100 e que a cada múltiplo de 10 apresente a mensagem: “Múltiplo de 10”.