Upload
denivaldo-prates
View
47
Download
6
Embed Size (px)
Citation preview
INFORMÁTICA APLICADAINFORMÁTICA APLICADAINFORMÁTICA APLICADAINFORMÁTICA APLICADAAULA 05 AULA 05 AULA 05 AULA 05 –––– ALGORITMOSALGORITMOSALGORITMOSALGORITMOS
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
CURSO: Bacharelado em Ciências e Tecnologia
AULA 05 AULA 05 AULA 05 AULA 05 –––– ALGORITMOSALGORITMOSALGORITMOSALGORITMOS
ProfProfProfProfª Danielle Casilloª Danielle Casilloª Danielle Casilloª Danielle Casillo
ESTRUTURA DE REPETIÇÃO
� Nos exemplos e exercícios que vimos até agorasempre foi possível resolver os problemas comuma sequência de instruções onde todas eramnecessariamente executadas uma única vez.
Aula 05 - Algoritmos
necessariamente executadas uma única vez.
� Os algoritmos que escrevemos seguiam, portanto,apenas uma sequência linear de operações.
2
ESTRUTURA DE REPETIÇÃO
Aula 05 - Algoritmos
� Por exemplo, um algoritmo para ler os nomes e asnotas das provas de três alunos da UFERSA ecalcular suas médias finais. Uma possível soluçãoseria repetir o trecho de código do algoritmo três
3
seria repetir o trecho de código do algoritmo trêsvezes.
VISUALGVISUALGVISUALGVISUALG
ESTRUTURA DE REPETIÇÃO
Aula 05 - Algoritmos
� A solução dada é viável apenas para uma turmade poucos alunos; para uma turma de 50 alunos,a codificação da solução seria por demaistrabalhosa.
4
trabalhosa.
� Agora, veremos um conjunto de estruturassintáticas que permitem que um trecho de umalgoritmo (lista de comandos) seja repetido umdeterminado número de vezes, sem que o códigocorrespondente tenha que ser escrito mais deuma vez.
ESTRUTURA DE REPETIÇÃO
� O Algoritmo possui três estruturas de repetição:
� repitarepitarepitarepita ............ ateateateate
�enquantoenquantoenquantoenquanto ............ facafacafacafaca
�paraparaparapara ............ facafacafacafaca
Aula 05 - Algoritmos
�paraparaparapara ............ facafacafacafaca
5
COMANDO REPITA ... ATEREPITA ... ATEREPITA ... ATEREPITA ... ATE
Aula 05 - Algoritmos
� Uma estrutura de repetição é utilizada quando umtrecho do algoritmo ou até mesmo o algoritmointeiro precisa ser repetido. O número derepetições pode ser fixo ou estar atrelado a uma
6
repetições pode ser fixo ou estar atrelado a umacondição.
� Sua forma geral é:
repitarepitarepitarepita
<lista de comandos>
ate ate ate ate <expressão lógica ou relacional>
COMANDO REPITA ... ATEREPITA ... ATEREPITA ... ATEREPITA ... ATE
� Algoritmo para ler os nomes e as notas das provasde 50 alunos da UFERSA e calcular suas médiasfinais. Uma possível solução é utilizar o comandorepita.
Aula 05 - Algoritmos
repita.
VISUALGVISUALGVISUALGVISUALG
7
COMANDO REPITA ... ATEREPITA ... ATEREPITA ... ATEREPITA ... ATE
Aula 05 - Algoritmos
� Existem diversas maneiras de implementar omesmo laço, mas todo laço com variável decontrole deve conter:
a)a)a)a) inicializaçãoinicializaçãoinicializaçãoinicialização da variável de controle;
8
a)a)a)a) inicializaçãoinicializaçãoinicializaçãoinicialização da variável de controle;
b)b)b)b) incrementoincrementoincrementoincremento (aumento do valor da variável decontrole) ouououou decrementodecrementodecrementodecremento (diminuição do valor davariável de controle) da variável de controle; e
c)c)c)c) testetestetesteteste dededede valorvalorvalorvalor dadadada variávelvariávelvariávelvariável dededede controlecontrolecontrolecontrole....
COMANDO REPITA ... ATEREPITA ... ATEREPITA ... ATEREPITA ... ATE
Aula 05 - Algoritmos
Algoritmo que escreve os números de 1 a 10.
algoritmo "algoritmo "algoritmo "algoritmo "RepeticaoRepeticaoRepeticaoRepeticao""""varvarvarvari: inteiroi: inteiroi: inteiroi: inteiro
9
i: inteiroi: inteiroi: inteiroi: inteiroinicioinicioinicioinicioi <i <i <i <---- 1111repitarepitarepitarepitaescreva (i)escreva (i)escreva (i)escreva (i)i <i <i <i <---- i + 1i + 1i + 1i + 1ate i > 10ate i > 10ate i > 10ate i > 10fimalgoritmofimalgoritmofimalgoritmofimalgoritmo
COMANDO REPITA ... ATEREPITA ... ATEREPITA ... ATEREPITA ... ATE
Aula 05 - Algoritmos
� No exemplo anterior, a variável iiii controlacontrolacontrolacontrola oooonúmeronúmeronúmeronúmero dededede repetiçõesrepetiçõesrepetiçõesrepetições dodododo laçolaçolaçolaço.... Normalmente, avariável de controle do laço receberecebereceberecebe umumumum valorvalorvalorvalorinicialinicialinicialinicial, é incrementadaincrementadaincrementadaincrementada (ou decrementadadecrementadadecrementadadecrementada) de umvalor constante no laço e tem seu valor testado
10
valor constante no laço e tem seu valor testadono final do laço.
� Ao chegar a um determinado valor, o laço éinterrompido. A inicialização da variávelcontadora deve acontecer fora do laço, antes doseu início.
COMANDO REPITA ... ATEREPITA ... ATEREPITA ... ATEREPITA ... ATE
Aula 05 - Algoritmos
algoritmo "DecrementoNumerosPares"vari: inteiro
Algoritmo que escreve os números pares de 10 a 2.
11
i: inteiroinicioi <- 10repitaescreva (i)i <- i - 2ate i = 0fimalgoritmo
COMANDO REPITA ... ATEREPITA ... ATEREPITA ... ATEREPITA ... ATE
� Um cuidado fundamental que o construtor doalgoritmo deve ter é o de certificar-se que acondição para que sejam mantidas as iteraçõestorne-se, em algum momento, falsa, para que o
Aula 05 - Algoritmos
torne-se, em algum momento, falsa, para que oalgoritmo não entre em um laço infinito.
12
COMANDO REPITA ... ATEREPITA ... ATEREPITA ... ATEREPITA ... ATE
� Exemplo: laço infinito
Aula 05 - Algoritmos
algoritmo "laçoInfinito"varcontador: inteiro
13
contador: inteiroiniciorepitacontador <- 1escreva (contador)contador <- contador + 1ate contador = 10fimalgoritmo
EXERCÍCIOS
Aula 05 - Algoritmos
1. Faça um algoritmo (fluxograma e portuguêsestruturado) para calcular a área de umtriângulo, que não permita a entrada de dadosinválidos, ou seja, medidas menores ou iguais a0 (zero).
14
0 (zero).
area_triângulo = (base * altura)/2
FLUXOGRAMA
Aula 05 - Algoritmos
base
base, altura, area
base >= 0
inicio
não
15
area
area <- (base * altura) / 2
base >= 0
fim
altura
altura >= 0
sim
sim
não
PORTUGUÊS ESTRUTURADO
Aula 05 - Algoritmos
algoritmo "Área_triângulo"varbase, altura, area: realiniciorepitaescreva ("Digite a base do triângulo: ")
16
escreva ("Digite a base do triângulo: ")leia (base)ate base >= 0repitaescreva ("Digite a altura do triângulo: ")leia (altura)ate altura >= 0area <- (base * altura)/2escreva ("A área do triângulo é: ", area)fimalgoritmo
EXERCÍCIOS
2. Faça um algoritmo (fluxograma e portuguêsestruturado) que peça a leitura para uma variávelXXXX, multiplicar este valor por 3333, e mostrar oresultado na variável RRRR, este algoritmo deve
Aula 05 - Algoritmos
resultado na variável RRRR, este algoritmo deverepetir esta sequência por 5555 vezes.
17
EXERCÍCIOS
� Faça um algoritmo (fluxograma e portuguêsestruturado) que peça a leitura para uma variávelXXXX, multiplicar este valor por 3333, e mostrar oresultado na variável RRRR, este algoritmo deve agora
Aula 05 - Algoritmos
resultado na variável RRRR, este algoritmo deve agoraconsiderar que o usuário deverá encerrar oprocessamento quando desejar.
18
FLUXOGRAMA
Aula 05 - Algoritmos
resp<- “sim”
X, R, resp
X
inicio
19
X
R <- X * 3
R
resp <> “sim”
fim
“Deseja continuar?”
sim
não