Sei sulla pagina 1di 22

UNIVERSIDADE FEDERAL DO RECNCAVO DA BAHIA

Lgica de programao
Algoritmo
Jefferson Henrique S. dos S. Bispo 12/02/2010

Nesta apostila vocs vero uma breve introduo Lgica de programao e desenvolvimento de algoritmos, em que estes so fundamentais para os programadores, seu principal objetivo apontar diversas tcnicas para solucionar problemas nas execues das tarefas computacionais. Sendo assim, a lgica essencial no aprendizado das diversas linguagens de programao.

Algoritmos e Lgica de Programao

Dedico esta apostila aos colegas do curso de Bacharelado em Cincias Exatas e Tecnolgicas e a todos aqueles que querem aprender algoritmo e lgica de programao.

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 2

Algoritmos e Lgica de Programao

1. INTRODUO A LGICA DE PROGRAMAO


Lgica de programao a juno de pensamentos coerentes para resolver problemas e assim criar determinados programas . Para executarmos operaes computacionais necessrio que o computador seja programado por uma linguagem. No comeo era difcil um programador lhe dar com certas situaes, pois eles utilizavam uma Linguagem de Mquina em que, esta a nica compreendida pelo computador e especfica do mesmo. A programao era diretamente em cdigo binrio ou em hexadecimal, logo foi criada a primeira linguagem de programao, denominada Assembly. E assim foram surgindo diversas outras linguagens, dentre elas est o FORTRAN que utilizada principalmente nas reas acadmicas, tcnicas, cientficas e outras que so teis para o desenvolvimento de programas comerciais,

administrativos etc. 1.1. EXEMPLOS DE LINGUAGENS DE PROGRAMAO

Linguagem de Mquina

nica compreendida pelo computador. Especfica de cada computador. Utilizam Mnemnicos para representar instrues elementares Utilizam instrues prximas da linguagem humana de forma a facilitar o raciocnio Ex.: Assembly

Linguagem de Baixo Nvel

Linguagem de Alto Nvel

EX.: Java, C, Delphi, Pascal, Visual Basic, Cobol, Clipper, FORTRAN.

2. ALGORITMO

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 3

Algoritmos e Lgica de Programao Algoritmo a seqncia de etapas resoluo de um determinado problema. H varias formas para resolvermos um problema por isso cada programador escolhe aquela de mais fcil compreenso tanto para si quanto para o usurio. 2.1. 2.2. CARACTERSTICAS DOS ALGORITMOS Ser finito; Entrada: informaes inseridas pelo usurio; Processamento: desenvolvimento para as informaes contidas nos dados; Sada: resultados obtidos do processamento ; No ser ambguo, para que tenha uma nica visualizao, sendo assim o usurio no encontrara outras interpretaes; Cada instruo tem que ser clara e objetiva; Pode ser representado de maneira grfica ou textual; Deve seguir uma ordem de execuo FLUXOGRAMA OU DIAGRAMA DE BLOCO

uma forma de representao padronizada com passos lgicos de um determinado processamento. Vejamos alguns smbolos utilizados para a sua representao: Exemplo 1:

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 4

Algoritmos e Lgica de Programao Exemplo 2: Neste exemplo estamos mostrando a entrada de dados de nmeros para calcular a mdia aritmtica (processamento) de quatros notas e o resultado (sada) das mesmas.

Exemplo 3: Calculando a mdia aritmtica utilizando o fluxograma de deciso.

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 5

Algoritmos e Lgica de Programao

Incio

nota1, nota2, m m nota1+nota2)/2

m >=5

Aprovado

Reprovado Fim

2.3.

DESCRIO NARRATIVA OU TEXTUAL

o processo para descrever o percurso percorrido para desencadear um algoritmo, lembrando-se que em cada linha deve conter informaes com frases curtas e simples que contenha pelo menos um verbo. Exemplo: Faa um algoritmo para uma criana pegar o nibus para ir ao colgio. incio 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 colgio fim 2.4. PSEUDOCDIGO
Pgina 6

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Algoritmos e Lgica de Programao Chamado tambm de pseudolinguagem, portugus estruturado ou portugol. Aproxima-se de uma linguagem de Alto Nvel. Abaixo veremos como a estruturao para construirmos algoritmos em portugol. Algoritmo < nome_do_programa > < declarao_das_variveis > Incio < Instrues > Fim Exemplo 1: Calcular a rea e o permetro de um retngulo, sendo dadas as medidas dos lados. Algoritmo Retangulo Real: lado1 , lado2 , area , perimetro Incio Escreva( Digite as medidas dos lados do retangulo: ) Leia( lado1 , lado2 ) area lado1 * lado2 2 * (lado1 + lado2)

perimetro

Escreva( O valor da area : , area ) Escreva( O valor do perimetro : , perimetro ) fim Exemplo 2: Faa um algoritmo que exiba na tela do computador o seu nome, curso e a universidade. Algoritmo dados caractere: nome , curso , univer Incio Escreva( Qual seu nome? ) Leia( nome )
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 7

Algoritmos e Lgica de Programao Escreva( Qual curso voc faz? ) Leia( curso ) Escreva( Qual instituio? ) Leia( univer ) Escreva( Meu nome : ,nome ) Escreva( Fao o curso de : ,curso ) Escreva( A instituio : ,univer ) fim

EXERCCIOS: 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) Refaa os trs exerccios acima, s que desta vez em forma textual, como vimos no exemplo acima (2.3). 5) Monte um algoritmo com a seqncia de aes para fazer uma vitamina com um mamo, uma banana, uma maa, um pouco de leite e acar. 6) Suponha que voc vai ao banco sacar R$ 200,00 num caixa eletrnico, faa o algoritmo que descreva todos os passos. 7) Suponha que temos um rob a nossa disposio e precisa ser ensinado a fazer determinadas tarefas. Para ensin-lo, vamos fazer um algoritmo para passar-lhe as instrues necessrias execuo de cada atividade. Escreva os passos necessrios 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 trs cargas, que so: um lobo, um bode e um mao de alfafas. Escreva um algoritmo, ou seja, indique todas as aes necessrias para que o homem consiga atravessar o rio sem perder suas cargas.

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 8

Algoritmos e Lgica de Programao 9) Trs jesutas e trs canibais precisam atravessar um rio; para tal dispem de um barco com capacidade para duas pessoas. Por medidas de segurana, no se deve permitir que em alguma margem a quantidade de jesutas seja inferior de canibais. Elabore um algoritmo indicando as aes que concretizam a travessia com segurana. 10) Elabore um algoritmo que mova trs discos de uma haste para outra, utilizando uma terceira como auxiliar. Os discos so de tamanhos diferentes e os menores so dispostos sobre os maiores (Torre de Hani). 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 mdia parcial de um aluno de Algoritmo aps as trs primeiras avaliaes e dizer a sua situao: aprovado, reprovado ou prova final, e nesse ltimo caso quanto precisa para ser aprovado. 12) Calcular o valor da funo f(x,y) = 3x2 + 2y2 - xy em um ponto qualquer do plano cartesiano. 13) Leia uma temperatura em graus centgrados e imprima a equivalente em graus farheneit ( F = 9C/5 + 32). 14) Uma quantidade de chuva dada em polegadas e imprima a equivalente em milmetros (1 polegada = 25,4 milmetros ).

3. CONSTANTES, VARIVEIS E TIPOS DE DADOS


3.2. CONSTANTE

Constate um determinado valor que no muda no decorrer da execuo do algoritmo. Ex.: nmeros, palavras, etc. 3.3. VARIVEIS

A varivel pode ser mudada ao longo do tempo na execuo de um programa, ou seja, so expresses que podem conter ou armazenar valores e cada varivel corresponde a uma posio de memria. Elas no podem conter
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 9

Algoritmos e Lgica de Programao caracteres especiais (/?@^&#%]) e nem palavras reservadas da ling uagem utilizada. Ex.: idade, peso, preo, etc. 3.4. TIPOS DE DADOS

Inteiros: so nmeros inteiros, ou seja, sem casas decimais. Ex.: 4, 8, 23 Real: quaisquer nmeros inclusive os que contm casas decimais. Ex.: 2.3, 4.5, 3.14 Caractere: define variveis do tipo String, ou seja, conjunto de caracteres. Ex.: nome, estudante, programador Lgico: Armazena somente dados lgicos que podem ser Falso ou Verdadeiro.

4. OPERADORES
Existem trs tipos de operadores: Aritmticos, Relacionais e Lgicos. Estes so representados por smbolos. 4.1. OPERADORES ARITMTICOS OPERAO Multiplicao Diviso Adio Subtrao Exponenciao Inteiro da diviso Resto da diviso SMBOLO X / + ** Div Mod

Prioridade para os operadores matemticos: 1 Parnteses 2 Exponenciao 3 Multiplicao ou diviso (o que aparecer primeiro) 4 Adio ou subtrao (o que aparecer primeiro) 5 inteiro da diviso 6 resto da diviso
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 10

Algoritmos e Lgica de Programao

Exemplo: Encontre o valor da operao abaixo 1+2*2**(3-1)/2 =


Resoluo 1+2*2**2/2 = 1+2*4/2 = 1+8/2 = 1+4 = 5

4.2.

OPERADORES RELACIONAIS

Utilizados para comparar caracteres ou nmeros, e os resultados obtidos sempre retornam valores lgicos (Falso ou verdadeiro). OPERADOR Igual a Diferente de Maior que Menor que Maior ou igual a Menor ou igual a SMBOLO = <> > < => <=

Exemplos:

SMBOLOS 9>5 -1<-9 120 <=119 7 >= 3 8<>0

RESULTADOS Verdadeiro Falso Falso Verdadeiro Verdadeiro

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 11

Algoritmos e Lgica de Programao 4.3. OPERADORES LGICOS

Utiliza a lgica booleana (falsa ou verdadeira), para combinar os resultados de expresses. Os operadores lgicos so: And/E: verdadeira, se somente se, todas as condies forem verdadeiras; Or/ou: basta que uma parte seja verdadeira para retorna verdadeira; Not/no: esta inverte o valor da condio ou expresso. Ou seja, se o resultado for verdadeiro ela inverte para falso e vice-versa.

TABELA VERDADE A V V F F B V F V F A E B V F F F A OU B V V V F NO (A) F F V V

Exemplo: Suponha que atribumos determinados valores as variveis 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 EXERCCIOS: 1) Faa a operao matemtica das equaes, e escreva qual o tipo de dado (inteiro ou real). a) 198-12*(12-11)/2+12 = b) 13*13**13/13*(15-3) =
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 12

Algoritmos e Lgica de Programao c) 1+(18-1)/2**2-1+8div2 = d) 3**2(18-8)-1*3mod2 = 2) Faa um algoritmo para se obter a resposta da operao matemtica 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 DECISO / SE Permite a execuo de aes dependendo de determinadas condies A estrutura de deciso pode ser Simples (SE ENTO/ IF... THEN) ou Composta (SE ENTO SENO / IF... THEN... ELSE), baseada em um resultado lgico. Simples: se (<condio>) ento <comando1> fim_se Composta 1: se (<condio>) ento <comando1> seno <comando2> Fim_se Na estrutura de deciso simples, haver uma avaliao na condio, se essa for verdadeira o comando1 executado e assim finaliza o programa. J a estrutura de deciso composta 1, ela avalia a primeira condio, caso essa seja falsa o programa executa o comando2 e assim finaliza o programa.
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 13

Algoritmos e Lgica de Programao Composta 2: se (<condio>)ento inicio <comando1> <comando2> fim_se; seno inicio <comando1>; <comando2> fim_se;

Exemplo 1: Determinar se uma pessoa maior ou menor de idade Algoritmo idade Inteiro: idade Incio Escreva( Fornea a idade : ) Leia( idade ) se (idade > 0) ento Se (idade >= 18 ) ento Escreva (Maior de idade ) seno Escreva( Menor de idade. ) fim_se seno Escreva( Idade errada ) fim_se fim

6. ESTRUTURA DE CONDIO / CASO

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 14

Algoritmos e Lgica de Programao A estrutura de condio CASO, equivale a um conjunto da estrutura de seleo SE, mas esta estrutura utilizada para testar na condio uma nica expresso que gera um resultado a partir da opo escolhida. Escolha (<expresso>) Caso (<condio1>) faa <comando1> Caso (<condio2>) faa <comando2> . . . Caso (<condioN>)faa <comandoN> Seno <comando> fim_escolha Exemplo: Algoritmo calculadora Inteiro: num1, num2, op Inicio Escreva(Digite 1: Soma) Escreva(Digite 2: Subtrao) Leia (op) Escreva(Fornea dois nmeros) Leia (num1,num2) Escolha (op) Caso (1) faa Escreva (num1, +, num2, =, num1+num2) Caso (2) faa Escreva (num1, -, num2, =, num1-num2) seno Escreva (Digite a opo desejada) fim_escolha
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 15

Algoritmos e Lgica de Programao fim

7. ESTRUTURA DE REPETIO
Tambm conhecida como looping ou lao, utilizada quando queremos repetir um determinado comando de vezes. 7.1. ESTRUTURA DE REPETIO / PARA...FAA Esta estrutura repete uma seqncia de comandos em um determinado nmero de vezes, enquanto o valor de uma varivel de controle incrementado. SINTAXE: PARA <varivel>DE<inicio>ATE<fim>(PASSO<n>)FAA <comandos> Fim_para

Exemplo 1: Algoritmo looping Inteiro: i Para i de 1 at 20 faa Escreva(Este lao executar 20 vezes) fim_para fim Exemplo 2: Clculo do fatorial de um nmero inteiro no-negativo. Algoritmo Fatorial Inteiro: num, k, fat Incio Escreva(Digite um nmero: ) Leia(num)
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 16

Algoritmos e Lgica de Programao Se(num >= 0)ento fat 1

Para k de 2 at num faa fat Fim_para Escreva(Fatorial de , num, igual a ,fat) Seno Escreva(No existe fatorial de nmero negativo) Fim_se Fim 7.2. ESTRUTURA DE REPETIO / ENQUANTO...FAA fat*k

Esta estrutura analisa o valor lgico, caso esse seja verdadeiro a seqncia executado. Se de inicio for falsa, o comando no executara os comandos em seqncia, passando o controle para o fim_enquanto.

SINTAXE: ENQUANTO < condio for verdadeira> FAA <comandos> FIM_ENQUANTO

EXEMPLO: Faa um algoritmo que imprima o total de nmeros compreendidos entre 1 e 20. Algoritmo total Inteiro: soma, numero inicio Numero = 2 Soma = 0 Enquanto valor <= 20 faa Soma soma + valor
Pgina 17

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Algoritmos e Lgica de Programao Valor = valor +1 Fim_enquanto Escreva(Total: , soma) fim 7.3. ESTRUTURA DE REPETIO / REPITA...AT

o contrario do comando enquanto...faa, pois esta estrutura repetia executa a seqncia at que o valor retornado pela expresso lgica seja verdadeira.

SINTAXE: REPITA <comando> AT(<expresso lgica>) Exemplo: Imprimir os divisores de um nmero inteiro positivo dado. Algoritmo Divisores Inteiro: num, div Incio Repita Escreva (Digite um numero inteiro positivo: ) Leia (num) At (num > 0) Escreva (Divisores do nmero , num) div Repita Se ( num / div * div = num) ento Escreva (div) Fim_se
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 18

Algoritmos e Lgica de Programao div div + 1

At (div > num) Fim

EXERCCIOS: 1) Calcular a soma dos nmeros pares entre 13 e 125. 2) Calcular a soma dos nmeros mpares compreendidos entre dois outros nmeros inteiros dados. 3) Imprimir o maior, o menor e a mdia aritmtica de n nmeros quaisquer dados. 4) Imprimir os n primeiros nmeros da Sequncia de Fibonacci ( 1 1 2 3 5 8 13 21 ). 5) Clculo do mdc entre dois nmeros inteiros positivos. 6) A multa por excesso de velocidade baseada em quanto voc se excedeu alm do limite mximo permitido. Supe-se que a multa seja computada da seguinte forma:
VELOCIDADE ACIMA DO LIMITE (km/h)

MULTA R$ 100, 00 R$ 200, 00 R$ 300, 00 R$ 400, 00 R$ 500, 00

1 a 10 11 a 20 21 1 30 31 a 40 41 a 50

Dados o limite de velocidade e a velocidade com que voc vinha, qual o valor de sua multa? 7) Recebendo quatro mdias 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.
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 19

Algoritmos e Lgica de Programao Sabendo que para aprovao o aluno precisa ter uma mdia anual maior ou igual a 7, escreva uma mensagem indicando se o aluno foi aprovado ou reprovado.

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 20

Algoritmos e Lgica de Programao

REFERNCIAS
Lgica de Programao, SRGIO, Paulo de Moraes Lgica de Programao A Construo de Algoritmos e Estruturas de Dados So Paulo: Forbellone, Andr Luiz Villar - MAKRON, 1993 Site: http://www.univasf.edu.br/~marcelo.linder/iaa.html#pt4

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 21

Algoritmos e Lgica de Programao

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC

Pgina 22

Potrebbero piacerti anche