Você está na página 1de 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.

Linguagem de Baixo Utilizam Mnemnicos Ex.: Assembly


Nvel para representar
instrues elementares

Linguagem de Alto Nvel Utilizam instrues EX.: Java, C, Delphi,


prximas da linguagem Pascal, Visual Basic,
humana de forma a Cobol, Clipper,
facilitar o raciocnio 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. 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

2.2. 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
UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 6
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

perimetro 2 * (lado1 + lado2)

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 SMBOLO
Multiplicao X
Diviso /
Adio +
Subtrao -
Exponenciao **
Inteiro da diviso Div
Resto da diviso 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 SMBOLO
Igual a =
Diferente de <>
Maior que >
Menor que <
Maior ou igual a =>
Menor ou igual a <=

Exemplos:

SMBOLOS RESULTADOS

9>5 Verdadeiro

-1<-9 Falso

120 <=119 Falso

7 >= 3 Verdadeiro

8<>0 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 B A E B A OU B NO (A)

V V V V F

V F F V F

F V F V V

F F F F 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: Composta 1:
se (<condio>) ento se (<condio>) ento
<comando1> <comando1>
fim_se 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 fat*k

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

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

UFRB - Bacharelado em Cincias Exatas e Tecnolgicas - CETEC Pgina 17


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 1

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

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

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