Buscar

Aula07_Estruturas de controle_for

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

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

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ê viu 3, do total de 25 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

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

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ê viu 6, do total de 25 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

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

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ê viu 9, do total de 25 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

Prévia do material em texto

Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e de Tecnologias
Curso de Bacharelado em Sistemas de Informação
Algoritmos e Programação
Estruturas de controle: comando for
Profª Janne Oeiras Lachi
1
Com um número definido de repetições
` Em Português estruturado usa os comandos:
para, de, até, passo, faça e fim_para
` Sintaxe do comando:
para <variável> de <valor inicial> até <valor final> passo <incremento> faça
<comando 1>
<comando 2>
...
<comando n>
fim_para
Exemplo 1
` Elaborar um algoritmo que receba como entrada um número 
inteiro qualquer, em seguida multiplique o valor de entrada 
por 3 e apresente o resultado. Realizar a execução dos passos 
anteriores cinco vezes.
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim
Laços em C: comando for
` Sintaxe:
for (expressão1; expressão2 ; expressão3)
instrução;
for (expressão1; expressão2 ; expressão3)
{
instrução 1;
instrução 2;
...
instrução n;
}
OU
Interpretação do comando for
for (expressão1; expressão2; expressão3)
` Pode-se entender as três expressões do seguinte modo:
` A primeira parte atribui um valor inicial à variável, que tem 
como função controlar o número necessário de repetições.
` A segunda parte corresponde a uma expressão relacional
que, quando assumir um valor falso, determinará o fim da 
repetição.
` A terceira parte é responsável por alterar o valor da variável 
(incremento ou decremento) com o objetivo de, em algum 
momento, fazer com que a condição assuma valor falso.
Sintaxe
for(i = valor_inicial; condição; incremento ou decremento de i)
comando;
for(i = valor_inicial; condição; incremento ou decremento de i)
{
comando 1;
...
comando n;
}
No segundo caso precisa de { } porque há mais de 1 comando
É semelhante ao o que ocorre com o comando if ... else
Qualquer uma das expressões entre parênteses é opcional, mas 
usualmente todas são utilizadas
Sintaxe: atenção
for (expressão1; expressão2; expressão3)
Use ponto-e-vírgula (;)
Geralmente o aluno erra porque coloca vírgula (,)
Aqui NÃO tem ponto-e-vírgula
Exemplo 1
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em seguida multiplique o 
valor de entrada por 3 e apresente o resultado. Realizar a execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, resultado, I;
for (I=1; I<=5; I++)
{
printf("\nInforme um numero inteiro: ");
scanf("%d",&n); 
resultado = n*3;
printf("\n%d",resultado);
}
system("pause");
return 0;
}
Exemplo 1
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim #include <stdio.h>
#include <stdlib.h>
int main()
{
int n, resultado, I;
for (I=1; I<=5; I++)
{
printf("\nInforme um numero inteiro: ");
scanf("%d",&n); 
resultado = n*3;
printf("\n%d",resultado);
}
system("pause");
return 0;
}
Sabemos que o valor inicial para I é 1.
Por essa razão a primeira expressão 
dentro do for é I=1;
Exemplo 1
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim #include <stdio.h>
#include <stdlib.h>
int main()
{
int n, resultado, I;
for (I=1; I<=5; I++)
{
printf("\nInforme um numero inteiro: ");
scanf("%d",&n); 
resultado = n*3;
printf("\n%d",resultado);
}
system("pause");
return 0;
}
Sabemos que I deve variar até o 
valor 5.
Por essa razão a segunda expressão 
dentro do for é a expressão relacional 
I<=5;
Exemplo 1
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim #include <stdio.h>
#include <stdlib.h>
int main()
{
int n, resultado, I;
for (I=1; I<=5; I++)
{
printf("\nInforme um numero inteiro: ");
scanf("%d",&n); 
resultado = n*3;
printf("\n%d",resultado);
}
system("pause");
return 0;
}
O incremento de I deve ser de 1 
unidade a cada ciclo de repetição e 
isso é feito pelo comando passo.
Por essa razão a terceira expressão 
dentro do for é a expressão 
relacional I++
Interpretação do comando for
for (expressão1; expressão2 ; expressão3)
instrução;
1.expressão1 é avaliada. Usualmente, esta é uma ou 
expressões de atribuição para uma ou mais variáveis
2.expressão2, que é a expressão condicional da estrutura 
for, é avaliada
3. Se expressão2 resultar em zero, a instrução for, é
encerrada e o controle do programa passa para a instrução 
seguinte a toda instrução for. Se expressão2 resultar num 
valor diferente de zero, o corpo do laço (instrução) é
executado
4. Após a execução do corpo do laço, expressão3 é avaliada 
e retorna-se ao passo 2.
Exemplo 2
` Escreva um programa em C que receba como entrada um 
número inteiro n (n > 0) do usuário e imprima os números de 
1 a n na tela.
#include <stdio.h>
int main()
{
int I, N;
printf("Informe um numero inteiro maior que zero:");
scanf("%d", &N);
for (I=1; I <= N; I++)
printf("\n%d", I);
return 0;
}
programa IMPRESSAO
var
N, I : inteiro
início
escreva “Informe um número inteiro maior que zero:”
leia N
para I de 1 até N passo 1 faça
escreva I
fim_para
fim
Exemplo 2
` Escreva um programa em C que receba como entrada um 
número inteiro n (n > 0) do usuário e imprima os números de 
1 a n na tela.
#include <stdio.h>
int main()
{
int I, N;
printf("Informe um numero inteiro maior que zero:");
scanf("%d", &N);
for (I=1; I <= N; I++)
printf("\n%d", I);
return 0;
}
Exemplo 3: resolução COM repetição
Programa AREA
var
BASE, ALTURA, AREA: real
contador, I: inteiro
início
contador Å 0
para I de 1 até 3 passo 1 faça
escreva “Informe a base da ”, I, “ª parede:”
leia BASE
escreva “Informe a altura da ”, I, “ª parede:”
leia ALTURA
AREA Å BASE * ALTURA
se (AREA > 100) então
contador Å contador + 1
fim_se
fim_para
escreva “A quantidade de paredes com área maior que 100 m2 é: ”, contador
fim
15
Exemplo 3: resolução COM repetição
16
#include <stdio.h>
#include <stdlib.h>
int main()
{
float base, altura, area;
int contador=0, I;
for (I=1; I<=3; I++)
{
printf("\nInforme a base da %da. parede: ", I);
scanf("%f",&base); 
printf("\nInforme a altura da %da. parede: ", I);
scanf("%f",&altura); 
area = base*altura;
if (area>100)
contador++;
}
printf("\nA quantidade de paredes com area maior que 100 m2 eh: %d",contador); 
system("pause");
return 0;
}
Note que o código especial %d está “colado” nos caracteres “a.” de modo que 
para o usuário apareça na forma ordinal. 
Incremento ou decremento
for(a = 1; a <=10; a++)
printf(“Valor de a=%d\n”,a);
for(b = 10; b >= 1; b--)
{
scanf(“%d”, &c);
printf(“Valor de c=%d\n”,c);
}
a++ ou 
a = a + 1
b-- ou 
b = b - 1
Incremento ou decremento
for(a = 0; a < 10; a = a + 2)
printf(“Valor de a=%d\n”,a);
„ Imprimirá: 0, 2, 4, 6, 8
for(i = 100; i >= 0; i = i - 20)
printf(“Valor de i=%d\n”,i);
„ Imprimirá: 100, 80, 60, 40, 20, 0
Exemplo 4: em Português estruturado
Apresente todos os números pares no intervalo de 600 a 1.
programa IMPRESSAO_PARES
var
I : inteiro
início
para I de 600até 2 passo 2 faça
escreva I
fim_para
fim
Exemplo 4: em Linguagem C
Apresente todos os números pares no intervalo de 600 a 1.
programa IMPRESSAO_PARES
var
I : inteiro
início
para I de 600 até 2 passo 2 faça
escreva I
fim_para
fim
#include <stdio.h>
#include <stdlib.h>
int main()
{
int I;
for (I=600; I>=2; I=I-2)
{
printf("\n%d\n",I); 
}
system("pause");
return 0;
}
Note que aqui precisamos criar a 
expressão I=I-2 para poder fazer o 
decremento de 2 unidades no valor de 
I
Exemplo 5: para dentro de para
programa TREINO
var
volta,abdominal : inteiro
início
para volta de 1 até 3 passo 1 faça
escreva volta, “ª volta”
para abdominal de 1 até 5 passo 1 faça
escreva abdominal, “º abdominal”
fim_para
fim_para
fim
#include <stdio.h>
#include <stdlib.h>
int main()
{
int volta, abdominal;
for (volta=1; volta<=3; volta++)
{
printf("\n%da. volta",volta); 
for (abdominal=1; abdominal<=5; abdominal++)
printf("\n\t%do. abdominal",abdominal); 
}
printf("\n"); 
system("pause");
return 0;
}
Exemplo 6
` Faça um algoritmo que receba um número inteiro maior 
que 1, verifique se o número fornecido é primo ou não. 
A saída do seu algoritmo é mostrar a mensagem de 
número primo ou não.
` Um número natural é um número primo quando ele tem 
exatamente dois divisores: o número um e ele mesmo.
Exemplo 6
programa PRIMO
var
i, num, resto, qtde: inteiro
início
escreva “Informe um número inteiro:”
leia num
qtde ← 0
para i de 1 até num passo 1 faça
resto Å num - (num div i) * i
se (resto = 0) então
qtde ← qtde + 1
fim_se
fim_para
se qtde > 2 então
escreva “O número não é primo.”
senão
escreva “O número é primo.”
fim_se
fim
Note que neste problema não está
claro no enunciado que vamos 
precisar de repetição. 
Podemos usar a repetição para testar 
REPETIDAMENTE se um certo 
número (no caso os valores 
assumidos por i) é divisor do número 
dado como entrada (num).
A lógica consiste em testar se no 
intervalo de 1 até num, o número num 
tem mais de 2 divisores, pois nesse 
caso ele não é primo. 
Exemplo 6
#include <stdio.h> 
#include <stdlib.h>
int main()
{
int i, num, qtde;
printf("\nInforme um numero inteiro:");
scanf("%d", &num);
qtde = 0;
for (i=1; i<=num; i++)
{
if (num%i == 0)
qtde++;
}
if (qtde > 2)
printf("\O numero nao eh primo.");
else
printf("\O numero eh primo.");
system(“pause”);
return 0;
}
Referências
` Ulysses de Oliveira. Programando em C. D. Rio de Janeiro; 
Editora Ciência Moderna, 2008 
` Algoritmos - Lógica para desenvolvimento de programação de 
computadores. José Augusto N. G. Manzano, Jayr Figueiredo 
de Oliveira. São Paulo: Érica, 2006.
25
	Algoritmos e Programação
	Com um número definido de repetições
	Exemplo 1
	Laços em C: comando for
	Interpretação do comando for
	Sintaxe
	Sintaxe: atenção
	Exemplo 1
	Exemplo 1
	Exemplo 1
	Exemplo 1
	Interpretação do comando for
	Exemplo 2
	Exemplo 2
	Exemplo 3: resolução COM repetição
	Exemplo 3: resolução COM repetição
	Incremento ou decremento
	Incremento ou decremento
	Exemplo 4: em Português estruturado
	Exemplo 4: em Linguagem C
	Exemplo 5: para dentro de para
	Exemplo 6
	Exemplo 6
	Exemplo 6
	Referências

Outros materiais