Introdução a Programação
Estruturas de repetição (cont.)
Prof. Luis Otavio Alvares
Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques,
Mônica Py e Deise Saccol
1
REPETIR ... ENQUANTO
Lógica de
programação
– Formato:
repetir <ações> Enquanto <operação lógica>
• Significado: As ações são executadas e depois a <operação lógica>
é testada. Se for verdadeira, executar novamente <ações> e em
seguida testar novamente a operação lógica. Este ciclo prossegue
até que em algum teste a operação lógica resulte em falso.
• As <ações> serão executadas pelo menos uma vez.
2
Exercício
• Faça um algoritmo para mostrar os 30
primeiros números ímpares
3
Exemplo de solução
1.
2.
2.1
2.2
2.3
I=0
repetir
I=I+1
impar=I*2-1
mostrar impar
enquanto I<30
4
Exercício
• Faça um algoritmo que fique num ciclo de
leitura até que o usuário informe um número
positivo e depois mostre a raiz quadrada do
número positivo informado.
5
Exemplo de solução
repetir
mostrar “digite um número positivo”
ler N
enquanto N<= 0
mostrar “a raiz quadrada deste número e’: “
Mostrar sqrt(N)
6
Estruturas de repetição em C
7
Estrutura de repetição
Comando do...while
do {
comando;
} while (condição);
do {
comando1;
comando2;
comando3;
} while (condição);
Em pseudo-código:
CONTADOR = 0
Repetir
CONTADOR = CONTADOR + 1
exibir CONTADOR
enquanto CONTADOR < 10
Exemplo:
…
cont=0;
do {
cont = cont + 1;
printf("%d\n",cont);
} while (cont < 10);
8
Comando do…while
do {comando1;} while (condição);
Não esquecer dos parênteses
O comando1 será executado pelo menos uma vez. E continuará
sendo executado enquanto a condição for verdadeira
O programador deve cuidar para que a condição fique falsa em
algum momento, do contrário o programa fica indefinidamente
repetindo o comando1.
9
Exercício
Faça um programa C que dado um número real não-negativo,
informe sua raiz quadrada.
/* raiz.c - exibe a raiz de um número não-negativo */
#include <stdio.h>
#include <stdlib.h>
#include <math.h> // para usar a função sqrt()
main() {
float N, R;
do {
printf("Digite um numero nao-negativo: ");
scanf("%f", &N);
} while( N<0 );
R = sqrt(N);
printf("\nA raiz quadrada de %.1f e' %.2f \n", N, R);
system("pause");
}
10
Lembre-se!!!
Não se esqueça de alterar o valor da variável da condição
dentro do laço de repetição do comando do…while
Exemplo:
saída (loop infinito):
#include <stdio.h>
#include <stdlib.h>
main(){
int I=0;
do {
printf("I= %d\n",I);
} while (I<5);
system("pause");
}
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
I=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
Exercícios
1- Faça um programa C que dado um número inteiro entre 1 e 10,
exiba a sua tabuada (ficar lendo valores até que o número
esteja no intervalo desejado).
2- Idem, mas depois de exibir uma tabuada, perguntar ao usuário
se este deseja ver a tabuada de um outro número. (dica: usar
função getch(), disponivel em conio.h, que le um caracter do
teclado)
3- Um determinado material radioativo perde metade de sua
massa a cada 50 segundos. Dada a massa inicial, em gramas,
fazer um programa que determine o tempo necessário para que
essa massa se torne menor do que 0,5 gramas. Escreva a
massa inicial, a massa final e o tempo calculado em horas,
minutos e segundos.
12
Exercícios (cont)
4- Simular o funcionamento de um caixa-eletrônico, que oferece as seguintes
opções ao cliente: 1 – depósito, 2 – saque, 3 – saldo e 4 – sair. Suponha que o
saldo inicial do cliente seja de R$ 1.000,00 e que o saldo pode ficar negativo.
Exemplo de funcionamento:
1 – depósito
2 – saque
3 – saldo
4 – sair
Opção: 1
Valor do depósito: 200.00
1 – depósito
2 – saque
3 – saldo
4 – sair
Opção? 2
Valor do saque? 50.00
1 – depósito
2 – saque
3 – saldo
4 – sair
Opção? 3
Saldo atual = R$ 1150.00
1 – depósito
2 – saque
3 – saldo
4 – sair
Opção? 5
Opção inválida!
1 – depósito
2 – saque
3 – saldo
4 – sair
Opção? 4
Fim das transações
13
Download

Slides