Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO RECÔNCAVO DA BAHIA Lógica de programação Algoritmo Jefferson Henrique S. dos S. Bispo 12/02/2010 Nesta apostila vocês verão uma breve introdução à Lógica de programação e desenvolvimento de algoritmos, em que estes são fundamentais para os programadores, seu principal objetivo é apontar diversas técnicas para solucionar problemas nas execuções das tarefas computacionais. Sendo assim, a lógica é essencial no aprendizado das diversas linguagens de programação. Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 2 Dedico esta apostila aos colegas do curso de Bacharelado em Ciências Exatas e Tecnológicas e a todos aqueles que querem aprender algoritmo e lógica de programação. Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 3 1. INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO Lógica de programação é a junção de pensamentos coerentes para resolver problemas e assim criar determinados programas. Para executarmos operações computacionais é necessário que o computador seja programado por uma linguagem. No começo era difíci l um programador lhe dar com certas situações, pois eles utilizavam uma Linguagem de Máquina em que, esta é a única compreendida pelo computador e específica do mesmo. A programação era diretamente em código binário ou em hexadecimal, logo foi criada a primeira linguagem de programação, denominada Assembly. E assim foram surgindo diversas outras linguagens, dentre elas está o FORTRAN que é utilizada principalmente nas áreas acadêmicas, técnicas, científicas e outras que são úteis para o desenvolvimento de programas comerciais, administrativos etc. 1.1. EXEMPLOS DE LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina Única compreendida pelo computador. Específica de cada computador. Linguagem de Baixo Nível Utilizam Mnemônicos para representar instruções elementares Ex.: Assembly Linguagem de Alto Nível Utilizam instruções próximas da linguagem humana de forma a facilitar o raciocínio EX.: Java, C, Delphi, Pascal, Visual Basic, Cobol, Clipper, FORTRAN. 2. ALGORITMO Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 4 Algoritmo é a seqüência de etapas à resolução de um determinado problema. Há varias formas para resolvermos um problema por isso cada programador escolhe aquela de mais fácil compreensão tanto para si quanto para o usuário. 2.1. CARACTERÍSTICAS DOS ALGORITMOS Ser finito; Entrada: informações inseridas pelo usuário; Processamento: desenvolvimento para as informações contidas nos dados; Saída: resultados obtidos do processamento; Não ser ambíguo, para que tenha uma única visualização, sendo assim o usuário não encontrara outras interpretações; Cada instrução tem que ser clara e objetiva; Pode ser representado de maneira gráfica ou textual; Deve seguir uma ordem de execução 2.2. FLUXOGRAMA OU DIAGRAMA DE BLOCO É uma forma de representação padronizada com passos lógicos de um determinado processamento. Vejamos alguns símbolos utilizados para a sua representação: Exemplo 1: Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 5 Exemplo 2: Neste exemplo estamos mostrando a entrada de dados de números para calcular a média aritmética (processamento) de quatros notas e o resultado (saída) das mesmas. Exemplo 3: Calculando a média aritmética utilizando o fluxograma de decisão. Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 6 2.3. DESCRIÇÃO NARRATIVA OU TEXTUAL É o processo para descrever o percurso percorrido para desencadear um algoritmo, lembrando-se que em cada linha deve conter informações com frases curtas e simples que contenha pelo menos um verbo. Exemplo: Faça um algoritmo para uma criança pegar o ônibus para ir ao colégio. início Esperar o ônibus Acenar para o ônibus parar Entrar no ônibus Perguntar o valor da passagem Pagar a passagem Sentar Espera o local de chegada Descer do ônibus Entrar no colégio fim 2.4. PSEUDOCÓDIGO Início nota1, nota2, m m nota1+nota2)/2 m >=5 “Aprovado” “Reprovado” Fim Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 7 Chamado também de pseudolinguagem, português estruturado ou portugol. Aproxima-se de uma linguagem de Alto Nível. Abaixo veremos como é a estruturação para construirmos algoritmos em portugol. Algoritmo < nome_do_programa > < declaração_das_variáveis > Início < Instruções > Fim Exemplo 1: Calcular a área e o perímetro de um retângulo, sendo dadas as medidas dos lados. Algoritmo Retangulo Real: lado1 , lado2 , area , perimetro Início Escreva( “Digite as medidas dos lados do retangulo: “) Leia( lado1 , lado2 ) area lado1 * lado2 perimetro 2 * (lado1 + lado2) Escreva( “O valor da area é : “ , area ) Escreva( “O valor do perimetro é : “ , perimetro ) fim Exemplo 2: Faça um algoritmo que exiba na tela do computador o seu nome, curso e a universidade. Algoritmo dados caractere: nome , curso , univer Início Escreva( “Qual seu nome? “) Leia( nome ) Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 8 Escreva( “Qual curso você faz? “) Leia( curso ) Escreva( “Qual instituição? “) Leia( univer ) Escreva( “Meu nome é : “ ,nome ) Escreva( “Faço o curso de : “ ,curso ) Escreva( “A instituição é : “ ,univer ) fim EXERCÍCIOS: 1) Desenvolva um fluxograma mostrando o processo da troca do pneu furado de um carro. 2) Construa um diagrama de blocos para desenvolver o processo de ligar um computador 3) Crie um fluxograma mostrando todo o processo que você usa para tomar banho. 4) Refaça os três exercícios acima, só que desta vez em forma textual, como vimos no exemplo acima (2.3). 5) Monte um algoritmo com a seqüência de ações para fazer uma vitamina com um mamão, uma banana, uma maça, um pouco de leite e açúcar. 6) Suponha que você vai ao banco sacar R$ 200,00 num caixa eletrônico, faça o algoritmo que descreva todos os passos. 7) Suponha que temos um robô a nossa disposição e precisa ser ensinado a fazer determinadas tarefas. Para ensiná-lo, vamos fazer um algoritmo para passar-lhe as instruções necessárias à execução de cada atividade. Escreva os passos necessários para o nosso robô executar. 8) Um homem precisa atravessar um rio com um barco que possui capacidade para carregar, apenas, ele mesmo, e mais uma de suas três cargas, que são: um lobo, um bode e um maço de alfafas. Escreva um algoritmo, ou seja, indique todas as ações necessárias para que o homem consiga atravessar o rio sem perder suas cargas. Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 9 9) Três jesuítas e três canibais precisam atravessar um rio; para tal dispõem de um barco com capacidadepara duas pessoas. Por medidas de segurança, não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior à de canibais. Elabore um algoritmo indicando as ações que concretizam a travessia com segurança. 10) Elabore um algoritmo que mova três discos de uma haste para outra, utilizando uma terceira como auxi liar. Os discos são de tamanhos diferentes e os menores são dispostos sobre os maiores (Torre de Hanói). Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. 11) Elabore um algoritmo para calcular a média parcial de um aluno de Algoritmo após as três primeiras avaliações e dizer a sua situação: aprovado, reprovado ou prova final, e nesse último caso quanto precisa para ser aprovado. 12) Calcular o valor da função f(x,y) = 3x2 + 2y2 - xy em um ponto qualquer do plano cartesiano. 13) Leia uma temperatura em graus centígrados e imprima a equivalente em graus farheneit ( F = 9C/5 + 32). 14) Uma quantidade de chuva dada em polegadas e imprima a equivalente em milímetros (1 polegada = 25,4 milímetros ). 3. CONSTANTES, VARIÁVEIS E TIPOS DE DADOS 3.2. CONSTANTE Constate é um determinado valor que não muda no decorrer da execução do algoritmo. Ex.: números, palavras, etc. 3.3. VARIÁVEIS A variável pode ser mudada ao longo do tempo na execução de um programa, ou seja, são expressões que podem conter ou armazenar valores e cada variável corresponde a uma posição de memória. Elas não podem conter Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 10 caracteres especiais (/?@’^&#%]) e nem palavras reservadas da linguagem utilizada. Ex.: idade, peso, preço, etc. 3.4. TIPOS DE DADOS Inteiros: são números inteiros, ou seja, sem casas decimais. Ex.: 4, 8, 23 Real: quaisquer números inclusive os que contêm casas decimais. Ex.: 2.3, 4.5, 3.14 Caractere: define variáveis do tipo String, ou seja, conjunto de caracteres. Ex.: nome, estudante, programador Lógico: Armazena somente dados lógicos que podem ser Falso ou Verdadeiro. 4. OPERADORES Existem três tipos de operadores: Aritméticos, Relacionais e Lógicos. Estes são representados por símbolos. 4.1. OPERADORES ARITMÉTICOS OPERAÇÃO SÍMBOLO Multiplicação X Divisão / Adição + Subtração - Exponenciação ** Inteiro da divisão Div Resto da divisão Mod Prioridade para os operadores matemáticos: 1° Parênteses 2° Exponenciação 3° Multiplicação ou divisão (o que aparecer primeiro) 4° Adição ou subtração (o que aparecer primeiro) 5° inteiro da divisão 6° resto da divisão Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 11 Exemplo: Encontre o valor da operação abaixo 1+2*2**(3-1)/2 = Resolução 1+2*2**2/2 = 1+2*4/2 = 1+8/2 = 1+4 = 5 4.2. OPERADORES RELACIONAIS Utilizados para comparar caracteres ou números, e os resultados obtidos sempre retornam valores lógicos (Falso ou verdadeiro). OPERADOR SÍMBOLO Igual a = Diferente de <> Maior que > Menor que < Maior ou igual a => Menor ou igual a <= Exemplos: SÍMBOLOS RESULTADOS 9 > 5 Verdadeiro -1<-9 Falso 120 <=119 Falso 7 >= 3 Verdadeiro 8<>0 Verdadeiro Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 12 4.3. OPERADORES LÓGICOS Utiliza a lógica booleana (falsa ou verdadeira), para combinar os resultados de expressões. Os operadores lógicos são: And/E: é verdadeira, se somente se, todas as condições forem verdadeiras; Or/ou: basta que uma parte seja verdadeira para retorna verdadeira; Not/não: esta inverte o valor da condição ou expressão. Ou seja, se o resultado for verdadeiro ela inverte para falso e vice-versa. TABELA VERDADE A B A E B A OU B NÃO (A) V V V V F V F F V F F V F V V F F F F V Exemplo: Suponha que atribuímos determinados valores as variáveis A=4; B=12; C=0 A > B and C > A Falso A < B or B < C Verdadeiro A < B not B > C Falso C > B and C>=B Falso A <= B or C < B Verdadeiro EXERCÍCIOS: 1) Faça a operação matemática das equações, e escreva qual o tipo de dado (inteiro ou real). a) 198-12*(12-11)/2+12 = b) 13*13**13/13*(15-3) = Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 13 c) 1+(18-1)/2**2-1+8div2 = d) 3**2(18-8)-1*3mod2 = 2) Faça um algoritmo para se obter a resposta da operação matemática “5 multiplicado por 6 mais 2, dividido por 3” em uma calculadora simples. 3) Determine os operadores abaixo, se é TRUE ou FALSE (Verdadeiro ou Falso). a) True and True = b) True and False = c) False and True = d) False and False = e) True or True = f) True or False = g) False or True = h) False or False = i) Not True = 5. ESTRUTURA DE DECISÃO / SE Permite a execução de ações dependendo de determinadas condições A estrutura de decisão pode ser Simples (SE ENTÃO/ IF... THEN) ou Composta (SE ENTÃO SENÃO / IF... THEN... ELSE), baseada em um resultado lógico. Simples: se (<condição>) então <comando1> fim_se Composta 1: se (<condição>) então <comando1> senão <comando2> Fim_se Na estrutura de decisão simples, haverá uma avaliação na condição, se essa for verdadeira o comando1 é executado e assim finaliza o programa. Já a estrutura de decisão composta 1, ela avalia a primeira condição, caso essa seja falsa o programa executa o comando2 e assim finaliza o programa. Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 14 Composta 2: se (<condição>)então inicio <comando1> <comando2> fim_se; senão inicio <comando1>; <comando2> fim_se; Exemplo 1: Determinar se uma pessoa é maior ou menor de idade Algoritmo idade Inteiro: idade Início Escreva( “Forneça a idade : “) Leia( idade ) se (idade > 0) então Se (idade >= 18 ) então Escreva (“Maior de idade “) senão Escreva( “Menor de idade. “) fim_se senão Escreva(“ Idade errada “) fim_se fim 6. ESTRUTURA DE CONDIÇÃO / CASO Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 15 A estrutura de condição CASO, equivale a um conjunto da estrutura de seleção SE, mas esta estrutura é utilizada para testar na condição uma única expressão que gera um resultado a partir da opção escolhida. Escolha (<expressão>) Caso (<condição1>) faça <comando1> Caso (<condição2>) faça <comando2> . . . Caso (<condiçãoN>)faça <comandoN> Senão <comando> fim_escolha Exemplo: Algoritmo calculadora Inteiro: num1, num2, op Inicio Escreva(“Digite 1: Soma”) Escreva(“Digite 2: Subtração”) Leia (op) Escreva(“Forneça dois números”) Leia (num1,num2) Escolha (op) Caso (1) faça Escreva (num1, “+”,num2, “=”, num1+num2) Caso (2) faça Escreva (num1, “-”, num2, “=”, num1-num2) senão Escreva (“Digite a opção desejada”) fim_escolha Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 16 fim 7. ESTRUTURA DE REPETIÇÃO Também conhecida como looping ou laço, é utilizada quando queremos repetir um determinado comando de vezes. 7.1. ESTRUTURA DE REPETIÇÃO / PARA...FAÇA Esta estrutura repete uma seqüência de comandos em um determinado número de vezes, enquanto o valor de uma variável de controle é incrementado. SINTAXE: PARA <variável>DE<inicio>ATE<fim>(PASSO<n>)FAÇA <comandos> Fim_para Exemplo 1: Algoritmo looping Inteiro: i Para i de 1 até 20 faça Escreva(“Este laço executará 20 vezes”) fim_para fim Exemplo 2: Cálculo do fatorial de um número inteiro não-negativo. Algoritmo Fatorial Inteiro: num, k, fat Início Escreva(“Digite um número: ”) Leia(num) Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 17 Se(num >= 0)então fat 1 Para k de 2 até num faça fat fat*k Fim_para Escreva(“Fatorial de ”, num, “ igual a “ ,fat) Senão Escreva(“Não existe fatorial de número negativo”) Fim_se Fim 7.2. ESTRUTURA DE REPETIÇÃO / ENQUANTO...FAÇA Esta estrutura analisa o valor lógico, caso esse seja verdadeiro a seqüência é executado. Se de inicio for falsa, o comando não executara os comandos em seqüência, passando o controle para o fim_enquanto. SINTAXE: ENQUANTO < condição for verdadeira> FAÇA <comandos> FIM_ENQUANTO EXEMPLO: Faça um algoritmo que imprima o total de números compreendidos entre 1 e 20. Algoritmo total Inteiro: soma, numero inicio Numero = 2 Soma = 0 Enquanto valor <= 20 faça Soma soma + valor Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 18 Valor = valor +1 Fim_enquanto Escreva(“Total: “, soma) fim 7.3. ESTRUTURA DE REPETIÇÃO / REPITA...ATÉ É o contrario do comando enquanto...faça, pois esta estrutura repetia é executa a seqüência até que o valor retornado pela expressão lógica seja verdadeira. SINTAXE: REPITA <comando> ATÉ(<expressão lógica>) Exemplo: Imprimir os divisores de um número inteiro positivo dado. Algoritmo Divisores Inteiro: num, div Início Repita Escreva (“Digite um numero inteiro positivo: “) Leia (num) Até (num > 0) Escreva (“Divisores do número “, num) div 1 Repita Se ( num / div * div = num) então Escreva (div) Fim_se Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 19 div div + 1 Até (div > num) Fim EXERCÍCIOS: 1) Calcular a soma dos números pares entre 13 e 125. 2) Calcular a soma dos números ímpares compreendidos entre dois outros números inteiros dados. 3) Imprimir o maior, o menor e a média aritmética de n números quaisquer dados. 4) Imprimir os n primeiros números da Sequência de Fibonacci ( 1 1 2 3 5 8 13 21 … ). 5) Cálculo do mdc entre dois números inteiros positivos. 6) A multa por excesso de velocidade é baseada em quanto você se excedeu além do limite máximo permitido. Supõe-se que a multa seja computada da seguinte forma: Dados o limite de velocidade e a velocidade com que você vinha, qual o valor de sua multa? 7) Recebendo quatro médias bimestrais, calcule a media do ano (ponderada), sabendo que o 1º bimestre tem peso 1, o 2º bimestre tem peso 2, o 3º bimestre tem peso 3 e o 4º bimestre tem peso 4. VELOCIDADE ACIMA DO LIMITE (km/h) MULTA 1 a 10 R$ 100, 00 11 a 20 R$ 200, 00 21 1 30 R$ 300, 00 31 a 40 R$ 400, 00 41 a 50 R$ 500, 00 Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 20 Sabendo que para aprovação o aluno precisa ter uma média anual maior ou igual a 7, escreva uma mensagem indicando se o aluno foi aprovado ou reprovado. Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 21 REFERÊNCIAS Lógica de Programação, SÉRGIO, Paulo de Moraes Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados – São Paulo: Forbellone, André Luiz Villar - MAKRON, 1993 Site: http://www.univasf.edu.br/~marcelo.linder/iaa.html#pt4 Algoritmos e Lógica de Programação UFRB - Bacharelado em Ciências Exatas e Tecnológicas - CETEC Página 22
Compartilhar