estruturas de repetição · para ← ate ... expoente) e retorne como resultado a potencia do...
Post on 03-Dec-2018
227 Views
Preview:
TRANSCRIPT
Estruturas de Repetição
Lógica de Programação
Prof. Kleber Rezende
Considerações Iniciais
Uma das principais características
que consolidaram o sucesso na
utilização dos computadores para a
resolução de problemas foi a sua
capacidade de repetir o processa-
mento de um conjunto de opera-
ções para grandes quantidades de
dados.
Considerações Iniciais
Por exemplo, conside que uma determinada
loja de calçados efetue uma venda no
crediário para um cliente que ainda não esteja
registrado em seu sistema.
Para realizar essa venda, é necessário
cadastrar o cliente, solicitando informações
básicas como: nome, endereço, CPF, RG,
lojas do comércio onde já possui crédito, etc.
Considerações Iniciais
Estas etapas para realizar o cadastro,
seguirão sempre a mesma ordem para cada
novo cliente que aparecer na loja.
Caso seja necessário desenvolver um sistema
para efetuar os cadastros de clientes de uma
loja, não haveria lógica em programar
novamente essas etapas para cada cliente
novo.
Considerações Iniciais
Bastaria desenvolver uma única vez a
sequência de etapas e que, a cada novo
cliente, usar a sequência previamente
definida.
Outro exemplo que pode-se observar é o
cálculo das médias dos alunos de uma turma
qualquer.
Considerações Iniciais
Para calcular a média de um único aluno é necessário
que se some suas duas notas e divida o resultado
dessa soma por dois. Um algoritmo simples para o
cálculo da média de um aluno seria:
algoritmo "calculo_media"
var
real n1, n2, media
inicio
escreva("digite nota 1 e nota 2")
leia(n1, n2)
media ←(n1 + n2)/2
escreva("a media do aluno é ", media)
Fimalgoritmo
Considerações Iniciais
Sendo necessário calcular as médias de
dois alunos, pode-se simplesmente
copiar as mesmas linhas de código e
colá-las no mesmo programa para o
cálculo da média do segundo aluno:
Considerações Iniciais
algoritmo "calculo_media"
var
real n1, n2, media
inicio
escreva("digite nota 1 e nota 2")
leia(n1, n2)
media ←(n1 + n2)/2
escreva("a media do aluno é ", media)
escreva("digite nota 1 e nota 2")
leia(n1, n2)
media ←(n1 + n2)/2
escreva("a media do aluno é ", media)
Fimalgoritmo
Tipos de Estruturas de Repetição
As 3 ESTRUTURAS DE REPETIÇÃO
que iremos estudar são:
1) PARA – FIMPARA
2) ENQUANTO – FIMENQUANTO
3) FAÇA – ENQUANTO
Estrutura de Repetição
PARA - FIMPARA
A estrutura de repetição PARA – FIMPARA é utilizada
sempre que temos condições de estabelecer a
QUANTIDADE de vezes que uma determinada
sequência de operações deva ser executada.
Por exemplo, na situação de cálculo de médias dos
alunos, sabemos que o número de alunos da turma é
de 50 (mesmo não conhecendo esse valor de
antemão, temos condições de solicitá-lo ao usuário).
Dessa maneira podemos definir com exatidão o
número de vezes que precisaremos calcular a média
de alunos.
Estrutura de Repetição
PARA - FIMPARA
A estrutura de repetição PARA - FIMPARA é utilizada
da seguinte maneira:
PARA <variavel inteira> ← <valor inicial> ATE <valor final>
passo de <incremento>
Comando 1
Comando 2
Comando N
FIMPARA
Estrutura de Repetição
PARA - FIMPARA
Onde a <variável inteira> será um contador que marcará em qual
iteração a estrutura de repetição se encontra.
O <valor inicial> é o valor em que o contador irá começar a
contagem, e <valor final> é o valor onde o contador irá parar a
execução.
A cada iteração o contador (<variável inteira>) será incrementado
(aumentado) em <incremento> unidades.
E quando esse contador atingir o mesmo valor que o <valor
final> a estrutura de repetição chega ao final.
PARA <variavel inteira> ← <valor inicial> ATE <valor final>
passo de <incremento>
...
FIMPARA
Estrutura de Repetição
PARA - FIMPARA
Caso se deseje escrever 20 vezes uma
frase na tela, utiliza-se a estrutura de
repetição PARA – FIMPARA, iniciando
um contador em 1 e indicando que a
repetição deva acontecer até que esse
contador chegue ao número 20.
Estrutura de Repetição
PARA - FIMPARA
Veja o exemplo a seguir:
algoritmo "imprime_frase"
var
cadeia frase
inteiro cont
inicio
frase ← "escreva-me 20 vezes"
para cont ← 1 ate 20 passo de 1
escreva(frase)
fimpara
Fimalgoritmo
Estrutura de Repetição
PARA - FIMPARA
Em C, faríamos assim:
main()
{
char frase[51];
int cont;
strcpy (frase, "escreva-me 20 vezes\n");
for (cont = 1; cont <= 20; cont = cont + 1)
{
printf("%s", frase);
}
}
Estrutura de Repetição
PARA - FIMPARA
O comando cont = cont + 1 pode ser substituído por
cont++. Assim, poderíamos ter:
main()
{
char frase[51];
int cont;
strcpy (frase, "escreva-me 20 vezes\n");
for (cont = 1; cont <= 20; cont++)
{
printf("%s", frase);
}
}
Estrutura de Repetição
PARA - FIMPARA
A execução do algoritmo anterior traria como resultado
uma tela semelhante a que está sendo mostrada a
seguir:
Estrutura de Repetição
Fluxograma
frase ← "escreva-me 20 vezes"
Início
cont <= 20?
Fim
Escreva frase
Verdadeiro
Falso
cont ← 1
cont ← cont + 1
Estrutura de Repetição
PARA - FIMPARA
Como comentado anteriormente, a variável que
representa o contador é incrementada em cada
iteração (no exemplo anterior a variável cont
representa o contador).
Dessa forma, na 1ª iteração ela possui o valor 1,
na 2ª iteração o valor 2, e assim sucessiva-
mente até que ela chegue ao valor 20.
Estrutura de Repetição
PARA - FIMPARA
Observe o exemplo a seguir:
algoritmo "imprime_frase"
variavel
cadeia frase
inteiro cont
inicio
frase ← "a vez"
para cont ← 1 ate 20 passo de 1
escreva(cont, frase)
fimpara
Fimalgoritmo
Estrutura de Repetição
PARA - FIMPARA
O código mostrado anteriormente apresentaria
a seguinte tela como resultado de sua
execução:
Estrutura de Repetição
PARA - FIMPARA
Conhecendo os detalhes de utilização dessa estrutura
podemos tentar solucionar o problema do cálculo da
média dos 50 alunos de uma turma.
O primeiro passo é definir como seria o
processamento para um único aluno.
Considerando que necessitamos solicitar as duas
notas e calcular a média dessas notas, teríamos o
seguinte processamento:
escreva("digite nota 1 e nota 2 do aluno 1")
leia(n1, n2)
media ←(n1 + n2)/2
escreval("a media do aluno é ", media)
Estrutura de Repetição
PARA - FIMPARA
Para que esse trecho de código seja
executado 50 vezes, é necessário que
utilizemos alguma estrutura de repetição.
Nesse caso utilizaremos a estrutura PARA –
FIMPARA.
Necessitamos de uma variável que assuma o
papel de contador, e devemos fazer com que
essa variável comece com o valor 1 e termine
com o valor 50.
Estrutura de Repetição
PARA - FIMPARA
Vejamos o algoritmo a seguir:
algoritmo “calcule_media"
variavel
real n1, n2, media
inteiro cont
inicio
para cont ← 1 ate 50 passo de 1
escreva("digite nota 1 e nota 2 do aluno ", cont)
leia(n1, n2)
media ← (n1 + n2)/2
escreva("a media do aluno é", media)
fimpara
Fimalgoritmo
Estrutura de Repetição
PARA - FIMPARA
Os valores do início e do final da iteração
podem também ser definidos em tempo de
execução por meio de variáveis.
Por exemplo, considere que a princípio não
saibamos quantos são os alunos de uma
turma.
Estrutura de Repetição
PARA - FIMPARA
Dessa maneira, podemos solicitar ao usuário
o número de alunos (Nalunos), e utilizar essa
variável como o valor de limite para a iteração.
Comparando com o algoritmo anterior, ao
invés de utilizarmos o valor 50 utilizaremos
uma variável que contenha o número de
alunos da turma (Nalunos).
Estrutura de Repetição
PARA - FIMPARA
Veja o trecho de código a seguir:
algoritmo “calcule_media"
variavel
real n1, n2, media
inteiro cont, nalunos
inicio
escreva("digite o número de alunos da turma")
leia(nalunos)
para cont ← 1 ate nalunos passo de 1
escreva("digite nota 1 e nota 2 do aluno ", cont)
leia(n1, n2)
media ← (n1 + n2)/2
escreva("a media do aluno é", media)
fimpara
Fimalgoritmo
Estrutura de Repetição
PARA - FIMPARA
Os exemplos vistos anteriormente utilizam
uma ordem crescente para incrementar o
contador, ou seja, a iteração varia de um
número menor até alcançar um número maior.
Também é possível que façamos de traz para
frente, ou em ordem decrescente. Por
exemplo, suponha que desejamos escrever os
números de 20 até 1.
Estrutura de Repetição
PARA - FIMPARA
Para esse tipo de problema podemos utilizar a
estrutura de repetição PARA FACA
especificando que o PASSO para o algoritmo
é decrescente, ou melhor, -1.
Veja o exemplo a seguir: algoritmo "imprime_palavra"
variavel
inteiro cont
inicio
para cont ← 20 ate 1 passo de -1
escreva(cont)
fimpara
Fimalgoritmo
Estrutura de Repetição
PARA - FIMPARA
Em C, seria:
main()
{
int cont;
for (cont = 20; cont >= 1; cont = cont - 1)
// ou for (cont = 20; cont >= 1; cont--)
{
printf("%d\n", cont);
}
}
PARA – FIMPARA
Exercícios Exercícios utilizando somente a estrutura de repetição
PARA - FIMPARA
1) Elabore um algoritmo que imprima todos os números de 1 até
100.
2) Elabore um algoritmo que imprima todos os números de 100
até 1.
3) Elabore um algoritmo que imprima todos os números de 250 a
500.
4) Elabore um algoritmo que imprima todos os números pares de
1 até 100.
5) Elabore um algoritmo que leia um valor (n) de entrada que
indicará a quantidade de números a serem lidos. Em seguida,
leia n números (conforme o valor informado anteriormente) e
imprima o triplo de cada um.
PARA – FIMPARA
Exercícios Exercício utilizando a estrutura de condição SE
ENTAO FIMSE dentro da estrutura de repetição
PARA FACA FIMPARA
1) Elabore um algoritmo que leia nome, idade e sexo de 20
pessoas. Imprimir o nome, se a pessoa for do sexo
masculino, e tiver mais de 21 anos.
Exercícios de repetição que calculam somatórios e/ou
produtórios
1) Elabore um algoritmo que imprima todos os números de 100 a
200, e ao final, imprima também, a soma deles.
2) Elabore um algoritmo que leia um valor inteiro e imprima todos
os números de 1 até o valor lido, e também o seu produto.
Exemplo: Número: 3 Saída: 1 2 3 Produto: 6
PARA – FIMPARA
Exercícios
3) Construir um algoritmo que calcule o fatorial de um número.
4) Construir um algoritmo que leia dois números (BASE e
EXPOENTE) e retorne como resultado a POTENCIA do cálculo
da BASE elevado ao EXPOENTE.
Ex: para a BASE = 2 e EXPOENTE = 4, POTENCIA = 24 = 16
5) Elabore um algoritmo que imprima a tabuada de um número
que será informado pelo usuário.
6) Elabore um algoritmo que leia 30 números, e imprima quantos
números maiores que 30 foram digitados.
PARA – FIMPARA
Exercícios
Exercícios de repetição que calculam somatórios e/ou
produtos e que utilizam a estrutura de condição SE
ENTAO FIMSE dentro da estrutura de repetição
PARA FACA FIMPARA
1) Elabore um algoritmo que leia um valor inteiro e imprima a
soma dos números múltiplos de 5 no intervalo entre 1 e o valor
informado. Suponha que o valor lido será maior que zero.
2) Elabore um algoritmo que leia 20 números, e ao final, imprima
a média desses números.
3) Elabore um algoritmo que leia 200 números, e imprima
quantos são pares e quantos são ímpares.
PARA – FIMPARA
Exercícios
Exercícios de repetição para localizar determinados
valores dentro de um conjunto
1) Elabore um algoritmo que leia um número de entrada que
indicará a quantidade de números a serem lidos. Em seguida,
leia n números (conforme o valor informado anteriormente) e, ao
final imprima o maior número digitado.
2) Elabore um algoritmo que leia um número de entrada que
indicará a quantidade de números a serem lidos. Em seguida,
leia n números (conforme o valor informado anteriormente) e, ao
final imprima o menor número digitado.
3) Elabore um algoritmo que leia um número de entrada que
indicará a quantidade de números a serem lidos. Em seguida,
leia n números (conforme o valor informado anteriormente) e, ao
final imprima o maior, menor, e a média dos números digitados.
PARA – FIMPARA
Exercícios
Exercício utilizando a estrutura de repetição PARA
FACA – FIMPARA aninhada.
1) Elabore um algoritmo que imprima a tabuada de 1 a 10.
top related