Buscar

Computação Básica - Estruturas de repetição com teste no início

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
COMPUTAÇÃO BÁSICA
Estruturas de Repetição com teste no inicio
Prof. Bruno Macchiavello (bruno@cic.unb.br)
Universidade de Brasília – UnB 
Instituto de Ciências Exatas – IE 
Departamento de Ciência da Computação – CIC 
Prof. Bruno Macchiavello 1
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Objetivo
• Estudar as estruturas de repetição:
�Repetição com teste no início
�Repetição com teste no final
�Repetição com variável de controle
Prof. Bruno Macchiavello 2
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Blocos de Repetição
• As estruturas de repetição, chamadas comumente
laços, possibilitam a execução automática de
diferentes instruções repetidamente.
�Exemplos não computacionais:
– Enquanto tiver dinheiro na carteira vou continuar comprando
– Vou bater pênaltis até fazer um gol
– Vou assistir um filme três vezes
Prof. Bruno Macchiavello 3
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Repetição com Teste no Inicio
�Esta estrutura permite repetir um conjunto de
ações enquanto uma determinada condição
permanece válida.
�As instruções são executadas enquanto o
resultado de um teste lógico for VERDADEIRO.
Prof. Bruno Macchiavello 4
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Prof. Bruno Macchiavello 5
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Repetição com Teste no Inicio
• A expressão ENQUANTO em pseudo-código:
Enquanto <condição> faça
Prof. Bruno Macchiavello 6
Enquanto <condição> faça
<conjunto de instruções>
FimEnquanto
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Repetição com Teste no Inicio
• Na linguagem ANSI C a estrutura ENQUANTO 
possui a seguinte sintaxe:
Prof. Bruno Macchiavello 7
While (<condição>) {
<conjunto de instruções>;
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo 1:
Desenvolver algoritmo para o seguinte problema: Ler o valor do raio de 
uma circunferência, e imprimir na tela a área dela, o programa deve 
verificar que o raio seja positivo, caso contrario deve pedir para o 
usuário ingressar novamente o valor.
Algoritmo Area
Variáveis
raio, area: real
Início
Prof. Bruno Macchiavello 8
Início
Escreva (“Informe o valor do raio:”)
Leia (raio)
Enquanto (raio < 0) faça
Escreva (“Erro! O raio não pode ser negativo”)
Escreva (“Informe o raio novamente: ”)
Leia (raio)
FimEnquanto
area←3.14*raio^2
Escreva (“A area da circunferência é:”, area)
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo 1:
Desenvolver algoritmo para o seguinte problema: Ler o valor do raio de 
uma circunferência, e imprimir na tela a área dela, o programa deve 
verificar que o raio seja positivo, caso contrario deve pedir para o 
usuário ingressar novamente o valor.
Algoritmo Area
Variáveis
raio, area: real
Início
A variavél RAIO é a varaivél de 
controle do laço.
Prof. Bruno Macchiavello 9
Início
Escreva (“Informe o valor do raio:”)
Leia (raio)
Enquanto (raio < 0) faça
Escreva (“Erro! O raio não pode ser negativo”)
Escreva (“Informe o raio novamente: ”)
Leia (raio)
FimEnquanto
area←3.14*raio^2
Escreva (“A area da circunferência é:”, area)
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Variável de Controle 
• Normalmente as estruturas de repetição são
controladas pelo valor de uma variável. Este
variável é conhecida como variável de controle.
• Sempre deve-se tomar cuidado de modificar o
valor da variável de controle na estrutura
ENQUANTO, para evitar o chamado LOOP
INFINITO.
Prof. Bruno Macchiavello 10
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo 1:
Desenvolver algoritmo para o seguinte problema: Ler a variável SEXO. 
Enquanto o valor fornecido não for correto (M,m,F,f) exibir mensagem de 
erro e solicitar novamente a leitura. Quando o valor fornecido estiver
correto, ler a variável ANO. Escrever ANO e SEXO.
Algoritmo Sexo
Variáveis
sexo : literal
ano : inteiro
Prof. Bruno Macchiavello 11
ano : inteiro
Início
Leia (sexo)
Enquanto ((sexo ≠ f) E (sexo ≠ F) E (sexo ≠ m) E (sexo ≠ M)) faça
Escreva (“Erro! ”)
Escreva (“Informe o sexo novamente: ”)
Leia (sexo)
FimEnquanto
Leia (ano)
Escreva (ano, sexo)
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo 1:
Desenvolver algoritmo para o seguinte problema: Ler a variável SEXO. 
Enquanto o valor fornecido não for correto (M,m,F,f) exibir mensagem de 
erro e solicitar novamente a leitura. Quando o valor fornecido estiver
correto, ler a variável ANO. Escrever ANO e SEXO.
Algoritmo Sexo
Variáveis
sexo : literal
ano : inteiro
Esta variável de controle deve
ter um valor conhecido. Neste
caso ela foi lida antes.
Prof. Bruno Macchiavello 12
ano : inteiro
Início
Leia (sexo)
Enquanto ((sexo ≠ f) E (sexo ≠ F) E (sexo ≠ m) E (sexo ≠ M)) faça
Escreva (“Erro! ”)
Escreva (“Informe o sexo novamente: ”)
Leia (sexo)
FimEnquanto
Leia (ano)
Escreva (ano, sexo)
Fim
Laço
A variável de controle deve ter
seu valor modificado dentro do 
“laço”. Neste caso a variável
foi lida novamente
caso ela foi lida antes.
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programa em C do algoritmo anterior
#include <stdio.h>
int main () {
int ano;
char sexo;
printf( “\nInforme o sexo: “);
scanf(“%c”,&sexo);
while((sexo != 'f') && (sexo != 'F') && (sexo!= 'm') && (sexo !='M')){
Prof. Bruno Macchiavello 13
while((sexo != 'f') && (sexo != 'F') && (sexo!= 'm') && (sexo !='M')){
printf( “\nErro! “);
printf("\nInforme o sexo novamente: ");
scanf(“%c”,&sexo);
}
printf( “\nInforme o ano: “);
scanf(“%d”,&ano);
printf(“\n%d - %c”, ano, sexo);
return 0;
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Repetição com Teste no Inicio
Exemplo 2:
Calcular n!, sendo dado o valor de n
- entrada: n (inteiro)
- saída: n! = 1* 2 * ... * (n-2) * (n-1) * n
Prof. Bruno Macchiavello 14
Algoritmo Fatorial
passo 1. declaração de variáveis
passo 2. leia n
passo 3. calcule n!
passo 4. escreva n!
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo 2:
Calcular n!, sendo dado o valor den
- entrada: n (inteiro)
- saída: n! = 1* 2 * ... * (n-2) * (n-1) * n 
Algoritmo Fatorial
passo 1. declaração de variáveis
passo 2. leia n
passo 3. calcule n!
passo 4. escreva n!
passo 3. calcule n!
Técnica de 
Refinamentos 
Sucessivos
• passo 3: fat ← 1* 2 * ... * (n-2) * (n-1) * n
Prof. Bruno Macchiavello 15
fat ← 1
fat ← fat * 2
fat ← fat * 3 repetição
fat ← fat * 4
...
fat ← fat * n
fat ← 1
i← 1
enquanto (i <= n) faça
fat ← fat * i
i← i + 1
FimEnquanto
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo Fatorial
Exemplo 2:
Calcular n!, sendo dado o valor de n
- entrada: n (inteiro)
- saída: n! = 1* 2 * ... * (n-2) * (n-1) * n
Algoritmo Fatorial
Variáveis
numero, i, fat : inteiro
Prof. Bruno Macchiavello 16
numero, i, fat : inteiro
Início
Escreva (“Informe um numero”) 
Leia (numero)
fat←←←← 1
i←←←← 1
Enquanto (i <= numero) Faça
fat←←←← fat * i
i←←←← i + 1
FimEnquanto
Escreva (“O fatorial de “, numero, “ é “, fat)
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo Fatorial (ANSI C)
Programa em C do algoritmo anterior
#include <stdio.h>
int main () {
int numero, i, fat;
fat = 1;
i = 1;
Prof. Bruno Macchiavello 17
i = 1;
printf( “\nDigite um numero: “);
scanf(“%d”,&numero);
while (i <= numero) {
fat*=i;
i++;
}
printf(“\nO Fatorial de %d e: %d”, numero, fat);
return 0;
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo Fatorial
• Teste de mesa do exemplo anterior
TESTE DE MESA para o fatorial de 5
número i (i <= numero) fat saída
5 1 Sim 1
Prof. Bruno Macchiavello 18
5 2 Sim 2
5 3 Sim 6
5 4 Sim 24
5 5 Sim 120
5 6 Não O fatorial de 5 
é 120
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Repetições encadeadas
• Ao igual que as estruturas condicionais as estruturas de 
repetição podem ser encadeadas.
• Exemplo: Calcular
#include <stdio.h>
int main(){
int sum, i, j;
sum = 0; i=0; j=0;
∑ ∑
= =
N
i
M
j
ji
0 0
*
Prof. Bruno Macchiavello 19
sum = 0; i=0; j=0;
while (i <= N) {
while (j <= M) {
sum = sum + (i * j);
j = j + 1;
}
i = i + 1;
}
printf("The total sum is %d", sum);
return(1);
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Comando Break (ANSI C)
• O comando break que utilizei nos exemplo,
INTERROMPE a execução de estruturas de repetição
ou switch.
Exemplo do Break
#include <stdio.h>
Prof. Bruno Macchiavello 20
#include <stdio.h>
int main () 
{
int i=0;
while( i<25)
{
if(i==10) break; 
printf("%i\n",i);
i++;
}
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Comando Continue (ANSI C)
• Somente pode ser utilizado dentro de uma estrutura de repetição 
(laço ou LOOP). Faz com que o resto dos comandos dentro do 
corpo do laço não sejam executados.
Exemplo do Continue
#include <stdio.h>
Prof. Bruno Macchiavello 21
#include <stdio.h>
int main () 
{
int i=-1;
while( i<100)
{
i++;
if(i==50) continue; 
printf("%i\n",i);
}
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo
• Se em uma oficina especializada existem três serviços possíveis: 
trocar óleo, balancear pneus e lavar o carro. Cada um destes 
serviços custa 50, 30, 10 reais respectivamente. Elabore um 
algoritmo sempre mostre na tela o seguinte menu:
1 – Troca de óleo
2 – Balanceamento2 – Balanceamento
3 – Lavagem
4 – Total
5 - Sair
Digite a opção:
O usuário deve digitar uma das três opções “1”, “2” ou “3”, 
referentes aos serviços realizados quantas vezes for necessário, 
até ele digitar a opção “4”, a qual mostra o custo total dos serviços. 
Ao digitar a opção “5” o programa deve terminar.
Prof. Bruno Macchiavello 22
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Algoritmo Oficina
Variaveis
a,opcao, res : inteiro
INICIO
a ← 1 //valor inicial da condição
res ← 0 //valor inicial da resposta
//escrever o menu
escreva(“1 – Troca de óleo”)
escreva(“2 – Balanceamento”)
escreva(“3 – Lavagem”)
escreva(“4 – Total”)
escreva(“Digite o serviço realizado:”)
//fim do menu
Enquanto (a = 1) faça //o laço deve permanecer para sempre
leia(opcao)
Prof. Bruno Macchiavello 23
leia(opcao)
Caso (opcao)
igual 1 entao
res ← res+50 //aumentar o preço em 50
igual 2 entao
res ← res+30 //aumentar o preço em 30
igual 3 entao
res ← res+10 //aumentar o preço em 10
igual 4 entao
//dar o resultado e volver ao valor inicial
escreva(“O valor total é:”,res)
res ← 0
escreva(“Digite a opção:”)
igual 5 entao
a ← 0 
senao
escreva(“Opção invalida”)
escreva(“Digite a opção:”)
FimCaso
FimEnquanto
FIM
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exercícios
1. Faça um algoritmo que calcule e mostre a media de 10 notas, medias as 
quais estão entre 0 e 10. Garanta que as medias estejam nesta faixa. 
2. Realizar um programa que verifique e mostre os números impares entre os 
números N e M inseridos pelo usuário.
Prof. Bruno Macchiavello 24
2. Faça um algoritmo que leia um número N, calcule e mostre os N primeiros 
termos da seqüência de Fibonacci, onde o número seguinte e sempre formado 
pela soma dos dois números anteriores: 0, 1, 1, 2, 3, 5, 8, 13, .... O algoritmo 
deve verificar que o valor de N seja maior ou igual a 2, caso contrario deve dar 
uma mensagem de erro (“O número deve ser maior que 2”) e pedir o número 
novamente.

Outros materiais