Ir ao conteúdo
  • Cadastre-se

Algoritmo de reptição


dcortes

Posts recomendados

Não consigo fazer esse algoritmo funcionar

1 Escreva um programa para repetir a leitura de um número enquanto o valor fornecido for diferente de 0. Para cada número fornecido, imprimir se ele é NEGATIVO ou POSITIVO. Quando o número 0 for fornecido a repetição de ser encerrada sem imprimir mensagem alguma.

OBS: Utilize uma estrutura de repetição Enquanto.

[Para os dados de entrada abaixo] [Deve ser gerada a seguinte saída]

4 Positivo

-1 Negativo

2 Positivo

6 Positivo

-7 Negativo

-2 Negativo

0

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá dcortes,

Não consigo fazer esse algoritmo funcionar

Tente fazer algo, e poste aqui as suas dúvidas.

Sugestão

Faça um programa mais simples... que leia só um número e diga se ele é par ou ímpar NEGATIVO ou POSITIVO. Depois faça as outras exigências.

PS:

- Os demais frequentadores do fórum poderão ajudá-lo a tirar dúvidas, mas não farão seu trabalho por você, por isso tente ao menos fazer seus exercícios e poste suas dúvidas, senão nunca irá aprender se receber tudo pronto.

^_^

Outras regras

No aguardo.

Link para o comentário
Compartilhar em outros sites

Eu fiz até aqui mas ele nao funciona direito fica calculando até infinito nao calcula um numero por vez.

algoritmo "semnome"

// Função :

// Autor :

// Data : 15/06/2012

// Seção de Declarações

var

cont, calc, num:real

inicio

// Seção de Comandos

cont:= 1

Escreval ("Digite um numero: ")

leia(num)

Enquanto cont <> 0 faca

cont:=cont + num

escreval (cont)

se cont > 0 então

escreval ("Positivo")

senao

escreval ("Negativo")

fimse

fimenquanto

fimalgoritmo

Como faço pra ele calcular um por vez.

Uso o programa Visualg

Link para o comentário
Compartilhar em outros sites

Eu fiz até aqui mas ele nao funciona direito fica calculando até infinito nao calcula um numero por vez.

algoritmo "semnome"

// Função :

// Autor :

// Data : 15/06/2012

// Seção de Declarações

var

cont, calc, num:real

inicio

// Seção de Comandos

cont:= 1

Escreval ("Digite um numero: ")

leia(num)

Enquanto cont <> 0 faca

cont:=cont + num

escreval (cont)

se cont > 0 então

escreval ("Positivo")

senao

escreval ("Negativo")

fimse

fimenquanto

fimalgoritmo

Como faço pra ele calcular um por vez.

Uso o programa Visualg

Acho que é isso

Var

Cont,Numero:inteiro;

Inicio

Numero:=1;

Cont:=0;

Enquanto Numero <>0 faca

Inicio

Escreva ('Digite um número ');

Leia (Numero);

Se Numero >= 1 então

Escreva ('Positivo');

Se Numero <= -1 então

Escreva ('Negativo');

Fim;

Cont:= Cont+1;

Fim

Ve se da certo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Ola dcortes,

Eu fiz até aqui mas ele nao funciona direito fica calculando até infinito nao calcula um numero por vez.

algoritmo "semnome"

// Função :

// Autor :

// Data : 15/06/2012

// Seção de Declarações

var

cont, calc, num:real

inicio

// Seção de Comandos

cont:= 1

Escreval ("Digite um numero: ")

leia(num)

Enquanto cont <> 0 faca

cont:=cont + num

escreval (cont)

se cont > 0 então

escreval ("Positivo")

senao

escreval ("Negativo")

fimse

fimenquanto

fimalgoritmo

Como faço pra ele calcular um por vez.

Uso o programa Visualg

Então, são dois detalhes diferentes:

1) Condição de repetição

Escreva um programa para repetir a leitura de um número enquanto o valor fornecido for diferente de 0.

Como o enunciado sugere (ou de certa forma exige), a condição para continuar repetindo ou não, está relacionada ao próprio valor do número que será verificado se é positivo ou negativo, ou seja, no seu caso, usar a variável num na condição do enquanto.

2) Leitura dos valores

Como faço pra ele calcular um por vez.

[COLOR="Red"]Escreval ("Digite um numero: ")
leia(num)[/COLOR]
Enquanto cont <> 0 faca

Faltou você colocar a leitura do valor dentro no laço de repetição. Teria que ficar dento do enquanto.

Lembrando que tem que corrigir as duas coisas...

***

Outros pontos:

3) Verificação do número

se cont > 0 então
escreval ("Positivo")
senao
escreval ("Negativo")

Em relação a verificação do valor, faltou outro pequeno detalhe: usar o próprio valor, no caso o num, no se.

3) Exibição do resultado

No enunciado:

[Para os dados de entrada abaixo] [Deve ser gerada a seguinte saída]

4 Positivo

-1 Negativo

2 Positivo

6 Positivo

-7 Negativo

-2 Negativo

0

No seu código:

  escreval ("Positivo")
escreval ("Negativo")

Você só está imprimindo o resultado. Está faltando colocar o valor antes, como sugere o enunciado.

4) Uso de um contador

O problema não sugere o uso de um contador, no caso o cont. Simplesmente retire-o.

No aguardo

Olá uchardcore,

Acho que é isso

Var

Cont,Numero:inteiro;

Inicio

Numero:=1;

Cont:=0;

Enquanto Numero <>0 faca

Inicio

Escreva ('Digite um número ');

Leia (Numero);

Se Numero >= 1 então

Escreva ('Positivo');

Se Numero <= -1 então

Escreva ('Negativo');

Fim;

Cont:= Cont+1;

Fim

Ve se da certo

Para o seu código, só dois detalhes principais: um é a questão comentada na minha postagem anterior sobre o uso de um contador (não precisa de um), e a outra é a condição se... tem duas pequenas falhas na lógica: uma é que não está abrangendo todos os números possíveis (no caso entre -1 e 1), por exemplo, o valor 0.5 é negativo ou positivo?; e ao outra é da questão das possibilidade serem "mutualmente exclusivas entre si", ou seja, se for positivo não pode ser negativo (e vice-versa), logo devem-se usar se/senao e não dois se.

Abraços

Link para o comentário
Compartilhar em outros sites

Olá uchardcore,

Para o seu código, só dois detalhes principais: um é a questão comentada na minha postagem anterior sobre o uso de um contador (não precisa de um), e a outra é a condição se... tem duas pequenas falhas na lógica: uma é que não está abrangendo todos os números possíveis (no caso entre -1 e 1), por exemplo, o valor 0.5 é negativo ou positivo?; e ao outra é da questão das possibilidade serem "mutualmente exclusivas entre si", ou seja, se for positivo não pode ser negativo (e vice-versa), logo devem-se usar se/senao e não dois se.

Abraços

Valeu mesmo, fiz correndo aqui no trabalho, estou no primeiro semestre de TADS e toda as explicações são de muita ajuda

Obrigado

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!