Você está na página 1de 5

1

Universidade Federal Rural do Semi-rido


Departamento de Cincias Exatas e Naturais
Professor: Bruno Monteiro

Verso
30/11/2012

Introduo a Algoritmos

Algoritmos
Um engenheiro, ao se deparar com a demanda de construir uma ponte, antes de comear a misturar os materiais e realizar as
perfuraes no terreno, necessita primeiramente resolver os problemas referentes obra, por exemplo, atravs de modelos e regras.
Da mesma forma, um programador, antes de qualquer coisa, precisa entender e resolver o problema atravs de um algoritmo, que
pode ser escrito at mesmo em uma folha de papel, para s depois representar esta soluo em uma linguagem de programao,
surgindo ento o software (ou programa).
Definio de algoritmo: conjunto finito de instrues, executadas sequencialmente, a fim de resolver um problema especfico.
Objetivo do algoritmo: representar a soluo para um problema, abstraindo os detalhes tcnicos especficos.
Propriedades:
 Finitude: deve sempre terminar aps um nmero finito de passos.
 Sem ambiguidade: cada passo deve ser precisamente definido e sem ambiguidades.
 Legibilidade: os passos devem ser claros e legveis, de modo que possam ser compreensveis para outras pessoas.
 Portabilidade: seus passos devem ser facilmente traduzidos para qualquer linguagem de programao.

Principais Representaes de Algoritmos


Descrio narrativa

Fluxograma

Pseudo-cdigo
algoritmo CalcularMediaSituacao

Pea ao usurio para digitar as trs notas.


Permita que o usurio informe as trs notas.
Em seguida, com base nestas trs notas, calcule
a respectiva mdia.
Informe o valor da mdia recm calculada.
Se esta mdia for maior ou igual a sete, ento,
informe que o aluno est aprovado. Caso
contrrio, se a mdia for menor do que sete,
informe que o aluno est reprovado.

declare
n1, n2, n3, media: real
inicio
escreva(Digite as 3 notas)
leia(n1)
leia(n2)
leia(n3)
media  (n1 + n2 + n3) / 3
escreva(Media , media)
se media >= 7
entao
escreva(Aprovado)
senao
escreva(Reprovado)
fimse
fim

Algoritmos (Pseudocdigo)
Variveis
Variveis so espaos reservados para armazenar algum dado, por analogia, como uma caixa que serve para armazenar algo.
Regras para o nome de uma varivel
Toda varivel precisa ter um nome, que deve seguir as seguintes regras:
S pode conter letras, nmeros, e sublinha. Letras no podem ter acentos. No pode comear com nmero. No pode ter espaos.
Exemplos vlidos: media, Media, nota2, media_final, _nome, NomeCompleto
Exemplos invlidos: mdia, Mdia, 2nota, media final, nome-completo
Declarao de variveis
Cada varivel criada para armazenar um tipo especfico de dado, da mesma forma que uma caixa criada para armazenar um tipo
especfico de objeto. Portanto, no momento que voc declara uma varivel, deve-se pensar que foi criada uma caixa (vazia e novinha)
pronta para armazenar o tipo de dado que voc especificou.
Tipos de
variveis
inteiro
real
caractere
literal
lgico

Descrio de cada tipo


Representa o conjunto dos nmeros inteiros.
Representa o conjunto dos nmeros reais.
Representa o conjunto dos caracteres (nmeros, letras e smbolos).
Representa textos, ou seja, cadeia de caracteres entre aspas (nmeros, letras e smbolos).
Representa valores lgicos (verdadeiro ou falso).

Exemplos de
contedos vlidos
30
30,5
b
Av. Pres. Dutra, 78
verdadeiro, falso

2
Atribuio de variveis
Uma atribuio, representada pelo sinal , representa a ao de colocar um contedo dentro da caixa, ou seja, de atribuir um
determinado valor a uma varivel.
Exemplo
algoritmo DeclaracoesAtribuicoesSimples
declare
idade: inteiro
altura: real
tipoSangue: caractere
endereco: literal
doador: lgico
inicio
idade  26
altura  1,70
altura  1,67
tipoSangue  A
endereco  Av. Norte, 34, Recife
doador  verdadeiro
fim

idade
(inteiro)

altura
(real)

tipoSangue
(caractere)

endereo
(literal)

doador
(lgico)

idade
(inteiro)

altura
(real)

tipoSangue
(caractere)

doador
(lgico)

26

1,67

endereo
(literal)
Av. Norte,
34, Recife

Observao: ao realizar uma nova atribuio, para a mesma varivel, o contedo antigo substitudo totalmente pelo contedo novo,
ou seja, uma varivel s pode armazenar um contedo de cada vez. Observe que isto aconteceu na atribuio da varivel altura, do
exemplo acima: o contedo adicionado na primeira atribuio (1,70) foi substitudo pelo contedo da atribuio seguinte (1,67).
Observao: no esquea que toda varivel deve ser declarada antes de ser utilizada.

Funo de Entrada
Funcionamento: os valores informados pelo usurio, atravs dos dispositivos de entrada (normalmente o teclado), sero atribudos a
varivel utilizada na funo leia.
leia ( nome da varivel )
Exemplo:
leia(nota1)

Funo de Sada
Funcionamento: os valores informados na funo escreva sero exibidos para o usurio, atravs dos dispositivos de sada
(normalmente o monitor).
escreva( contedo )
Exemplo:
escreva(Bom dia, prezado estudante!)
escreva(Sua mdia final foi , media)

Operadores
Operadores Aritmticos
Adio
+
Subtrao
Multiplicao
*
Quociente da Diviso
/
Resto da Diviso
%

Operadores Relacionais
Maior
>
Menor
<
Maior ou Igual
>=
Menor ou Igual
<=
Igual
=
Diferente
<>

Operadores Lgicos
Resulta verdadeiro se todas as
partes forem verdadeiras
Resulta verdadeiro se uma das
partes for verdadeira
Negao (inverte o valor)

E
OU
NAO

Exemplo
algoritmo CalcularMedia

n1
n2
(real) (real)

n3
media
(real) (real)

escreva(Digite as 3 notas)

n1
n2
A mensagem Digite as 3 notas escrita para o usurio
(real) (real)
(no monitor).

n3
media
(real) (real)

leia(n1)
leia(n2)
leia(n3)

Usurio ento digita as 3 notas (no teclado) que sero


lidas e colocadas nas variveis informadas.

media  (n1 + n2 + n3) / 3

O resultado da expresso colocado na varivel media.

declare
n1, n2, n3, media: real

Variveis criadas

inicio

escreva(Sua mdia , media) A mensagem Sua mdia 7,6 escrita para o usurio
(no monitor).
fim

7,7

9,8

n1
n2
(real) (real)

7,7

9,8

5,5
n3
media
(real) (real)

5,5

7,6

Estruturas Condicionais
Tambm conhecidas como Estruturas de Deciso, permitem que uma instruo, ou bloco de instrues, sejam ou no executadas,
dependendo de determinadas condies, representadas por expresses lgicas ou relacionais. Em outras palavras, oferecem os meios
de escolher entre dois ou mais caminhos de execuo.

Se
Linguagem estruturada

Fluxograma

Exemplo
algoritmo SimularFeriado

se condio
entao

declare
carteira: real
programa: literal

instrues executadas quando


condio for verdadeira

senao

inicio
leia( carteira )
se carteira >= 10
entao
programa  ao cinema
carteira  0
senao
programa  ficar em casa
fimse

instrues executadas quando


condio for falsa

fimse

escreva(Hoje vou , programa)


fim

Se encadeado
O agrupamento de vrias selees normalmente ocorre quando h muitas possibilidades de situaes dependentes entre si.
Linguagem estruturada

Fluxograma

Exemplo
algoritmo SimularFeriado
declare
carteira: real
programa: literal

se condio1
entao
instrues executadas quando
condio1 for verdadeira

inicio
leia( carteira )
se carteira >= 10
entao
escreva(H dinheiro!)
se carteira >= 2000
programa  viajar de iate
senao
programa  ao cinema
fimse
carteira  0
senao
programa  ficar em casa
fimse
escreva(Hoje vou , programa)
fim

se condio2
entao
instrues executadas
quando a condio2 for
verdadeira

senao
instrues executadas
quando condio2 for
falsa

fimse
senao
instrues executadas quando
condio1 for falsa

fimse

Escolha
Linguagem estruturada
escolha varivel
caso valor1:
instrues executadas
quando o contedo da
varivel for valor1

caso

valor2:

instrues executadas
quando o contedo da
varivel for valor2

caso

valor3:

instrues executadas
quando o contedo da
varivel for valor3

outrocaso:
instrues executadas
quando no h valor
previsto

fimescolha

Fluxograma

Exemplo
algoritmo TeleAtendimento
declare
opcao: inteiro
mensagem: literal
inicio
escolha opcao
caso 1:
mensagem  consultar saldo
caso 2:
mensagem  planos e promoes
caso 9:
mensagem  falar com atendente
outrocaso:
mensagem  opo invlida
fimescolha
escreva( mensagem )
fim

Estruturas de Repetio
Estas estruturas permitem que trechos do algoritmo sejam repetidos enquanto uma condio for satisfeita.

Enquanto Faa
Linguagem estruturada
enquanto
faca

Fluxograma

Exemplo
algoritmo VerificarSenha
declare
senha: inteiro

condio

instrues executadas
enquanto a condio for
verdadeira

inicio

fimenquanto

escreva("Digite a senha")
leia( senha )

OBS: observe que o teste da condio


feito no incio.

enquanto senha <> 123 faca


escreva("Senha INVLIDA!")
escreva("Digite a senha")
leia(senha)
fimenquanto
escreva("Senha CORRETA!")
fim

Faa Enquanto
Linguagem estruturada

Fluxograma

faca

Exemplo
algoritmo VerificarSenha

instrues executadas uma


primeira vez e enquanto a
condio for verdadeira

declare
senha: inteiro
inicio

enquanto condio

faca
escreva("Digite a senha")
leia( senha )

OBS: observe que o teste da condio


feito no final.

enquanto

senha <> 123

escreva("Senha CORRETA!")
fim

Para
Linguagem estruturada

Fluxograma

para V de Vi ate Vf
passo P faca
instrues executadas
enquanto a condio
for verdadeira
fimpara
V: varivel de controle
Vi: valor inicial de V
Vf: valor final de V
P: valor de incremento/decremento de V

Exemplo
algoritmo EscreverDe2Em2
declare
cont: inteiro
inicio
para cont de 0 ate 10 passo 2 faca
escreva( cont )
fimpara
fim
Sada do algoritmo que ser exibido na tela:
0 2 4 6 8 10

Organizao das instrues


Nos exemplos anteriores, observem que algumas instrues so internas a outras. Portanto, ao escrever seu algoritmo, mantenha
sempre os espaamentos adequados, de modo que reflitam a hierarquia das estruturas. Exemplo:
Organizao recomendada
algoritmo SimularFeriado
declare
carteira: real
inicio
leia( carteira )
se carteira >= 10
entao
escreva(Vou ao cinema)
senao
escreva(Vou ficar em casa)
fimse
fim

Nunca faa isso!


algoritmo SimularFeriado
declare
carteira: real
inicio
leia( carteira )
se carteira >= 10
entao
escreva(Vou ao cinema)
senao
escreva(Vou ficar em casa)
fimse
fim

Execuo de um algoritmo
Exemplo:
1

algoritmo CalcularMediaSituacao

2
3

declare
n1, n2, n3, media: real

inicio

5
6
7
8

escreva(Digite as 3 notas)
leia(n1)
leia(n2)
leia(n3)

media  (n1 + n2 + n3) / 3

10

escreva(A mdia do aluno , media)

11
12
13
14
15
16

se media >= 7
entao
escreva(Aprovado)
senao
escreva(Reprovado)
fimse

17

fim

Perceba que todo algoritmo executado seqencialmente, da primeira at a ltima instruo.


Linha 2: so criados espaos para armazenar as 4 variveis de nmeros reais.
n1 : real

n2 : real

n3 : real

media : real

Linha 5: a mensagem Digite as 3 notas escrita na tela do computador.


Linha 6: caso o usurio entre com o nmero 9 no teclado, este valor armazenado na varivel n1.
n1 : real

n2 : real

n3 : real

media : real

9,0
Linha 7: caso o usurio entre com o nmero 6,5 no teclado, este valor armazenado na varivel n2.
n1 : real

n2 : real

9,0

6,5

n3 : real

media : real

Linha 8: caso o usurio entre com o nmero 8,5 no teclado, este valor armazenado na varivel n3.
n1 : real

n2 : real

n3 : real

9,0

6,5

8,5

media : real

Linha 9: o clculo especificado no algoritmo executado e o valor produzido armazenado na varivel media.
n1 : real

n2 : real

n3 : real

9,0

6,5

8,5

media : real

8,0

Linha 10: a mensagem A mdia do aluno 8,0 escrita na tela do computador.


Linha 11: a estrutura se verifica que a sentena media >= 7 verdadeira, pois 8,0 realmente maior ou igual a 7,0
Linha 13: como a condio do se verdadeira, o bloco entao executado, logo, a mensagem Aprovado escrita na tela.