Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf

EnioFilho 68 views 38 slides Jun 29, 2023
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

Aula de Algoritmos (4)


Slide Content

Aula 04
Estruturas de Repetição
Ênio Prates Vasconcelos Filho
Faculdades Alfa

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Tópicos
ΔEstruturasdeRepetição:
•Enquanto...faca
•Repita...ate_que

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Algoritmo da Amizade

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Conhecimentos atuais
ΔDesenvolvaumalgoritmoqueleiaaidadedeumapessoa5vezeseacada
vez,multipliqueessaidadepor2.Imprimanatelaaidademultiplicadaa
cadavezemqueécalculada.
programaPEDE_NÚMERO
var
X:inteiro
R:inteiro
inicio
leia X
R<-X*2
escreva (R)
leia X
R<-X*2
escreva (R)
leia X
R<-X*2
escreva (R)
leia X
R<-X*2
escreva (R)
leia X
R<-X*2
escreva (R)
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Conhecimentos Atuais
ΔParaestescasosexistemcomandosapropriadosparaefetuara
repetiçãodedeterminadostrechosdeprogramasonúmerodevezes
quefornecessário;
ΔAprincipalvantagemdesterecursoéqueoprogramapassaaterum
tamanhomenor,podendosuaamplitudedeprocessamentoseraumentada
semalterarotamanhodocódigodeprogramação;
ΔDestaforma,podem-sedeterminarrepetiçõescomnúmerosvariadosde
vezes;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Estrutura de Repetição

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Estruturas de Repetição
ΔExistemsituaçõesondeénecessáriorealizarummesmocomandodiversas
vezes,enquantodurarumacondição;
ΔAtéomomento,quandoexisteanecessidadederepetiruma(oumais)
instruções,aúnicasaídaérepetiro(s)comando(s);
ΔTalsoluçãoéineficienteconsiderandoquequantomaioronúmerode
repetiçõesmaiorseráonúmerodeinstruções;
•Ex.:Escreverumalgoritmoqueexibanatelaafrase“Palmeiraséomaior
campeãoBrasileiro”300vezes;
ΔSolução:Utilizarestruturasderepetição;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Estruturas de Repetição
ΔSãoestruturassintáticasquepermitemqueumtrechodealgoritmo(lista
decomandos)sejarepetidoemumdeterminadonúmerodevezes(tantas
quantonecessário);
ΔEmPortugol,temostrêsestruturasderepetição:repita...ate_que,
enquanto...facaepara...faca;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...faca
ΔNestaestrutura,arepetiçãodeumadeterminadalistadeinstruçõesestá
condicionadaaumaanáliselógicadeumacondição(similaraestruturaSE);
ΔAexecuçãodalistadeinstruçõesserepetiráatéqueasaídalógicada
condiçãoresulteemfalso.
ΔCUIDADOparanãoconfundirestanovaestruturacomaestruturade
decisão“se”:
•Aquiexisteumretornoàcondiçãoapósaexecuçãodoblocode
operações,atéqueacondiçãosetornefalsa;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...faca
ΔNestaestrutura,umaexpressãológicaéavaliada:
•Seamesmaforverdadeira,umalistadecomandoséexecutada;
ΔAexecuçãodalistaserepetiráatéqueaavaliaçãodacondiçãoresulteem
FALSO;
ΔUtilizamosaspalavrasreservadasenquantoefacaparaformarolaçode
repetição;
ΔFormageral:
enquanto(condição)faca
//listadeinstruções
fim_enquanto

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔCaracteriza-seporumaestruturaqueefetuaumtestelógiconoinício
deumlooping;
ΔEssaestruturaverificaseépermitidoexecutarotrechodeinstruções
dentrodesselooping.
ΔAestruturaemquestãoédenominadadeenquanto;
ΔSeuconjuntodeinstruçõesé:enquanto...faça...fim_enquanto.
ΔOseufuncionamentoécontroladopelaverificaçãodacondiçãoinicial:
•Sendoassim,poderáexecutarumdeterminadoconjuntodeinstruções
enquantoacondiçãoverificadaforVerdadeira;
•Napróximaverificação,quandoestacondiçãosetornaFalsa,o
processamentodarotinaédesviadoparaforadolooping;
•SeacondiçãoforFalsalogodeinício,asinstruçõescontidasnoloopingnão
serãorealizadas;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto..faca
ΔAlgoritmoqueescreveosnúmerosentre1e10:
Solução:
programaMostra10
varnumero:inteiro
inicio
numero<-1
enquanto(numero<=10)faca
escreva(numero)
numero<-numero+1//contador
fim_enquanto
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔDesenvolvaumalgoritmoqueleiaaidadedeumapessoa5vezeseacada
vez,multipliqueessaidadepor3.Imprimanatelaaidademultiplicadaa
cadavezemqueécalculada(useestruturasderepetição!).
ΔSolução:
Algoritmo
1.Criarumavariávelparaservircomocontadorcomvalorinicial1;
2.Enquantoovalordocontadorformenorouiguala5,processarospassos
3,4e5;
3.LerumvalorparaavariávelX;
4.EfetuaramultiplicaçãodovalordeXpor3,atribuindooresultadoemR;
5.ApresentarovalorcalculadocontidonavariávelR;
6.Acrescentar+1avariáveldotipocontador,definidanopasso1;
7.Quandocontadorformaiorque5,encerraroprocessamentodolooping.

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔDesenvolvaumalgoritmoqueleia
aidadedeumapessoa5vezesea
cadavez,multipliqueessaidade
por3.Imprimanatelaaidade
multiplicadaacadavezemqueé
calculada(useestruturasde
repetição!).
ΔSolução(diagramadeBlocos)

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔDesenvolvaumalgoritmoqueleiaaidadedeumapessoa5vezeseacada
vez,multipliqueessaidadepor3.Imprimanatelaaidademultiplicadaa
cadavezemqueécalculada(useestruturasderepetição!).
ΔSolução:
programaLOOPING_lA
var
X,R:inteiro
CONT:inteiro
inicio
CONT <-1
enquanto (CONT <= 5) faca
leia X
R<-X* 3
escreva R
CONT <-CONT + 1
fim_ enquanto
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔExemploII:Desenvolvaumalgoritmoquefaçadamesmaformaqueo
anterior,masquesóparaaexecuçãoquandoousuárioquiser;
ΔSolução:
Algoritmo
1-Criarumavariávelparaserutilizadacomoresposta;
2-Enquantoarespostafor“sim”,executarospassos3,4e5;
3-LerumvalorparaavariávelX;
4-EfetuaramultiplicaçãodovalordeXpor3,implicandooresultadoem
R;
5-ApresentarovalorcalculadocontidonavariávelR;
6-Quandoarespostafordiferentede“sim”,encerraroprocessamento.

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔExemploII:Desenvolvaumalgoritmoquefaçadamesmaformaqueo
anterior,masquesóparaaexecuçãoquandoousuárioquiser;
ΔSolução:
programaLOOPING_lB
var
X,R:inteiro
RESP:caractere
inicio
RESP<-"SIM"
enquanto (RESP = "SIM" ) faca
leia X
R<-X* 3
escreva R
escreva "Deseja continuar ?"
leia RESP
fim_enquanto
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔVejaqueocontadorfoisubstituídopelavariávelRESP,queenquanto
foriguala"SIM"executaráarotinaexistenteentreasinstruções
enquantoefim_enquanto.
ΔNestecaso,onúmerodevezesquearotinairáserepetirserá
controladopelousuárioeseráencerradasomentequandoalguma
informaçãodiferentede"SIM"forfornecidaparaavariávelRESP;
ΔObserveque,paraqueo“loop”fosseexecutadonaprimeiravez,avariável
RESPtevequeser“inicializada”comovalor“SIM”;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca –Para vocês
ΔFaçaumalgoritmoquelênúmerosinteiroseescreveodobrodecadaum.
Quandoumnúmeronegativofordigitado,oalgoritmodeveráparardeler
números.
ΔSolução:
programacom_Enquanto
varnumero:real
inicio
leia(numero)
enquanto(numero>=0)faca
escreva(numero*2)
leia(numero)
fim_enquanto
Fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔAtenção:Cuidadocomlaçosinfinitos!Devemosnoscertificarqueem
algummomentoaexpressãológicapróximaapalavrareservadaateserá
FALSA!

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca
ΔAlgoritmocomlaçoinfinito:
programalacoInfinito
varcontador:inteiro
inicio
contador<-1
enquanto(contador>=1)faca
contador<-1
escreva(contador)
contador<-contador+1
Fim_enquanto
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca –para vocês
ΔFaçaumalgoritmoquerecebanúmerosinteirose,enquantoumnúmero
negativonãofordigitado,verificasecadanúmeroémenorque5;
ΔFaçaumalgoritmoquesemprerecebenúmerospares.Casorecebaum
númeronúmerosímpar,suaexecuçãodeveráserencerrada;
ΔFaçaumalgoritmoquerecebaváriosnúmerosinteiros(enquantoo
número‐100nãofordigitado.Omesmodeveráexibiromaiornúmero
digitado;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Enquanto...Faca –Para vocês
ΔDesafio:
•Façaumalgoritmoquelêaidadedeváriaspessoas,atéqueumaidadenegativaseja
digitada.Oalgoritmodeverácalculareexibiraquantidadedepessoas,deacordo
comasfaixasetáriasapresentadasnatabelaabaixo:
FAIXA ETÁRIA IDADE
1ª <= 15 anos
2ª Acima de 15 anos

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔNestaestrutura,todasasinstruçõessãoexecutadaseumaexpressãológica
éavaliada;
ΔIstoserepeteatéqueaavaliaçãodacondiçãoresulteemFALSO;
ΔCadarepetiçãodalistadeinstruçõescontidasnaestruturaéchamadade
iteração;
ΔAestruturaRepita...atetambéméconhecidacomolaçoderepetição;
ΔNessaestrutura,ocódigointernoaelaSEMPREéexecutado,aomenos
umavez:
•Issoporqueacondiçãodevalidaçãosóéchecadanofinaldobloco;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔUtilizamosaspalavrasreservadasrepitaeate_queparaformarolaçode
repetição;
ΔFormageral:
repita
//Listadeinstruções
ate_queexpressãológica
ΔParaaestruturarepita,umconjuntodeinstruçõeséexecutadoenquantoa
condiçãosemantémFalsaeatéqueelasejaVerdadeira;

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔExemplo:
•PediraleituradeumvalorparaavariávelX,multiplicaressevalorpor
3,atribuindo-oàvariávelderespostaR,eapresentarovalorobtido,
repetindoestasequênciaporcincovezes:
ΔSolução:
•Primeiro,montamosumalgoritmopararesoluçãodasolicitação:
Algoritmo
•1-Criarumavariávelcontador;
•2-LerumvalorparaavariávelX;
•3-EfetuaramultiplicaçãodovalordeXpor3,atribuindooresultadoem
R;
•4-ApresentarovalorcalculadocontidonavariávelR;
•5-Acrescentarumaocontador;
•6-Repetirospassos2,3,4e5atéqueocontadorsejamaiorque5.

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔExemplo(Parte2):
•Montamosodiagramadeblocos:

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔAgora,oprograma:
programaLOOPING_2A
var
X,R:inteiro
CONT:inteiro
inicio
inicio
CONT<-1
repita
leiaX
R<-X*3
escrevaR
CONT<-CONT+1
ate_que(CONT>5)
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔExemploII:Desenvolvaumalgoritmoquefaçadamesmaformaqueo
anterior,masquesóparaaexecuçãoquandoousuárioquiser;
ΔSolução:
1.Iniciaroprogramaeomododelaçorepita;
2.LerumvalorparaavariávelX;
3.EfetuaramultiplicaçãodovalordeXpor3,atribuindooresultadoemR;
4.ApresentarovalorcalculadocontidonavariávelR;
5.Solicitardousuárioseestedesejaounãocontinuaroprograma;
6.Repetirospassos2,3,4e5atéquearespostadousuáriosejanão.

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔExemploII:Desenvolvaumalgoritmoquefaçadamesmaformaqueo
anterior,masquesóparaaexecuçãoquandoousuárioquiser;
ΔSolução:
programaLOOPING_2B
Var
X,R:inteiro
RESP:inteiro
inicio
repita
leiaX
R<-X*3
escreva R
escreva "deseja continuar?"
leia RESP
ate_que(RESP <> "SIM" )
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que–Para Vocês
ΔEscrevaumalgoritmoqueimprimaosnúmerosde1a10natela,usandolaçosde
repetição;
ΔSolução:
programaMostra10
varnumero:inteiro
inicio
numero<-1
repita
escreva(numero)
numero<-numero+1//contador
ate_quenumero>10
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que–Para Vocês
ΔEscrevaumalgoritmoqueimprimaosnúmerosPARESentre1e10:
ΔSolução:
programaMostra10
varnumero:inteiro
inicio
numero<-1
repita
se((numero%2)=0)entao
escreva(numero)
fim_se
numero<-numero+1//contador
ate_quenumero>10
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔAtenção:Cuidadocomlaçosinfinitos!Devemosnoscertificarqueem
algummomentoaexpressãológicapróximaapalavrareservadaateserá
FALSA!

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔAlgoritmocomumlaçoinfinito:
programalacoInfinito
varcontador:inteiro
inicio
contador<-1
repita
escreva(contador)
contador<-contador+1
ate_quecontador=1
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Repita...ate_que
ΔAlgoritmocomummenu:
programamenu
varopcao:inteiro
inicio
repita
escreva(“CadastrodeClientes”)
escreva(“1-Incluir”)
escreva(“2-Alterar”)
escreva(“3-Consultar”)
escreva(“4-Excluir”)
escreva(“5-Sair”)
leia(opcao)
ate_queopcao=5
fim

I
t
e
n
s
B
á
s
i
c
o
s
ALGORITMOS -02/2015 –ÊNIO FILHO
Exercícios
ΔEscrevaumalgoritmoquesomeosnúmerosentre1e10,escrevendoo
resultadofinal;
ΔFaçaumalgoritmoquerepita10vezesaseguintefrase:ACBFéuma
vergonha!
ΔFaçaumalgoritmoquelênúmerointeirosatéqueumnúmeronegativo
sejadigitado;
ΔFaçaumalgoritmoquelêaidadede15pessoasemostreaquantidadede
pessoasquepossuiaidadeentre0e12anos;

DÚVIDAS?
Contatos:
E-mail: [email protected]
Skype: eniopvf
Twitter: eniopvf
Bibliografia:
•MANZANO,JoséAugustoN.G.;OLIVEIRA,JayrFigueiredode.Algoritmos:lógicapara
desenvolvimentodeprogramaçãodecomputadores.18ª.ed.SãoPaulo:Érica,2006.236p.ISBN
857194718;
•FORBELLONE,AndréLuizVillar;EBERSPACHER,HenriFrederico.Lógicadeprogramação:aconstrução
dealgoritmoseestruturasdedados.3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195p.ISBN
9788576050247;
Tags