Webly: [Aula 9] Estruturas de Repetição - Webly

Ir para

Página 1 de 1

[Aula 9] Estruturas de Repetição

#1 Membro offline   tmferreira Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 174
  • Cadastrado: 23-agosto 06
  • Localização:Campos dos Goytacazes - RJ
  • Interesses:Tudo relacionado à tecnologia. Adoro aprender!!!!

Postou 29 janeiro 2007 - 06:47

Olá pessoal! Vamos a nossa próxima aula!

O Felipe teve que se ausentar e me pediu que o substituísse.

Hoje falaremos das Estruturas de Repetição. Como já foi falado na 4ª aula, as estruturas de repetição são um pouco mais complexas e necessitam de um pouco mais de nossa atenção. Mas também não é um bicho de sete cabeças, você verão!

Existem dois tipos de Estruturas de Repetição: as condicionais e as incondicionais.

Para nossos estudos vamos dar o exemplo de uma pesquisa de intenção de votos que será concluída quando o número de 10 pessoas forem entrevistadas.

Estruturas de Repetição Condicionais

Os comandos dentro de uma Repetição Condicional têm sua execução repetida até que a condição lógica estabelecida seja satisfeita.

Vamos abordar dois tipos de Repetições Condicionais:

ENQUANTO...FAÇA

Sintaxe geral
ENQUANTO (condição) FAÇA
			bloco de comandos
FIM ENQUANTO

Exemplo
ENQUANTO (numero_pessoas <= 10) FAÇA
			RECEBA intencao_votos
FIM ENQUANTO

Diagrama de Blocos
[img=http://img11.imagepile.net/img11/thmb63393blocos-enquanto.png]

REPITA...ATÉ

Sintaxe geral
REPITA
			bloco de comandos
ATÉ (condição)

Exemplo
REPITA
			RECEBA intencao_votos
ATÉ (numero_pessoas > 10)


Diagrama de Blocos
[img=http://img9.imagepile.net/img9/thmb10855blocos-repita.png]

A diferença básica dessas duas estruturas é que a estrutura ENQUANTO...FAÇA testa a condição antes de executar o bloco de comando e a estrutura REPITA...ATÉ executa o bloco de comandos e depois testa a condição. Dessa maneira, a estrutura REPITA...ATÉ deve ser usada sempre que se queira executar o bloco de comandos ao menos uma vez.

Perceba também que, em geral, os operadores das condições das duas estruturas são inversos.

Estruturas de Repetição Incondicionais

Os comandos dentro de uma Repetição Incondicional têm sua execução repetida um determinado número de vezes.

PARA variável DE x ATÉ y PASSO z FAÇA

Este comando pode ser utilizado tanto em sentido crescente (x menor do que y e z positivo), quanto em sentido decrescente (x maior do que y e z negativo).

Onde,
x é o número inicial,
y é o número final, e
z é o incremento/decremento que ocorrerá em variável em cada repetição

Sintaxe geral
PARA variável DE x ATÉ y PASSO z FAÇA
			bloco de comandos
FIM PARA

Exemplo
PARA numero_pessoas DE 1 ATÉ 11 PASSO 1 FAÇA
			RECEBA intencao_votos
FIM PARA

Diagrama de Blocos
[img=http://img9.imagepile.net/img9/thmb14045blocos-para.png]

Exercícios
  • Em qual situação devemos usar Estruturas de Repetição Condicionais? E as Estruturas de Repetição Incondicionais?
  • Qual a diferença da estrutura ENQUANTO...FAÇA e REPITA...ATÉ?
  • Crie um algoritmo que receba a altura (em metros) de um grupo de pessoas até que a altura seja maior ou igual a 2,00 metros. Calcule e mostre a média de altura dos entrevistados.
  • Crie um algoritmo que receba os últimos 3 salários de um grupo de 20 pessoas e calcule e mostre a média salarial dos entrevistados.

.:. Thiago Ferreira .:.
0

#2 Membro offline   Thiago Rodrigues Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 48
  • Cadastrado: 22-dezembro 06
  • Interesses:Html + css + pradrões web + Php + Javascript + Ajax + Monetização

Postou 29 janeiro 2007 - 11:56

Primeiramente quero lhe dar os parabéns, a aula e os exercicios foram muito bons.

1. Em qual situação devemos usar Estruturas de Repetição Condicionais? E as Estruturas de Repetição Incondicionais?
R: Devemos utilizar estruturas de repetição condicionais quando queremos que a execução seja repetida até que uma condição lógica seja satisfeita.
Devemos utilizar estruturas de repetição incondicionaias quando queremos queremos que a execução seja repetida por um determinado número de vezes.

2. Qual a diferença da estrutura ENQUANTO...FAÇA e REPITA...ATÉ?
R: A estrutura ENQUANTO testa a condição lógica antes de executar o bloco de comandos - podendo não ser executado. Já a FAÇA e REPITA...ATÉ primeiro executa um bloco de comandos e depois testa a condição lógica, desta forma os comandos são executados ao menos uma vez.

3. Crie um algoritmo que receba a altura (em metros) de um grupo de pessoas até que a altura seja maior ou igual a 2,00 metros. Calcule e mostre a média de altura dos entrevistados.

INICIO
 real total_altura, altura, total_pessoas, media_altura;
 REPITA
	 ESCREVA ("Digite sua altura");
	 LEIA (altura);
	 total_altura := total_altura + altura;
	 total_pessoas := total_pessoas + 1;
 ATÉ (total_altura >= 2,00)
 FIM REPITA
 media_altura := total_altura / total_pessoas
	 ESCREVA ("A altura média dos entrevistados é" media_altura);
 FIM


4. Crie um algoritmo que receba os últimos 3 salários de um grupo de 20 pessoas e calcule e mostre a média salarial dos entrevistados.

INICIO
 real numero_pessoas, salario, total_salario, media_salario, ultimos_total, ultimos_media, ultimos_primeiro, ultimos_segundo, ultimos_terceiro;
 PARA numero_pessoas DE 1 ATÉ 20 PASSO 1 FAÇA
	 ESCREVA ("Digite seu salário");	
	 LEIA(salario)
	 total_salario := total_salario + salario;
	 SE numero_pessoas = 18;
		 ultimos_primeiro := salario;
		 ultimos_total := ultimos_media + salario;
	 SE numero_pessoas = 19;
		 ultimos_segundo := salario;
		 ultimos_total := ultimos_media + salario;
	 SE numero_pessoas = 20;
		 ultimos_terceiro := salario;
		 ultimos_total := ultimos_media + salario;
	 FIM SE
 FIM PARA
 ultimos_total := ultimos_media / 3;
 media_salario := total_salario / 20;
	 ESCREVA ("A média salarial entre os 20 entrevistado é", media_salario);
	 ESCREVA ("O salário dos últimos 3 entrevistados é respectivamente", ultimos_primeiro , ultimos_segundo , ultimos_terceiro";
	 ESCREVA ("A média salarial entre os 3 últimos entrevistados é", ultimos_total);
 FIM


Será que acertei?! :o
hehe
A dúvida está lançada!
Abraço

*UFA!! bem na hora de clicar em "adicionar resposta" deu tela azul aqui. Sai chingando tudo porque não tinha feito cópia. Mas graças ao Firefox e seu recurso de restaurar seção, volto aqui e com tudo que estava escrito!
Viva Firefox!! hehe
Conheça já:
NerdGames - Tecnologia com uma pitada de diversão
www.nerdgames.net/blog
0

#3 Membro offline   tmferreira Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 174
  • Cadastrado: 23-agosto 06
  • Localização:Campos dos Goytacazes - RJ
  • Interesses:Tudo relacionado à tecnologia. Adoro aprender!!!!

Postou 29 janeiro 2007 - 02:10

Thiago Rogrigues, pelo que vejo já está assimilando bem o algoritmo à programação! hehehe

Spo uma coisa:
PARA numero_pessoas DE 1 ATÉ 20 PASSO 1 FAÇA

Aqui deveria ser até 21, pois como pode ver no diagrama de blocos, o algoritmo testa se numero_pessoas = 20.

Parabéns!!!
.:. Thiago Ferreira .:.
0

#4 Membro offline   Thiago Rodrigues Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 48
  • Cadastrado: 22-dezembro 06
  • Interesses:Html + css + pradrões web + Php + Javascript + Ajax + Monetização

Postou 30 janeiro 2007 - 07:58

Ver posttmferreira, em 29/01/2007 - 14:10, disse:

Thiago Rogrigues, pelo que vejo já está assimilando bem o algoritmo à programação! hehehe

Na verdade eu já tenho um pouquinho de lógica, curso Tec.Informática em uma ETE aqui na minha cidade, agora estamos de férias, mas nós vimos até agora isto desta aula, estruturas de repetição - o que estraga lá é que tem muita gente leiga que mal sabia pegar no mouse, ai o prof. tem que ir mais lento.
Bom, então quer dizer que apartir da próxima aula posso estar vendo algo que nunca vi, hehehe.

Ver posttmferreira, em 29/01/2007 - 14:10, disse:

Spo uma coisa:
PARA numero_pessoas DE 1 ATÉ 20 PASSO 1 FAÇA

Aqui deveria ser até 21, pois como pode ver no diagrama de blocos, o algoritmo testa se numero_pessoas = 20.

Parabéns!!!

Hm, verdade, para que fosse da maneira como eu criei deveria ser de 0 até 20. Ná hora eu fiquei com dúvida.
Obrigado, o grupo está excelente.
Abraços!
Conheça já:
NerdGames - Tecnologia com uma pitada de diversão
www.nerdgames.net/blog
0

#5 Membro offline   shumi Ícone

  • Shumi
  • Grupo: Banidos
  • Posts: 1511
  • Cadastrado: 05-julho 06
  • Localização:São Paulo - SP
  • Interesses:TI em geral, publicidade e propaganda e crescimento

Postou 30 janeiro 2007 - 09:03

To gostando de ver Thiago Rodrigues o seu interesse!
Parabéns!!!

Abraços
VALEU A TODOS!!!
0

#6 Membro offline   dupa31 Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 65
  • Cadastrado: 03-dezembro 06

Postou 30 janeiro 2007 - 03:42

Está ficando muito difício para mim, estou começando aprender lógica da programação aki, com vcs, então paciência, e veja se meu exercício está certo, se não estiver certo, me explica a maneira correta. Grato

inicio
REAL altura-total, altura, total_pessoas, media_altura;
repita
	 ESCREVA ("Qual a sua altura ?");
	 LEIA (altura);
	 altura-total := altura-total + altura;
	 total_pessoas := total_pessoas  1;
ATÉ (total_altura >= 2.00)
fim repita
media_altura := altura-total / total_pessoas
	 ESCREVA ("A média da altura dos entrevistado é de" media_altura);
fim

Eduardo Virginio - Desenvolvedor Web
http://www.tag-designer.com
Desenvolvimento e Hospedagem
0

#7 Membro offline   tmferreira Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 174
  • Cadastrado: 23-agosto 06
  • Localização:Campos dos Goytacazes - RJ
  • Interesses:Tudo relacionado à tecnologia. Adoro aprender!!!!

Postou 31 janeiro 2007 - 07:43

Fala dupa31, não se preocupe que iremos ajudar e você continuará aprendendo e mantendo o ritmo. As estruturas de Repetição em conjunto com os Arranjos (próxima aula) são o que eu definiria como o principal a se aprender para se tornar um bom programador. Então estes conhecimentos têm que ficar bastante consolidados e não podemos seguir com dúvidas. Vamos ao seu algoritmo, que tem dois erros banais.

Na linha abaixo faltou um sinal de mais ( + ).
total_pessoas := total_pessoas  1;

Na linha abaixo, a variável que será a condição de parada é a altura do entrevistado e não a soma das alturas. O exercício pede que seja feita a entrevista até que a altura seja maior ou igual a 2 metros.
ATÉ (total_altura >= 2.00)

A linha abaixo não é necessária, pois o FIM do repita é o próprio até. Veja de novo a sintaxe geral.
fim repita


Fora isso está tranquilo. Como falei: Não deixe que as dúvidas prossigam pois as próximas aulas dependerão substancialmente do entendimento das estruturas de repetição.
.:. Thiago Ferreira .:.
0

#8 Membro offline   Clecio Oliveira Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 7
  • Cadastrado: 19-janeiro 07
  • Localização:Goiania-GO

Postou 31 janeiro 2007 - 09:15

Uma duvida:
Quando criamos o comando LEIA em uma estrutura com repetiçao condicional, ele ira realizar os calculos até chegar na condiçao ATÉ, se esta nao for satisfeita, a operaçao se repetirá.

ESCREVA ("Digite sua altura");
		  LEIA (altura);
		  total_altura := total_altura + altura;
		  total_pessoas := total_pessoas + 1;
		  ATÉ (total_altura >= 2,00)
		  FIM REPITA


Certo, supondo que a altura nao tenha sido maior-igual a 2,00, entao outra altura poderá ser digitada e somada com a altura anterior. ae vem minha duvida.

A altura anterior foi armazenada em total_altura sem o comando RECEBA?
E aquele comando CALCULE, nao eh mais necessario?

To na mesma do DUPA, ta começando a complicar... mas assim que bom!
0

#9 Membro offline   tmferreira Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 174
  • Cadastrado: 23-agosto 06
  • Localização:Campos dos Goytacazes - RJ
  • Interesses:Tudo relacionado à tecnologia. Adoro aprender!!!!

Postou 31 janeiro 2007 - 09:40

Clécio, o que ocorre é o seguinte: O pessoal que está postando declaração de variáveis e cálculos diretos com elas já está fazendo a ligação algoritmo <-> Linguagem.

Se você quiser, pode continuar usando o CALCULE sem problemas.
.:. Thiago Ferreira .:.
0

#10 Membro offline   Clecio Oliveira Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 7
  • Cadastrado: 19-janeiro 07
  • Localização:Goiania-GO

Postou 01 fevereiro 2007 - 10:10

Beleza, vou tentar entrar no ritmo das linguagens. Estou endendendo agora.



1-Em qual situação devemos usar Estruturas de Repetição Condicionais? E as Estruturas de Repetição Incondicionais?

As Estruturas de Repetiçao Condicionais devem ser utilizadas quando se deseja repitir uma ou mais operaçoes até que um limite pré-estabelecido seja atingido independente do numero de inserçoes. As incondicionais sao utilizadas quando se deseja determinar um numero de inserçoes limite para cessar as operaçoes. (foi isso que entendi)



2-Qual a diferença da estrutura ENQUANTO...FAÇA e REPITA...ATÉ

A estrutura ENQUANTO ...FAÇA, primeiramente verifica uma condiçao antes de executar o bloco de comandos. Ja REPITA ...ATÉ verifica uma condiçao depois de executado o bloco de comando

3-Crie um algoritmo que receba a altura (em metros) de um grupo de pessoas até que a altura seja maior ou igual a 2,00 metros. Calcule e mostre a média de altura dos entrevistados.

INICIO
REAL altura, altura_total, altura_media, pessoas_total;
REPITA
ESCREVA "Digite sua altura";

LEIA altura;
altura_total = altura_total + altura;
pessoas_total =  pessoas_total + 1;
altura_media = altura_total / pessoas_total;

ATÉ altura_total >= 2.00;
ESCREVA "A Média de altura dos entrevistados é" altura_media;
FIM  REPITA


Achei curioso nesse exercicio a parte "pessoas_total = pessoas_total + 1"
Vlw
0

#11 Membro offline   tmferreira Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 174
  • Cadastrado: 23-agosto 06
  • Localização:Campos dos Goytacazes - RJ
  • Interesses:Tudo relacionado à tecnologia. Adoro aprender!!!!

Postou 01 fevereiro 2007 - 11:33

Muito bom, Clécio.

Só atente para as nomeclaturas. Olhe a primeira questão:

Quote

As Estruturas de Repetiçao Condicionais devem ser utilizadas quando se deseja repitir uma ou mais operaçoes até que um limite pré-estabelecido seja atingido independente do numero de inserçoes. As incondicionais sao utilizadas quando se deseja determinar um numero de inserçoes limite para cessar as operaçoes. (foi isso que entendi)

Ao invés de inserções, use repetições.
.:. Thiago Ferreira .:.
0

#12 Membro offline   Clecio Oliveira Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 7
  • Cadastrado: 19-janeiro 07
  • Localização:Goiania-GO

Postou 02 fevereiro 2007 - 07:25

Roger That!
0

#13 Membro offline   Thiago Rodrigues Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 48
  • Cadastrado: 22-dezembro 06
  • Interesses:Html + css + pradrões web + Php + Javascript + Ajax + Monetização

Postou 04 fevereiro 2007 - 03:29

Ver postshumi, em 30/01/2007 - 09:03, disse:

To gostando de ver Thiago Rodrigues o seu interesse!
Parabéns!!!

Abraços


Obrigado!
*desculpe a demora, fiquei sem internet essa semana - problemas com provedor.
Mas já estou de volta para próxima aula. Amanhã né?
hehe
Abraço
Conheça já:
NerdGames - Tecnologia com uma pitada de diversão
www.nerdgames.net/blog
0

#14 Membro offline   shumi Ícone

  • Shumi
  • Grupo: Banidos
  • Posts: 1511
  • Cadastrado: 05-julho 06
  • Localização:São Paulo - SP
  • Interesses:TI em geral, publicidade e propaganda e crescimento

Postou 04 fevereiro 2007 - 02:03

é isso ai amanhã o tmferreira, já preparou uma aula muito boa!!! :thumbsup:
VALEU A TODOS!!!
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)