Prévia do material em texto
Algoritmos e ProgramaçãoAlgoritmos e Programação Prof. Marco Antonio Prof.a Vanessa de Oliveira Campos Estruturas de Decisão Conteúdo Estruturas de Decisão Estrutura condicional simples Estrutura condicional composta Estrutura condicional de múltipla escolha Estrutura Condicional Na vida real tomamos decisões a todo o momento baseadas em uma situação existente. Em um algoritmo, chamamos esta situação de condição. Associada a uma condição, existirá uma alternativa possível de ações. Exemplo: "se tiver R$ 10,00 sobrando então irei ao cinema hoje à noite.” Estrutura Condicional “SE tiver R$ 10,00 sobrando ENTÃO irei ao cinema hoje à noite.”tiver R$ 10,00 sobrando Condição: “Tenho R$ 10,00 sobrando?” Eu irei ao cinema hoje à noite Eu não irei ao cinema hoje à noite Sim Não Estruturas de Decisão Estrutura Condicional Executa uma sequência de acordo com o resultado de uma comparação (condição). Também chamada de “Desvio Condicional”. Desvio condicional Condição: Exigência, algo a ser cumprido. O desvio condicional é caminho alternativo, que o algoritmo deve seguir caso ele atenda a uma exigência imposta pelo programador. Estruturas de Decisão Pode se apresentar das seguintes maneiras: Estrutura Condicional Simples Se uma condição for verdadeira, executa uma sequência. Estrutura Condicional Composta Se uma condição for verdadeira, executa uma sequência, senão, executa outra sequência. Estrutura Condicional Simples É uma condicional de uma única instrução, que deverá ser realizada caso as variáveis atendam a condição especificada. Estrutural Condicional Simples Sintaxe: se <condição> então <conjunto de instruções para condição verdadeira> fimse Estrutural Condicional Simples Exemplo: se (conta > 10) então conta <- conta + 1 fimse Estrutural Condicional Simples Algoritmo "Calcula Area do Circulo" VAR Area, Raio: Real inicio Escreval ("Entre com raio do círculo") Leia (Raio) Se Raio > 0 entao Area <- PI*(Raio^2) Escreva ("A área do círculo de raio ", Raio, " é ", Area) fimse Se Raio <= 0 entao Escreva ("Raio não pode ser nulo ou negativo!") fimse fimalgoritmo Estrutura Condicional Composta É um condicional com duas possibilidades, de forma que caso a condição não seja atendida, há uma alternativa à essa condição. Estrutural Condicional Composta Sintaxe: se <condição> então <conjunto de instruções para condição verdadeira> senao <conjunto de instruções para condição falsa> fimse Estrutural Condicional Composta Algoritmo "Aconselha Programa" Var Dinheiro: REAL inicio Escreval ("*** Serviço Informatizado de Sugestões ***") Escreva ("Quanto dinheiro você tem sobrando?") Leia (Dinheiro) Se Dinheiro >= 10 entao Escreval ("Vá ao cinema hoje à noite.") Senao Escreval ("Fique em casa vendo TV.") Fimse Escreva ("Obrigado e volte sempre.") Fimalgoritmo Estrutura Condicional Encadeada Como o próprio nome diz é um encadeamento de condições para que caso uma condição não seja aceita, novas condições são impostas a aquele algoritmo. Se <condição> entao <comandos> Senao Se <condição> entao <comandos> Senao <comandos> Fimse Se <condição> entao <comandos> Senao Se <condição> entao <comandos> Senao Se ... Fimse Estrutura Condicional Encadeada Exemplo: Algoritmo “cond_encadeado” Var A, B:inteiro Inicio Leia (A, B) Se (A + B > 10) entao Escreva (“A soma dos valores é maior que 10”) Senao Se (A+B > 3) entao Escreva (“A soma dos valores é um número entre 3 e 10”) Senao Escreva (“Tente de novo”) Fimse Fimse Fim Exemplos de usos de operadores lógicos Operador e Se (A>10) e (B>5) entao X <- A+B (a soma só será executada caso A for maior que 10 e B for maior que 5) Fimse Exemplos de usos de operadores lógicos Operador ou Se (A>10) ou (B>5) entao X <- A+B (a soma será executada caso A for maior que 10 ou caso B for maior que 5) Fimse Exemplos de usos de operadores lógicos Operador nao Se nao (A>10) entao X <- A+B (neste caso a soma será executada se A não for maior que 10.) fimse Escolha...Caso Em algumas situações é necessário termos várias soluções ligadas a respostas diferentes, neste caso o comando de alternativa simples ou composta não é uma solução prática. Isto porque obrigará o programador a escrever muitas linhas de programa, além de ter que criar vários comandos de alternativas compostas e verificar a validade de suas condições para que o comando execute o caminho correto para uma determinada condição. Temos então o comando de alternativa de múltipla escolha. Escolha...Caso Sintaxe: escolha < expressão-de-seleção > 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 Escolha...Caso 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 etária 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 algoritmo que solicite o nome e a idade de um atleta e imprima a sua categoria. Escolha...Caso Algoritmo "CLASSIFICAÇÃO” var nome, categoria : caractere 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