Estrutura Condicional Se, Laços de repetição
Estrutura de Condição, Escolha e
Repetição
Profª Fabíola Gonçalves C. Ribeiro
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
Validação e Verificação
Solução 1
Algoritmo inversoAbsoluto
Solução 2
var
Algoritmo inversoAbsoluto
real: numero, inverso, absoluto;
var
escreva(“digite número: ”);
real: numero;
leia(numero);
escreva(“digite número: ”);
se(numero>0) entao
leia(numero);
inverso <- 1/numero;
se(numero>0) entao
escreva(“inverso: ”, inverso);
escreva(“inverso: ”, 1/numero);
fimse
fimse
senao
senao
absoluto<-numero*(-1);
escreva(“\n absoluto:”,(numero)*-1);
//ou absoluto <- abs(numero);
fimsenao
escreva(“\n absoluto: ”, absoluto);
fimAlgoritmo
fimsenao
fimAlgoritmo
A saída é a mesma, mas na solução 2 há economia de memória
EXERCÍCIO/EXEMPLO
 Ler
dois números diferentes e dizer
qual deles é o menos
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
Loops.
 Laços
são conhecidas como: Laços ou
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
VALOR DE INCREMENTO

a++;
a<-a+1;

x--;
x<-x-1;

O identificador tem que ser do tipo inteiro
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
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
Enquanto-faça
Repita-até
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 3045 inclusive e o número total de pessoas do sexo masculino. O
algoritmo termina quando se digita 0 para a idade.
Download

2. revisao estrutura..