Aula 4 Algoritmo
Aula 4 Algoritmo
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
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
Algoritmo e Programao
condio
V Comando 1 Comando 2 ... Comando n
05/05/2012
Algoritmo e Programao
EXEMPLO
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;
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
Comando 1 Comando 2
...
Comando n
Condio
V
05/05/2012
Algoritmo e Programao
13
EXEMPLO
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
?
Mnimo 1 (vfvi+p) div p
v > vf
05/05/2012 Algoritmo e Programao 17
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
comando 1 interrompa
05/05/2012
23
05/05/2012
Algoritmo e Programao
24
fimenquanto
05/05/2012
Algoritmo e Programao
25
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
05/05/2012
Algoritmo e Programao
28