Aula 05 - Algoritmos - UFERSA · ESTRUTURA DE REPETIÇÃO ... cc))c) testetestede ... triângulo,...

19
INFORMÁTICA APLICADA INFORMÁTICA APLICADA INFORMÁTICA APLICADA INFORMÁTICA APLICADA AULA 05 AULA 05 AULA 05 AULA 05 ALGORITMOS ALGORITMOS ALGORITMOS ALGORITMOS UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia AULA 05 AULA 05 AULA 05 AULA 05 ALGORITMOS ALGORITMOS ALGORITMOS ALGORITMOS Prof Prof Prof Profª Danielle Casillo ª Danielle Casillo ª Danielle Casillo ª Danielle Casillo

Transcript of Aula 05 - Algoritmos - UFERSA · ESTRUTURA DE REPETIÇÃO ... cc))c) testetestede ... triângulo,...

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