Escolar Documentos
Profissional Documentos
Cultura Documentos
Kate Revoredo
katerevoredo@uniriotec.br
1
Estruturas de Controle
Para implementar a soluo de um problema no
computador (Algoritmo) preciso encontrar uma
sequncia finita de passos que permita que o problema
possa ser resolvido de maneira automtica. Para a
definio da ordem de execuo dos passos de um
algoritmo essencial a utilizao de instrues
especficas denominadas Estruturas de Controle.
Estruturas de Controle
Existem trs estruturas bsicas:
Sequncia,
Seleo, e
Repetio.
Ao1
Ao2
Exemplo
Estrutura Sequncial
F
Condio
bloco 2
bloco 1
ao z
notao
relaes
notao
Adio
menor
<
Subtrao
maior
>
Multiplicao
igual
diferente
menor ou igual
<=
maior ou igual
>=
quociente inteiro
/ (ou DIV)
resto da diviso
%(ou MOD)
notao
relaes
notao
adio
menor
<
subtrao
maior
>
multiplicao
igual
quociente inteiro
/ ( ou Div) diferente
menor ou igual
<=
maior ou igual
>=
Exemplo
Enunciado
Dados dois nmeros inteiros a e b distintos, imprimir o maior
nmero.
Esboo do algoritmo
leia (a,b)
compare a com b, definindo o maior
imprima (maior)
Exemplo
Algoritmo Maior
objetivo: determinar o maior de dois nmeros distintos
entrada: a, b (inteiros)
sada: maior (inteiro)
algoritmo Maior
var
a,b,maior:inteiro
inicio
Preste
ateno
na
leia(a,b)
indentao do Cdigo !!
se (a>b) ento
Esta fundamental para
facilitar a leitura do algortimo.
maior <- a
seno
maior <- b
fimse
escreva(Maior: , maior)
fim
condio1
F
bloco 2
bloco1
Ao z
Composio de Seleo
V
F
condio 1
V
condio 2
F
bloco 3
bloco2
bloco1
Ao z
Exemplo
Enunciado
Dados dois nmeros a e b, no necessariamente distintos,
determinar o maior. No caso deles serem iguais a sada
deve ser uma mensagem, por exemplo, valores iguais.
Anlise
Vamos estabelecer que com esta modificao, a condio a
ser testada inicialmente a igualdade dos dois nmeros
dados. Conforme o valor desta condio deve ser impresso
uma mensagem ou ento deve ser determinado e impresso
o maior valor.
Exemplo
Algoritmo Maior_versao2
Var
a,b,maior:inteiro
inicio
leia(a,b)
se (a = b) ento
escreva (valores iguais)
seno
se (a>b) ento
maior <- a
seno
maior <- b
fimse
escreva(Maior: , maior)
fimse
fim
Exemplo
Algoritmo Maior_versao2
Var
a,b,maior:inteiro
inicio
leia(a,b)
se (a = b) ento
escreva (valores iguais)
seno
se (a>b) ento
maior <- a
seno
maior >- b
fimse
escreva(Maior: , maior)
fimse
fim
Exerccio
Programa para dado um nmero identificar se este nmero par
ou impar:
Exemplo
1. Dado trs nmeros inteiros (a, b e c) , onde os dois
primeiros definem o limite inferior e superior do
intervalo, verificar se o terceiro nmero (c) est dentro
do intervalo definido anteriormente (a,b).
Anlise do Problema:
Entrada: 50, 100, 64
Sada
64 est dentro do intervalo entre 50 e 100
Entrada: 35, 60, 14
Sada
14 est fora do intervalo entre 35 e 60
Exemplo
Esboo
entrada de dados (a, b, c)
Verificar se c maior que a e menor que b
sada do resultado ( se c est no intervalo entre a e b)
Exemplo
Esboo
entrada de dados (a, b, c)
Verificar se c maior que a e menor que b
No passo acima podemos pensar na seguinte combinao de condicionais:
Verificar se c maior que a ento
Verificar se c menor que b ento
escreva( c, est no intervalo entre , a, e, b)
seno
escreva( c, no est no intervalo entre , a, e, b)
seno
escreva( c, no est no intervalo entre , a, e, b)
Exemplo
1.
Var
a,b,c: inteiro;
inicio
leia(a,b,c);
se (c > a ) ento
se (c < b) ento
escreva(c,est no intervalo entre,a,e,b);
seno
escreva(c, no est no intervalo entre,a,e,b);
seno
escreva(c, no est no intervalo entre,a,e,b);
fim
Exemplo- Condicional
Var
a,b,c: inteiro;
inicio
leia(a,b,c);
se (c > a ) ento
se (c < b) ento
escreva(c,est no intervalo
entre,a,e,b);
seno
escreva(c,
no
est
no
intervalo entre,a,e,b);
seno
escreva(c,
no
est
no
intervalo entre,a,e,b);
fim
Exemplo- Condicional
Var
a,b,c: inteiro;
inicio
leia(a,b,c);
se (c > a ) ento
se (c < b) ento
escreva(c,est no intervalo
entre,a,e,b);
seno
escreva(c,
no
est
no
intervalo entre,a,e,b);
seno
escreva(c,
no
est
no
intervalo entre,a,e,b);
fim
Exemplo- Condicional
Var
a,b,c: inteiro;
inicio
leia(a,b,c);
se (c > a ) ento
se (c < b) ento
escreva(c,est no intervalo
entre,a,e,b);
seno
escreva(c,
no
est
no
intervalo entre,a,e,b);
seno
escreva(c,
no
est
no
intervalo entre,a,e,b);
fim
Resposta: SIM!
Utilizando o operador
Booleano e
notao
no
conjuno
disjuno
ou
no a
aeb
a ou b
Voltando ao Exemplo
1. Dado trs nmeros inteiros (a, b e c) , onde os dois
primeiros definem o limite inferior e superior do
intervalo, verificar se o terceiro nmero (c) est dentro
do intervalo definido anteriormente (a,b).
Anlise do Problema:
Entrada: 50, 100, 64
Sada
64 est dentro do intervalo entre 50 e 100
Entrada: 35, 60, 14
Sada
14 est fora do intervalo entre 35 e 60
Exemplo Condicional
Var
a,b,c: inteiro;
inicio
leia(a,b,c);
se (c > a ) ento
se (c < b) ento
escreva(c,est no intervalo
entre,a,e,b);
seno
escreva(c,
no
est
no
intervalo entre,a,e,b);
seno
escreva(c,
no
est
no
intervalo entre,a,e,b);
fim
Resposta: SIM!
Utilizando o operador
Booleano e
Exerccio: intervalo
Dados um nmero n e quatro outros, a, b, c e d,
correspondentes, respectivamente, s extremidades dos
intervalos [a,b] e [c,d], sendo a < b, c < d e a < c
Exemplo
Programa para calcular a mdia de dois nmeros inteiros
fornecidos pelo usurio.
Algoritmo media
Var
a,b,soma:inteiro
media:real
Inicio
leia(a,b)
soma = a+b
media ->soma/2
escreva(media)
fim
Exemplo
Programa para calcular a mdia de dois nmeros inteiros
fornecidos pelo usurio.
Algoritmo media
Var
a,b,soma:inteiro
media:real
Inicio
leia(a,b)
soma = a+b
media ->a/2
escreva(media)
fim
Exemplo
Programa para calcular a mdia de dois nmeros inteiros
fornecidos pelo usurio.
Algoritmo media
Var
a,b,soma:inteiro
media:real
Inicio
leia(a,b)
soma = a+b
media ->a/2
escreva(media)
fim
Exerccio
Var
a,b,c:inteiro
Inicio
a <- 10
b <- 8
c <- 4
a <- a+c
b <- c+a
b <- a
c <- a+b
escreva(a,b,c)
fim