Você está na página 1de 44

Prof.

: Carlos Alberto
E-mail: carlos.batista@facape.br
carlos36_batista@yahoo.com.br
Algoritmos
Estrutura Condicional
O fluxo de instrues escolhido em funo do
resultado de uma ou mais condies.

Uma condio uma expresso lgica, podendo
ser simples ou composta.

Algoritmos em que determinados passos esto
subordinados a uma condio so chamados
algoritmos de seleo.
Estrutura Condicional
Desvio condicional simples

Utiliza a instruo se...entao...fimse, com a
finalidade de tomar uma deciso;

Se a condio for verdadeira, sero executadas
todas as instrues que estejam entre a instruo
se...entao e a instruo fimse;

Sendo a condio falsa, sero executadas as
instrues aps o comando fimse;
Estrutura Condicional
Desvio condicional simples
Fluxograma


Estrutura Condicional
Desvio condicional simples

Portugus estruturado

se (condio) entao
<instrues para condio verdadeira>
fimse
<instrues para condio falsa ou aps ser verdadeira>
Estrutura Condicional
Desvio condicional simples

Exemplo

Ler dois valores numricos, efetuar a adio e
apresentar o seu resultado caso o valor somado
seja maior que 10.
Estrutura Condicional
Desvio condicional simples
Ler dois valores numricos, efetuar a adio e
apresentar o seu resultado caso o valor somado
seja maior que 10.

1. Conhecer dois valores (variveis A e B)
2. Efetuar a soma e atribuir o resultado varivel res;
3. Apresentar o valor contido na varivel res, caso seja maior
que 10.
Estrutura Condicional
Fluxograma

Desvio condicional simples
Estrutura Condicional
Portugus estruturado
algoritmo soma_numeros
var
A, B, Res : inteiro
inicio
leia (A)
leia (B)
Res := A + B
se (Res > 10) entao
escreva (Res)
fimse
escreval(Fim do algoritmo)
fimalgoritmo
Estrutura Condicional
Desvio condicional composto

Utiliza a instruo se...entao...seno...fimse, com
a finalidade de tomar uma deciso;

Se a condio for verdadeira, sero executadas
todas as instrues que estejam entre a instruo
se...entao e a instruo senao;

Sendo a condio falsa, sero executadas as
instrues que estejam entre o seno e a instruo
fimse;
Estrutura Condicional
Desvio condicional composto
Fluxograma


Estrutura Condicional
Desvio condicional composto

Portugus estruturado

se (condio) entao
<instrues para condio verdadeira>
senao
<instrues para condio falsa>
fimse
Estrutura Condicional
Desvio condicional composto

Exemplo

Ler dois valores numricos, efetuar a adio. Caso
o valor seja maior ou igual a 10, este dever ser
apresentado somando-se a ele mais 5, caso o valor
somado no seja maior ou igual a 10, este dever
ser apresentado subtraindo-se 7.
Estrutura Condicional
Desvio condicional composto
Ler dois valores numricos, efetuar a adio. Caso
o valor seja maior ou igual a 10, este dever ser
apresentado somando-se a ele mais 5, caso o valor
somado no seja maior ou igual a 10, este dever
ser apresentado subtraindo-se 7.

1. Conhecer dois valores (variveis A e B)
2. Efetuar a soma e atribuir o resultado varivel res;
3. Verificar se res maior ou igual a 10, caso sim mostre res +
5, seno mostre res - 7.
Estrutura Condicional
Fluxograma

Desvio condicional composto
Estrutura Condicional
Portugus estruturado
algoritmo soma_numeros
var
A, B, res : inteiro
inicio
leia (A)
leia (B)
res := A + B
se (res >= 10) entao
escreva (res + 5)
senao
escreva (res - 7)
fimse
fimalgoritmo
Estrutura Condicional
Desvios condicionais encadeados (ou aninhados)

Utilizado quando for necessrio estabelecerem
verificaes de condies sucessivas;

Determinada ao poder ser executada se um
conjunto anterior de condies for satisfeito, e
estabelecer novas condies;

Neste caso ser utilizada uma condio dentro de
outra condio.

Estrutura Condicional
Desvio condicional encadeado
Fluxograma


Estrutura Condicional
Desvio condicional encadeado

Portugus estruturado

se (condio 1) entao
<instrues para condio 1 verdadeira>
senao
se (condio 2) entao
<instrues para condio 2 verdadeira, porm condio 1 falsa>
senao
<instrues para condio1 e condio 2 falsas>
fimse
fimse

Estrutura Condicional
Desvio condicional encadeado

Exemplo

Elaborar um algoritmo que efetue o clculo do
reajuste de salrio de um funcionrio. Considere
que o funcionrio dever receber um reajuste de
15% caso seu salrio seja menor que 500, se o
salrio for maior ou igual a 500, mas menor ou igual
a 1000, seu reajuste ser de 10%, caso seja maior
que 1000, o reajuste ser de 5%.
Estrutura Condicional
Desvio condicional encadeado

Percebe-se que o problema estabelece trs
condies:

Salrio < 500, reajuste de 15%;
Salrio >= 500, mas <= 1000, reajuste de 10%;
Salrio > 1000, reajuste de 5%.


Estrutura Condicional
Desvio condicional encadeado

Elaborar um algoritmo que efetue o clculo do reajuste de
salrio de um funcionrio. Considere que o funcionrio dever
receber um reajuste de 15% caso seu salrio seja menor que
500, se o salrio for maior ou igual a 500, mas menor ou igual
a 1000, seu reajuste ser de 10%, caso seja maior que 1000,
o reajuste ser de 5%.

1. Definir uma varivel para o salrio reajustado (novo_salario);
2. Ler um valor para a varivel salario;
3. Verificar se o valor de salario < 500, se sim reajustar em 15%;
4. Verificar se o valor de salario <= 1000, se sim reajustar em 10%;
5. Verificar se o valor de salario > 1000, se sim reajustar em 5%;
6. Atribuir o valor reajustado varivel novo_salario.
Estrutura Condicional
Fluxograma

Desvio condicional encadeado
Estrutura Condicional
Portugus estruturado

algoritmo reajusta_salario
var
salario, novo_salario : real
inicio
leia (salario)
se (salario < 500) entao
novo_salario := salario * 1.15
senao
se (salario <= 1000) entao
novo_salario := salario * 1.10
senao
novo_salario := salario * 1.05
fimse
fimse
escreva (novo_salario)
fimalgoritmo
Estrutura Condicional
Operadores Lgicos

Utilizados quando se necessita trabalhar com o
relacionamento de duas ou mais condies ao
mesmo tempo, na mesma instruo se;

So tambm conhecidos como operadores
booleanos;

Atuam sobre expresses e resultam em valores
lgicos: verdadeiro ou falso.
Estrutura Condicional
Operadores Lgicos

Os operadores lgicos so trs: e, ou e no.

Operador e : utilizado quando dois ou mais
relacionamentos lgicos necessitam ser
verdadeiros;

se (<condio 1>) e (<condio 2>) ento
<instruo executada se condio 1 e condio 2 verdadeiras>
fimse
Estrutura Condicional
Operadores Lgicos

O operador e faz com que somente seja
executada uma determinada operao se todas as
condies mencionadas forem simultaneamente
verdadeiras.

Exemplo: fazer um algoritmo para informar se um
nmero est na faixa de 20 a 90.
Estrutura Condicional
Exemplo: fazer um algoritmo para informar se um nmero est
na faixa de 20 a 90.
algoritmo "Testa_lgica_E"
var
numero :inteiro
inicio
leia(numero)
se (numero >= 20) e (numero <= 90) entao
escreva("O nmero est na faixa de 20 a
90.")
senao
escreva("O nmero est fora da faixa de 20
a 90.")
fimse
fimalgoritmo
Estrutura Condicional
Operadores Lgicos

Operador ou : utilizado quando pelo menos um
dos relacionamentos lgicos de uma condio
necessita ser verdadeiro;

se (<condio 1>) ou (<condio 2>) ento
<instruo executada se cond. 1 verd. ou se cond. 2 verd.>
fimse
Estrutura Condicional
Operadores Lgicos

O operador ou faz com que seja executada uma
determinada operao se pelo menos uma das
condies mencionadas for verdadeira.

Exemplo: fazer um algoritmo para informar se um
nmero est na faixa de 20 a 90.
Estrutura Condicional
Exemplo: fazer um algoritmo para informar se um nmero est
na faixa de 20 a 90.
algoritmo "Testa_lgica_OU"
var
numero :inteiro
inicio
leia(numero)
se (numero < 20) ou (numero > 90) entao
escreva("O nmero est fora da faixa de 20 a
90.")
senao
escreva("O nmero est na faixa de 20 a 90.")
fimse
fimalgoritmo
Estrutura Condicional
Operadores Lgicos

Operador nao : utilizado quando se necessita
estabelecer que uma determinada condio deve
no ser verdadeira;

Recurso utilizado quando mesmo sendo uma
condio verdadeira, ela ser tratada como falsa.

se nao (<condio>) ento
<instruo executada se condio no for verdeira>
fimse
Estrutura Condicional
Operadores Lgicos

O operador nao faz com que seja executada uma
determinada operao se a condio no for
verdadeira, portanto, considerada falsa.

O operador nao caracteriza-se por inverter o
estado lgico de uma condio.
Estrutura Condicional
Exemplo 1
algoritmo "Testa_lgica_NAO"
var
A :inteiro
inicio
leia(A)
se nao (A > 5) entao
escreval(A, " no maior que 5")
senao
escreval(A, " maior que 5")
fimse
escreva(A)
fimalgoritmo
Estrutura Condicional
Exemplo 2
algoritmo "Testa_lgica_NAO"
var
A, B, C, X :inteiro
inicio
leia(A, B, X)
se nao (X > 5) entao
C := (A + B) * X
senao
C := (A - B) * X
fimse
escreva(C)
fimalgoritmo
Estrutura Condicional
Operadores Lgicos

Veja a tabela com um resumo dos operadores
lgicos
Estrutura Condicional
Operadores Lgicos

Veja a tabela de deciso dos operadores lgicos
Estrutura Condicional
Desvio condicional de mltipla escolha

Utilizado quando se deseja, em algum ponto do
algoritmo, tomar uma deciso, com um nmero de
alternativas;

Uma deciso mltipla pode ser construda com
comandos se...entao...senao encadeados, porm
torna-se de difcil leitura;

O comando escolha...caso oferece uma alternativa
com uma sensvel melhoria na legibilidade do
algoritmo.


Estrutura Condicional
Desvio condicional de mltipla escolha

A estrutura de deciso escolha...caso utilizada
para testar uma nica expresso, que produz um
resultado, ou, ento, o valor de uma varivel, em
que est armazenado um determinado contedo;

Pode ser considerado como uma especializao do
comando se.


Estrutura Condicional
Desvio condicional de mltipla escolha
Fluxograma


Estrutura Condicional
Desvio condicional de mltipla escolha
Portugus estruturado

escolha < expresso-de-seleo >
caso < exp 1 > , < exp 2 >, ... , < exp n >
< lista-de-comandos-1 >
caso < exp 1 > , < exp 2 >, ... , < exp n >
< lista-de-comandos-2 >
outrocaso
< lista-de-comandos-3 >
fimescolha
Estrutura Condicional
Desvio condicional de mltipla escolha

Exemplo
Um determinado clube de futebol pretende classificar seus atletas
em categorias e para isto ele contratou um programador para criar
um programa que executasse esta tarefa. Para isso o clube criou
uma tabela que continha a faixa etria do atleta e sua categoria. A
tabela est demonstrada abaixo:
IDADE CATEGORIA
De 05 a 10 Infantil
De 11 a 15 Juvenil
De 16 a 20 Junior
De 21 a 25 Profissional
Construa um programa que solicite o nome e a idade de um atleta e
imprima a sua categoria.

Estrutura Condicional
Fluxograma

Desvio condicional de
mltipla escolha
Estrutura Condicional
Portugus estruturado

algoritmo Classificao de Atletas
var
nome, categoria : caracter
idade : inteiro
inicio
escreva("Nome do Atleta = ")
leia (nome)
escreva("Idade do Atleta = ")
leia (idade)
escolha idade
caso 5,6,7,8,9,10
categoria := "Infantil"
caso 11,12,13,14,15
categoria := "Juvenil
caso 16,17,18,19,20
categoria := "Junior
caso 21,22,23,24,25
categoria := "Profissional
outrocaso
categoria := "INEXISTENTE"
fimescolha
escreva ("Categoria = ",categoria)
fimalgoritmo