Você está na página 1de 43

Algoritmos

Prof.: Carlos Alberto E-mail_1: carlos@facape.br E-mail_2: carlos36_batista@yahoo.com.br

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, finalidade de tomar uma deciso;

com a

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.
2. 3.

Conhecer dois valores (variveis A e B) Efetuar a soma e atribuir o resultado varivel res; 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 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. 2.

3.

Conhecer dois valores (variveis A e B) Efetuar a soma e atribuir o resultado varivel res; 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. 2. 3. 4. 5. 6.

Definir uma varivel para o salrio reajustado (novo_salario); Ler um valor para a varivel salario; Verificar se o valor de salario < 500, se sim reajustar em 15%; Verificar se o valor de salario <= 1000, se sim reajustar em 10%; Verificar se o valor de salario > 1000, se sim reajustar em 5%; 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 := novo_salario * 1.15 senao se (salario <= 1000) entao novo_salario := novo_salario * 1.10 senao novo_salario := novo_salario * 1.05 fimse fimse escreva (novo_salario) fimalgoritmo

Estrutura Condicional
Desvio condicional de mltipla escolha
Utilizado

quando se deseja, em algum ponto do algoritmo, tomar uma deciso, com um nmero de alternativas; deciso mltipla pode comandos se...entao...senao torna-se de difcil leitura; ser construda com encadeados, porm

Uma

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 De 05 a 10 De 11 a 15 De 16 a 20 De 21 a 25 CATEGORIA Infantil Juvenil Junior 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 := "INVALIDO" fimescolha escreva ("Categoria = ",categoria) 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 booleanos;

conhecidos

como

operadores

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 verdadeiros;

lgicos

necessitam

ser

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 ler o sexo de

uma pessoa.

Estrutura Condicional
Exemplo: fazer um algoritmo para ler o sexo de uma pessoa.

algoritmo "Testa_lgica_OU" var sexo :caracter inicio leia(sexo)

se (sexo = masculino) ou (sexo = feminino) entao


escreva(O seu sexo vlido.") senao escreva(O seu sexo invlido.") 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

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