Enquanto ou Para
Gleyton Menezes
Respostas
Eduardo Pessoa
03/12/2014
Marisiana Battistella
03/12/2014
Poderia postar um exemplo simples com cada um dos laços de repetição para vermos a sintaxe?
Gleyton Menezes
03/12/2014
var
PRODUTO : VETOR[1..8] DE CARACTER
PRECO : VETOR[1..8] DE REAL
CONT : INTEIRO
inicio
// Seção de Comandos
CONT <- 1
ENQUANTO CONT <= 8 FACA
ESCREVA("INFORME PRODUTO ", CONT, " : ")
LEIA(PRODUTO[CONT])
ESCREVA("INFORME PREÇO PRODUTO ", CONT, " : ")
LEIA(PRECO[CONT])
CONT <- CONT + 1
FIMENQUANTO
CONT <- 1
ENQUANTO CONT <= 8 FACA
ESCREVAL("PRODUTO/PREÇO")
ESCREVAL(" ",PRODUTO[CONT])
ESCREVAL(" ",PRECO[CONT])
CONT <- CONT + 1
FIMENQUANTO
fimalgoritmo
PARA
inicio
// Seção de Comandos
PARA CONT DE 1 ATE 5 FACA
ESCREVA("NOME DO PRODUTO: ", CONT, " : ")
LEIA(PRODUTO[CONT])
ESCREVA("QUANTIDADE DE PRODUTOS: ")
LEIA(QTD[CONT])
ESCREVA("VALOR DO PRODUTO")
LEIA(VALOR[CONT])
VALORTOTALPROD[CONT] <- VALOR[CONT] * QTD[CONT]
TOTALCOMPRA <- TOTALCOMPRA + VALORTOTALPROD[CONT]
FIMPARA
LIMPATELA
PARA CONT DE 1 ATE 5 FACA
ESCREVA(PRODUTO[CONT], " ")
ESCREVA(QTD[CONT], " ")
ESCREVA(VALOR[CONT], " ")
ESCREVA(VALORTOTALPROD[CONT], " ")
FIMPARA
ESCREVAL("VALOR TOTAL DA COMPRA", TOTALCOMPRA)
fimalgoritmo
Marisiana Battistella
03/12/2014
Pedi para que postasse os exemplos pois existe o laço de repetição DO WHILE ( FAÇA ENQUANTO )...
Vou utilizar um dos teus códigos apenas para exemplificar:
CONT <- 1
FACA
ESCREVA("INFORME PRODUTO ", CONT, " : ")
LEIA(PRODUTO[CONT])
ESCREVA("INFORME PREÇO PRODUTO ", CONT, " : ")
LEIA(PRECO[CONT])
CONT <- CONT + 1
ENQUANTO CONT > 8;
Nesse caso o laço sempre será executado uma vez, pois a condição apenas será executada ao final de cada execução.
Marisiana Battistella
03/12/2014
[url:descricao=Estrutura de repetição - WHILE]http://www.tiexpert.net/programacao/c/while.php[/url]
[url:descricao=Estrutura de repetição - FOR]http://www.tiexpert.net/programacao/c/for.php[/url]
[url:descricao=Estrutura de repetição - DO WHILE]http://www.tiexpert.net/programacao/c/do-while.php[/url]
Gleyton Menezes
03/12/2014
Marisiana Battistella
03/12/2014
Ronaldo Lanhellas
03/12/2014
O ENQUANTO (while) é usado quando você tem uma assertiva e deseja que o laço continue enquanto aquela assertiva for verdadeira, por outro lado o PARA (for) é utilizado em conjunto com um contador, ou seja, para situações em que você precisa iterar uma quantidade exata de vezes.
Ronaldo Lanhellas
03/12/2014
O ENQUANTO (while) é usado quando você tem uma assertiva e deseja que o laço continue enquanto aquela assertiva for verdadeira, por outro lado o PARA (for) é utilizado em conjunto com um contador, ou seja, para situações em que você precisa iterar uma quantidade exata de vezes.
Gleyton Menezes
03/12/2014
errei, não é o contador e sim o "inicializar" a variavel. desculpe.
Gleyton Menezes
03/12/2014
O ENQUANTO (while) é usado quando você tem uma assertiva e deseja que o laço continue enquanto aquela assertiva for verdadeira, por outro lado o PARA (for) é utilizado em conjunto com um contador, ou seja, para situações em que você precisa iterar uma quantidade exata de vezes.
Não é o ENQUANTO que precisa de um contador ou uma variavel inicializavel? calma, calma...hehehe
Ronaldo Lanhellas
03/12/2014
O ENQUANTO (while) é usado quando você tem uma assertiva e deseja que o laço continue enquanto aquela assertiva for verdadeira, por outro lado o PARA (for) é utilizado em conjunto com um contador, ou seja, para situações em que você precisa iterar uma quantidade exata de vezes.
Não é o ENQUANTO que precisa de um contador ou uma variavel inicializavel? calma, calma...hehehe
Bom, ambos você pode usar para o mesmo propósito, isso é fato. Porém, o ENQUANTO é mais utilizado para assertivas e não com contador, mas nada impede que você use o enquanto com um contador.
Gleyton Menezes
03/12/2014
Soeuseijothaz
03/12/2014
Só completando:
O PARA sempre vai ser executado, pois ele é declarativo,
PARA CONT DE 1 ATE 5 FACA
O ENQUANTO só será executado se atender a condição. No exemplo a seguir o contador não vai satisfazer a condição, então nem irá entrar no laço.
CONT <- 10
ENQUANTO CONT <= 8 FACA
ESCREVA("INFORME PRODUTO ", CONT, " : ")
LEIA(PRODUTO[CONT])
ESCREVA("INFORME PREÇO PRODUTO ", CONT, " : ")
LEIA(PRECO[CONT])
CONT <- CONT + 1
FIMENQUANTO
Gleyton Menezes
03/12/2014
CONT <- 10 ENQUANTO CONT <= 8 FACA
Marisiana Battistella
03/12/2014
Soeuseijothaz
03/12/2014
CONT <- 10 ENQUANTO CONT <= 8 FACA
O exemplo não foi o melhor.
Só completando as vezes você pode usar um ENQUANTO e a variável usada, por algum motivo ter seu valor alterado durante o processamento e por isso não atender a condição definida não executando o que esta dentro do laço.
Generalizando use o PARA quanto for itera array, matrizes, coleções e sequências numéricas. E você souber com antecedência a quantidade total de elementos.
Para ler aquivos (ou algum tipo de quebra) use ENQUANTO/REPITA pois você não sabe o total de iterações, então você testa se chegou ao fim da do aquivo e sai.
Em teoria você pode usar um ou outro em quase todos os casos, porém sempre um deles será o mais indicado, dependemdo do cenário onde será aplicado.
Marisiana Battistella
03/12/2014
Já não lembrava mais dos detalhes que diferenciam eles...
Gleyton Menezes
03/12/2014
Jothaz, ainda está um pouco dificil de assimiliar, mas vou conseguir! mais uma vez obrigado.
Soeuseijothaz
03/12/2014
Jothaz, ainda está um pouco dificil de assimiliar, mas vou conseguir! mais uma vez obrigado.
No código o cont recebe o valor 10 (não -10) que é maior que o valor mínimo para entrar na condição do ENQUANTO e não roda nada do que esta dentro do laço.
Se recebesse o valor negativo (-10) então executaria o laço e seguiria a lógica até chegar a 8, como você exemplificou acima.
Realmente o começo é confuso, mas o tempo vai aparando as arestas.
Gleyton Menezes
03/12/2014
Marisiana Battistella
03/12/2014
Ser eu puder deixar uma dica... Uma coisa que me ajudou a aprender a lógica de programação foram os testes de mesa.
Fiz isso até adquirir uma "certeza" mais lógica a ponto de olhar e saber identificar o que podia estar errado.
Gleyton Menezes
03/12/2014
Marisiana Battistella
03/12/2014
Pra entender lógica de programação tem que aprender a fazer teste de mesa e compreender o porque de cada sinal, de cada comando,...
É como aprender matemática...
Gleyton Menezes
03/12/2014
Marisiana Battistella
03/12/2014
Bom estudo!
Gleyton Menezes
03/12/2014