0% acharam este documento útil (0 voto)
278 visualizações28 páginas

Aula 4 Algoritmo

Este documento apresenta estruturas de repetição como FOR, WHILE e REPEAT em algoritmos e programação. Inclui exemplos de como usar essas estruturas para ler dados de entrada repetidamente e calcular resultados.

Enviado por

Carlos Jazzco
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
278 visualizações28 páginas

Aula 4 Algoritmo

Este documento apresenta estruturas de repetição como FOR, WHILE e REPEAT em algoritmos e programação. Inclui exemplos de como usar essas estruturas para ler dados de entrada repetidamente e calcular resultados.

Enviado por

Carlos Jazzco
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 28

Algoritmo e Programao

ESTRUTURAS

DE REPETIO

Prof. Clotilde

ATIVIDADE

Estruturas de Repetio

Vamos criar um algoritmo que leia um nmero de 1 10 e apresente o clculo da tabuada do valor lido. O resultado deve ser apresentado como o exemplo abaixo:
Exemplo: 2x1=2 2x2=4 2x3=6 2x4=8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 205/05/2012 20 x 10 =

Soluo

algoritmo "tabuada" // Sntese // objetivo: tabuada de um valor // entrada: valor da tabuada // sada: valor calculado de 1 a 10 // Declaraes var numero : inteiro inicio escreva("Informe o nmero desejado: ") leia(numero) escreval(numero, " x 1 = ",(numero*1)) escreval(numero, " x 2 = ",(numero *2)) : : : : Algoritmo e Programao 2 escreval(numero, " x 10 = ",(numero *10)) fimalgoritmo

ESTRUTURAS DE REPETIO
PARA FAA Executar um conjunto de aes um nmero definido de vezes a partir da definio de limites fixos. Sintaxe: para <v> de <vi> ate <vf> passo <p> faca
comando 1 comando 2 ... comando n

fimpara
05/05/2012

v a varivel de controle vi o valor inicial de v vf o valor final de v p o valor do incremento dado varivel v
3

Algoritmo e Programao

Fluxograma: estrutura de repetio-PARA


vvi F

v<= vf
V Comando 1 Comando 2 ... vv+p

05/05/2012

Algoritmo e Programao

EXEMPLO
Algoritmo para calculo da mdia aritmtica de 50 nmeros
algoritmo "media" // Sntese // objetivo: calcular a mdia aritmtica para 50 nmeros // entrada: 50 nmeros // sada: mdia aritmtica dos 50 nmeros // Declaraes var numero, soma : real auxiliar : inteiro inicio soma 0 para auxiliar de 1 ate 50 passo 1 faca escreva("Informe o valor numrico: ") leia(numero) soma soma + numero fimpara escreva ("Mdia = ", soma / 50) Algoritmo e Programao 5 fimalgoritmo

05/05/2012

EXERCCIO PROPOSTO
Calcule o fatorial de um nmero usando a estrutura PARA...FAA, baseando-se na definio matemtica (N!=1x2x3x...x N-1 x N e 0!=1 por definio)

Faa um algoritmo que leia dois nmeros calcule o resultado da multiplicao de um pelo outro sem utilizar a operao de multiplicao (ou seja, utilizando apenas soma)

05/05/2012

Algoritmo e Programao

ESTRUTURAS DE REPETIO
ENQUANTO
Um conjunto de aes executado repetidamente enquanto uma determinada condio permanece vlida (verdadeira). Sintaxe do comando: Efetua um teste lgico antes enquanto (<condio>) faca de iniciar as instrues de comando 1 repetio (ou looping). O controle pode ser feito pelo usurio ou automaticamente por um contador.
05/05/2012

comando 2 ... comando n fimenquanto


7

Algoritmo e Programao

Fluxograma: estrutura de repetio-ENQUANTO

condio
V Comando 1 Comando 2 ... Comando n

05/05/2012

Algoritmo e Programao

EXEMPLO

Algoritmo para calculo da mdia aritmtica de 50 nmeros

algoritmo "media" // Sntese // objetivo: calcular a mdia aritmtica para 50 nmeros // entrada: 50 nmeros // sada: mdia aritmtica dos 50 nmeros // Declaraes var numero, soma : real contador : inteiro inicio soma 0 contador 0 enquanto (contador < 50) faca escreva("Informe o numrico desejado:") leia(numero) contador contador + 1 soma soma + numero fimenquanto escreva ("Mdia = ", soma / 50) 05/05/2012 Algoritmo e Programao fimalgoritmo

Exerccio Proposto
1) Faa um algoritmo que apresenta a menor altura entre de 10 pessoas , usando enquanto. 2) Sendo H = 1/1+1/2+1/3+ ... +1/N. Prepare um algoritmo para calcular H sendo N fornecido pelo usurio. 3) Elabore um algoritmo para calcular N! (fatorial de N) sendo que o valor inteiro de N fornecido pelo usurio. Sabe-se que: N!=1x2x...x N-1 x N e 0!=1. Use o enquanto...faa.

05/05/2012

Algoritmo e Programao

10

Exerccio Proposto
Desafio Faa um algoritmo que receba o sexo e a nota dos alunos de uma classe e apresente a mdia das notas dos alunos e a mdia das notas das alunas. O algoritmo dever apresentar os resultados solicitados quando for fornecida uma nota negativa.

05/05/2012

Algoritmo e Programao

11

ESTRUTURAS DE REPETIO
REPITA Repetio com teste condicional ao final;

Um conjunto de aes executado at que uma determinada condio seja VERDADEIRA;


Ao menos uma vez sempre ser executado o bloco de repetio. Sintaxe do comando:
repita
comando 1 comando 2 ::: comando n
05/05/2012

ate (<condio>)

A utilizao de uma estrutura repita...ate no lugar de uma estrutura enquanto...faca, corresponde a utilizar como <condio> para o repita a negao da <condio> para o enquanto...faca.
12

Algoritmo e Programao

Fluxograma: estrutura de repetio REPITA...

Comando 1 Comando 2

...
Comando n

Condio
V

05/05/2012

Algoritmo e Programao

13

EXEMPLO

Algoritmo para calculo da mdia aritmtica de 50 nmeros

algoritmo "media" // Sntese // objetivo: calcular a mdia aritmtica para 50 nmeros // entrada: 50 nmeros // sada: mdia aritmtica dos 50 nmeros // Declaraes var numero, soma : real contador : inteiro inicio soma 0 contador 0 repita escreva("Informe o numrico desejado:") leia(numero) contador contador + 1 soma soma + numero ate (contador >= 50) escreval(" Media = ", soma/50) Programao 05/05/2012 Algoritmo e fimalgoritmo

14

Exerccios de Fixao
4) Elabore um algoritmo que apresenta as compras de frutas efetuadas por usurio (quantidade de frutas para cada tipo), sendo elas identificadas por meio de um nmero.
1 => ABACAXI 2 => MAA 3 => PERA

Usando a instruo repita...ate identifique quais as frutas desejadas por seu usurio, lembrando que ele pode desejar somente um tipo de fruta ou mais que um. Deve existir o cuidado na identificao correta das frutas, pois o feirante s possui estes trs tipos. Caso o usurio escolha uma fruta no existente deve ser notificado que a fruta no esta disponvel e a solicitao deve ser feita novamente sobre qual fruta ele deseja.
05/05/2012 Algoritmo e Programao 15

Exerccios de Fixao
5) Altere os exerccios anteriores, que so apresentados a seguir, elaborando-os na estrutura para...faca, ao invs de enquanto...faca, caso isso seja possvel.
a) Faa o algoritmo que apresenta o menor nmero, considerando a menor de 10 alturas.
b) Sendo H = 1 + 1/2 + 1/3 + ... + 1/N, prepare uma algoritmo para calcular o resultado da srie (H), sendo N fornecido pelo usurio.
05/05/2012 Algoritmo e Programao 16

CARACTERSTICAS DE CADA ESTRUTURA DE REPETIO


ESTRUTURA
Enquanto Repita Para

Condio Quantidade Condio de de trmino de execues existncia/repetio


Incio Final Incio

?
Mnimo 1 (vfvi+p) div p

Condio verdadeira Condio falsa v < vf


ou

v > vf
05/05/2012 Algoritmo e Programao 17

Estruturas de Repetio: caractersticas


As estruturas de repetio (enquanto e repita) podem utilizar:

Uma varivel auxiliar que funciona como contador de quantas vezes ser executado o conjunto de comandos
Uma varivel que seja utilizada como resposta, permitindo que o algoritmo seja executado at o valor da resposta ser coerente com um valor desejado (essa varivel muitas vezes chamada de flag ou sentinela). As estruturas de repetio (enquanto e repita) podem utilizar:
05/05/2012 Algoritmo e Programao 18

EXEMPLOS - enquanto
CONTADOR
CONTROLADO PELO USURIO
algoritmo "automtico" algoritmo "pelo_usurio" // Sntese // Sntese // Objetivo: ler 5 nomes // Objetivo: ler os nomes informados // Entrada : nomes // Saida : confirmao da quantidade // Entrada: nomes // Sada: confirmao de leitura // dos nomes lidos // Declaraes // Declaraes var var nome : caracter nome : caracter contador : inteiro inicio inicio nome "XXX" contador 0 enquanto (nome <> "FIM") faca enquanto (contador < 5) faca escreva(" Nome = ") escreva(" Nome = ") leia(nome) leia(nome) contador contador + 1 fimenquanto fimenquanto escreval("Ultimo nome lido = ",nome) escreval(contador," nomes lidos") fimalgoritmo 05/05/2012 Algoritmo e Programao 19 fimalgoritmo

EXEMPLOS - repita
CONTADOR
CONTROLADO PELO USURIO
algoritmo "automtico" algoritmo "pelo_usurio" // Sntese // Sntese // Objetivo: ler 5 nomes // Objetivo: ler os nomes informados // Entrada : nomes // Saida : confirmao da quantidade // Entrada: nomes // Sada: confirmao de leitura // dos nomes lidos // Declaraes // Declaraes var var nome : caracter nome : caracter contador : inteiro inicio inicio repita contador 0 escreva(" Nome = ") repita leia(nome) escreva("Nome = ") leia(nome) ate (nome = "FIM") contador contador + 1 escreval("Ultimo nome lido =",nome) ate (contador >= 5) fimalgoritmo escreval(contador," nomes lidos") 05/05/2012 Algoritmo e Programao 20 fimalgoritmo

Exerccios de Fixao
6) Um mercador quer fazer um aumento em todos os seus produtos de 10%. Faa diferentes algoritmos (um para cada estrutura de repetio) que leia a identificao e o preo de cada produto e calcule e escreva a identificao e o novo preo aps o aumento.
Considere as seguintes situaes: a) o mercador informa o nmero de produtos que possui antes de entrar com o preo dos produtos b) o mercador informa produto a produto e voc deve perguntar se tem mais algum produto a ser calculado o aumento c) o preo do ltimo produto fornecido pelo mercador -1
05/05/2012 Algoritmo e Programao 21

Exerccios de Fixao
7) Uma pesquisa sobre algumas caractersticas fsicas da populao de uma determinada regio coletou os seguintes dados, referentes a cada habitante: a)sexo (masculino, feminino); b)cor dos olhos (azuis, verdes, castanhos, pretos); c)cor dos cabelos (loiros, castanhos, pretos); d)idade em anos. Para indicar fim dos habitantes pesquisados, o usurio fornecer um habitante fictcio com idade igual a 1. Fazer um algoritmo que determine e escreva: a) a maior idade dos habitantes pesquisados; b) a porcentagem de indivduos do sexo feminino cuja idade est entre 18 e 35 anos inclusive e que tenham olhos verdes e cabelos loiros.
05/05/2012 Algoritmo e Programao 22

Interrupo abrupta da estrutura de repetio


As estruturas de repetio podem ser interrompidas por um comando dentro do seu corpo, independente da sua condio de existncia. Este tipo de interrupo deve ser tratada com um caso excepcional, pois esta lgica pode ser normalmente substituda por uma lgica melhor elaborada. Sintaxe do comando: :
<instruo de repetio>

comando 1 interrompa
05/05/2012

<instruo de encerramento da repetio> : Algoritmo e Programao

23

Interrupo na repetio para...faca


Interrupo na estrutura de repetio para...faca
para v de vi ate vf passo p faca comando 1 ::: Interrompe o para...faca interrompa independente do valor da varivel de controle (v) ::: comando n fimpara

05/05/2012

Algoritmo e Programao

24

Interrupo na repetio enquanto...faca


Interrupo na estrutura de repetio enquanto...faca

enquanto (<condio>) faca


comando 1 ::: interrompa ::: comando n
Interrompe o enquanto...faca independente da condio existente no comando

fimenquanto

05/05/2012

Algoritmo e Programao

25

Interrupo na repetio repita...ate


Interrupo na estrutura de repetio repeti...ate

repita
comando ::: interrompa ::: comando n
Interrompe o repita...ate independente da condio do comando

ate (<condio>)

05/05/2012

Algoritmo e Programao

26

Exerccios de Fixao
8) Fazer um algoritmo que leia nmeros inteiros at que a
quantidade lida seja 100 ou at que seja lido um nmero negativo e mostrar a quantidade total de nmeros lidos. 9) Fazer um programa que calcule e escreva a soma dos n primeiros termos da srie: 480 475 + 470 465 + ... 10 11 12 13 10) Voc foi escolhido para fazer um algoritmo para informar o
vencedor de um concurso de piadas. Estaro concorrendo ao prmio 3 finalistas,cujos nomes sero fornecidos. A quantidade de juizes ser definida no dia da apurao e cada juiz votar nos trs candidatos informando o nome e nota de 0 (zero) a 100(cem). O algoritmo dever apresentar o nome e o total de pontos de cada concorrente e o nome e total de pontos do vencedor aps o e Programao 05/05/2012 Algoritmo voto de todos os juizes 27

Referncia de Criao e Apoio ao Estudo


Material para Consulta e Apoio ao Contedo
Universidade Catlica de Braslia - site www.ucb.br/programar (escolha a opo Algoritmo) FARRER, H. et all, Algoritmos Estruturados, Editora LTC, 3a . edio, 1999. - livro Captulo 1 MANZANO, J. e Oliveira, J., Algoritmos, Lgica para desenvolvimento de programao, Editora tica, 1996. Captulo 5

05/05/2012

Algoritmo e Programao

28

Você também pode gostar