Post on 01-Oct-2018
Estrutura de Condição, Escolha e
Repetição
Profª Fabíola Gonçalves C. Ribeiro
Estrutura Condicional Se, Laços de repetição
INTRODUÇÃO
Os comandos a seguir modificam o fluxo de
execução de um algoritmo com base no teste de
uma condição.
Existem duas formas para implementar esse tipo
de comando..
ESTRUTURA CONDICIONAL SIMPLES
SE
Se Condição for verdadeira então
Comando1;
Fimse
O comando só será executado se a condição for verdadeira. Uma condição é uma comparação que possui dois valores possíveis: verdadeiro ou falso.
ESTRUTURA CONDICIONAL - DECISÃO
Estrutura Condicional Simples
Apenas uma única condição é avaliada
Estrutura Condicional Composta
Duas ou mais condições são avaliadas
ESTRUTURA CONDICIONAL SIMPLES
Utilizando dois ou mais comandos..
Se Condição for verdadeira então
comando1;
comando2;
comandoN;
Fimse
ESTRUTURA CONDICIONAL COMPOSTA
Se Condição for verdadeira então
Comando;
Senão
Comando;
Fimse
Se a condição for verdadeira, será executado o comando1;caso contrário, se a condição for falsa, será executado o comando2.
ESTRUTURA CONDICIONAL COMPOSTA
Utilizando dois ou mais comandos..
Se Condição for verdadeira então
comando1;
comandoN;
Senão
comando1;
comandoN;
Fimse
EXEMPLO
Ler um número e se ele for maior do que 20, então
imprimir a metade do número.
Solução 1
Algoritmo metade
var
real: numero, metade;
escreva(“Digite número: ”);
leia(numero);
se(numero>20) entao
metade<- numero/2;
imprima(“\n metade: ”,metade);
fimse
fimAlgoritmo
Solução 2
Algoritmo metade
var
real: numero;
escreva(“Digite número: ”);
leia(numero);
se(numero>20) entao
imprima(“\n metade: ”, numero/2);
fimse
fimAlgoritmo
EXERCÍCIO/ EXEMPLO
Ler um número e se ele for positivo, imprimir seu inverso; caso contrário, imprimir o valor absoluto do número.
RESPOSTA
Va
lida
ção e
Ve
rificação
Solução 1
Algoritmo inversoAbsoluto
var
real: numero, inverso, absoluto;
escreva(“digite número: ”);
leia(numero);
se(numero>0) entao
inverso <- 1/numero;
escreva(“inverso: ”, inverso);
fimse
senao
absoluto<-numero*(-1);
//ou absoluto <- abs(numero);
escreva(“\n absoluto: ”, absoluto);
fimsenao
fimAlgoritmo
Solução 2
Algoritmo inversoAbsoluto
var
real: numero;
escreva(“digite número: ”);
leia(numero);
se(numero>0) entao
escreva(“inverso: ”, 1/numero);
fimse
senao
escreva(“\n absoluto:”,(numero)*-1);
fimsenao
fimAlgoritmo
A saída é a mesma, mas na solução 2 há economia de memória
SE’S ANINHADOS OU ENCAIXADOS
Muitas vezes em muitas aplicações sentiremos
necessidade de tomar outras decisões dentro de uma
das alternativas da estrutura do se; a isso chamamos
de se’s aninhados.
EXEMPLO CLÁSSICO DE SE ANINHADO
Ler um número e imprimir se ele é positivo
Algoritmo positivo
var
real num;
escreva(“\n Digite numero:”);
leia (num);
se(num>0) entao
escreva(“\n POSITIVO”);
senao
se(num<0)
escreva(“\n NEGATIVO”);
senao
escreva(“\n NULO”);
fimse
fimse
fimAlgoritmo
EXERCÍCIO/EXEMPLO
Crie um algoritmo que verifica o menor
entre três números fornecidos. Utilize
Se’s alinhados..
A ESTRUTURA ESCOLHA (SWITCH)
A expressão é avaliada e o valor será comparado
com um dos rótulos.
A opção senão é opcional
O rótulo é definido como uma constante caracter,
constante numérica
É mais clara que Se’s aninhados.
ALTERNATIVA PARA O SE’S ANINHADOS
escolha( expressão de seleção)
caso (rotulo1):
comando 1;
comando2;
pare;
caso(rotulo2):
comando1;
comando2;
pare;
caso(rotuloN):
comando1;
comando2;
pare;
senao comando;
fimEscolha;
EXEMPLO SIMPLES....
algoritmo Times var
caractere: time; escreva ("Entre com o nome de um time de futebol: "); leia (time); escolha time caso "Flamengo", "Fluminense", "Vasco", "Botafogo" escreva ("É um time carioca.");
pare; caso "São Paulo", "Palmeiras", "Santos", "Corínthians“ escreva ("É um time paulista.");
pare; senao
escreva ("É de outro estado."); fimescolha fimalgoritmo
EXERCÍCIO/EXEMPLO
Escreva um algoritmo que leia um peso na Terra e o
número de um planeta e imprima o valor do seu peso
neste planeta. A relação de planetas é dada a seguir
juntamente com o valor das gravidades relativas à
Terra:
# Gravidade Planeta
1 0,37 Mercúrio
2 0,88 Venus
3 0,38 Marte
4 2,64 Júpiter
5 1,15 Saturno
6 1,17 Urano
Peso= Pterra* gravidade
10
ESTRUTURA DE REPETIÇÃO
São muito comuns as situações em que se deseja repetir uma ação ou um determinado trecho de um programa, certo número de vezes. Enquanto a condição for verdadeira, as instruções serão executadas.
Exemplo: Ações semanais de um ser humano, processamento da folha de pagamento de uma empresa.
ESTRUTURA DE REPETIÇÃO
Estas são conhecidas como: Laços ou Loops.
Laços condicionais:
Enquanto-faça
Repita-até
ESTRUTURA DE REPETIÇÃO
Estrutura do laço enquanto:
Enquanto <condição for verdadeira> faça
<comandos>
Fimenquanto
ESTRUTURA DE REPETIÇÃO
Estrutura do laço enquanto:
enquanto <condição for verdadeira> Faça
início
Comando 1;
Comando 2;
...
Comando n;
fim-enquanto
ESTRUTURA ENQUANTO
Recomendado quando o número de repetições for
desconhecido
É uma estrutura que testa a condição no início e só
repete se a condição for verdadeira
Flag, teste ou chave
Fala-se que é a mais poderosa estrutura de repetição
CONTINUAR EXEMPLO
Algoritmo enquanto1
real num;
imprima(“digite numero: \n”);
leia (num);
enquanto(num>0)
imprima (“digite numero: ”);
leia (num);
imprima(“o dobro do número”);
num *2;
fim enquanto;
fimAlgoritmo
ESTRUTURA DE REPETIÇÃO
Estrutura do laço repita:
repita
<comandos>
até <condição for verdadeira>
faça <comandos> enquanto <condição for verdadeira>
ESTRUTURA DE REPETIÇÃO
Estrutura do laço repita:
Repita
Início
Comando1;
Comando2;
...
Comando n;
até <condição for verdadeira>
ESTRUTURA FAÇA ENQUANTO, OU REPITA
ATÉ
Estrutura recomendada quando o número de
repetições for desconhecido, sendo necessário um teste
para interromper a repetição
Sua diferença em relação ao enquanto é que ela testa
ao final, significando que ela executa o código pelo
menos uma vez.
Muitos programadores nem fazem uso dessa estrutura,
pouco utilizada.
EXEMPLO
Algoritmo facaenquanto
var
int a;
imprima (“digite numero no intervalo 0 ate 10: ”);
leia (a);
faca
escreva(“\n”,a);
a++;
enquanto(a<10)
fimAlgoritmo
EXERCÍCIOS
Entrar com números e imprimir o triplo de cada número. O Algoritmo acaba quando entrar com o número -999.
Algoritmo
var
real num;
imprima(“\n digite numero ou -999. para terminar”);
leia(num);
enquanto(num< >-999)
{
imprima(“\ntriplo: ”,num*3);
imprima(“\n digite numero ou -999 para terminar”);
leia(num);
}
fimAlgoritmo
ESTRUTURA DE REPETIÇÃO
Laços contados:
Para-faça
Usado quando o número de repetições for conhecido durante a elaboração do algoritmo ou quando poder ser fornecido durante a execução
Ex. Criar um algoritmo que possa entrar com a nota de 20 alunos e imprimir a média da turma.
ESTRUTURA DE REPETIÇÃO
Estrutura do laço para:
Para <variável> de <início> até <final> faça
<comandos>
Fimpara
Estrutura do laço para:
para(valor inicial; <condição>; <valor de incremento>)
Comando1;
Comando2;
...
Comandon;
Fimpara
ALGORITMO MÉDIA DA TURMA
Algoritmo media20
var
real media, nota;
inteiro i;
media<-0;
i=0;
for(i de 1 ate 20 faca i<- i+1)
{
imprima(“Digite o valor de nota: “);
leia(nota);
media<-media + nota;
}
imprima(“A média da turma é: ”, media/20);
fimAlgoritmo
ESTRUTURA DE REPETIÇÃO Exemplo:
Para-faça Enquanto-faça Repita-até
algoritmo "semnome"
var
b,a,area:real;
i:inteiro;
inicio;
para i de 1 ate 5 faca
inicio
leia(b);
leia(a);
area<-b*a;
escreva(area);
fimpara
Fimalgoritmo
algoritmo "semnome"
var
b,a,area:real;
i:inteiro;
inicio
i<-1;
enquanto i <=5 faca
inicio
leia(b);
leia(a);
area<-b*a;
escreva(area);
i<-i+1;
fimenquanto
Fimalgoritmo
algoritmo "semnome"
var
b,a,area:real;
i:inteiro;
inicio
i<-1;
repita
inicio
leia(b);
leia(a);
area<-b*a;
escreva(area);
i<-i+1;
ate i<=5
Fimalgoritmo
EXERCÍCIO/EXEMPLO
Criar um algoritmo que imprima todos os números
pares no intervalo de 1-10
Algoritmo Par
var
;
for(i de xx ate 10 faca i<- i+1)
{
imprima(“ “);
}
fimAlgoritmo
Algoritmo transforma
var
inteiro f1, f2, dec, t;
real c;
imprima(“\n entre com a temperatura maior em Fahrenheit”);
leia(f1);
imprima(“\n entre com a temperatura menor em Fahrenheit”);
leia(f2);
imprima(“\n entre com decremento: ”);
leia(dec);
para(t<- f1; t>=f2; t<-t-dec)
{
c<-5* (t-32)/9;
imprima(“\n temperatura em graus Celsius”, C);
}
FimAlgoritmo
41
EXERCÍCIO:
VERIFICAR QUAL ESTRUTURA IDEAL
Criar um algoritmo que leia 20 números inteiros para que
possa ser impresso o maior e o menor número digitado.
Criar um algoritmo que leia números inteiros para que possa
ser impresso o maior e o menor número digitado até que o
usuário informe que o flag -1
Criar um algoritmo que leia idade e sexo (0 masculino e 1
feminino) de várias pessoas. Calcule e imprima a idade
média, total de pessoas do sexo feminino com idade entre 30-
45 inclusive e o número total de pessoas do sexo masculino. O
algoritmo termina quando se digita 0 para a idade.