Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dimas Albuquerque Mendes

[Loop] Uma questão

Recommended Posts

É o seguinte galera, eu tô estudando lógica de programação, na parte de looping, daí tem os métodos "enquanto", "repete" e "para"

 

Essa questão aqui:

 

1 - a) Apresentar o quadrado dos números inteiros de 15 a 200 pelos três métodos

 

Como eu fiz

 

Enquanto

programa LOOP_1A
var
 N,N2: inteiro
início
 N <- 15
 enquanto (N >= 15) .e. (N <=200) faça
 N2 <- N * N
 escreva "O quadrado de ", N, " é: ", N2
 N <- N + 1
 fim_enquanto
fim

 

minha dúvida: posso usar o comando ".e." ".ou." e ".não." junto com enquanto e usar 2 condições como fiz?

 

Para

 

programa LOOP1A_PARA
var
 N, N2: inteiro
início
 para N de 15 até 200 passo 15 faça
 N2 <- N * N
 escreva "O quadrado de ", N, " é: ", N2
 fim_para
fim

 

nesse ai quero saber se está certo. Pela minha lógica, irá começar de 15 ir até 200 mostrando os quadrados

 

Repita

programa LOOP1A_REPITA
var
 N, N2: inteiro
início
 N <- 15
 repita
 N2 <- N * N
 escreva "O quadrado de ", N, " é: ", N2
 até que (N <> 200)
fim

 

Também quero saber se fiz uso correto do repita

Compartilhar este post


Link para o post
Compartilhar em outros sites

var
 N,N2: inteiro
inicio
 N <- 15
 enquanto (N >= 15) e (N <=200) faca
   N2 <- N * N
   escreval ("O quadrado de ", N, " é: ", N2)
   N <- N + 1
 fimenquanto
fimalgoritmo

 

Está correto, na verdade você deve fazer uso de e, ou, não, estruturas de repetição enquanto e repita diferente de para não sabem a quantidade de vezes que iram rodar portanto devem possuir uma condição de parada. No caso do enquanto enquanto a condição for verdadeira ele continua rodando.

inicio
 para N de 15 ate 200 faca
      N2 <- N * N
      escreval ("O quadrado de ", N, " é: ", N2)
 fimpara

 

Esse não vai fazer o que você pretende, repare:

para N de 15 ate 200 passo 15 faça

esse passo significa a forma como ele irá incrementar o N, no caso o seu N começa com 15 e a cada rodada ele ganha mais 15, então você teria

1 - 15

2 - 30

3 - 45

...

 

o correto, caso você queira que o N incremente de 1 em 1, seria:

para N de 15 ate 200 passo 1 faça

você tambem pode declarar assim:

para N de 15 ate 200 faça

quando não está declarado o passo ele já entende que é para incrementar de 1 em 1.

N <- 15
repita
  N2 <- N * N
  escreval ("O quadrado de ", N, " é: ", N2)
  N <- N + 1
ate (N > 200)

Este também tem alguns erros, o repita é muito parecido com o enquanto a diferença é:

 

enquanto checa a condição no inicio, a condição para rodar é que seja verdadeira, se a condição for falsa logo na primeira rodada ele irá pular a estrutura, portanto ele pode rodar 0 ou n vezes.

 

repita checa a condição no final, a condição para rodar é que seja falsa, se a condição for verdadeira ele para, portanto ele irá rodar pelo menos uma vez até n vezes.

 

A condição que você usou N <> 200 é verdadeira portanto ele irá rodar apenas uma vez, você deve utilizar uma condição que seja falsa para continuar rodando, N > 200 = falso entao ele continua.

Faltou incrementar o N tambem, N <- N + 1, assim como você fez no enquanto e no para.

 

Observar tambem que você estará mostrando várias vezes a mesma linhas, utilize uma quebra de linha para que não fiquem todas grudadas uma na outra, você pode utilizar escreval() que faz o cursor ir para a linha de baixo no final da escrita.

Compartilhar este post


Link para o post
Compartilhar em outros sites

var
 N,N2: inteiro
inicio
 N <- 15
 enquanto (N >= 15) e (N <=200) faca
   N2 <- N * N
   escreval ("O quadrado de ", N, " é: ", N2)
   N <- N + 1
 fimenquanto
fimalgoritmo

 

Está correto, na verdade você deve fazer uso de e, ou, não, estruturas de repetição enquanto e repita diferente de para não sabem a quantidade de vezes que iram rodar portanto devem possuir uma condição de parada. No caso do enquanto enquanto a condição for verdadeira ele continua rodando.

inicio
 para N de 15 ate 200 faca
      N2 <- N * N
      escreval ("O quadrado de ", N, " é: ", N2)
 fimpara

 

Esse não vai fazer o que você pretende, repare:

para N de 15 ate 200 passo 15 faça

esse passo significa a forma como ele irá incrementar o N, no caso o seu N começa com 15 e a cada rodada ele ganha mais 15, então você teria

1 - 15

2 - 30

3 - 45

...

 

o correto, caso você queira que o N incremente de 1 em 1, seria:

para N de 15 ate 200 passo 1 faça

você tambem pode declarar assim:

para N de 15 ate 200 faça

quando não está declarado o passo ele já entende que é para incrementar de 1 em 1.

N <- 15
repita
  N2 <- N * N
  escreval ("O quadrado de ", N, " é: ", N2)
  N <- N + 1
ate (N > 200)

Este também tem alguns erros, o repita é muito parecido com o enquanto a diferença é:

 

enquanto checa a condição no inicio, a condição para rodar é que seja verdadeira, se a condição for falsa logo na primeira rodada ele irá pular a estrutura, portanto ele pode rodar 0 ou n vezes.

 

repita checa a condição no final, a condição para rodar é que seja falsa, se a condição for verdadeira ele para, portanto ele irá rodar pelo menos uma vez até n vezes.

 

A condição que você usou N <> 200 é verdadeira portanto ele irá rodar apenas uma vez, você deve utilizar uma condição que seja falsa para continuar rodando, N > 200 = falso entao ele continua.

Faltou incrementar o N tambem, N <- N + 1, assim como você fez no enquanto e no para.

 

Observar tambem que você estará mostrando várias vezes a mesma linhas, utilize uma quebra de linha para que não fiquem todas grudadas uma na outra, você pode utilizar escreval() que faz o cursor ir para a linha de baixo no final da escrita.

 

Ah cara, muito obrigado por sanar minhas dúvidas, te devo essa! Eu tinha visto esse erro que faltou o N <- N + 1 eu ajeitei depois mas no caderno xD mas valeu mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah cara, muito obrigado por sanar minhas dúvidas, te devo essa! Eu tinha visto esse erro que faltou o N <- N + 1 eu ajeitei depois mas no caderno xD mas valeu mesmo!

 

Por nada kra, precisando e se eu puder ajudar :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.