Ir ao conteúdo
  • Cadastre-se

Não sei onde estou errando!! Algoritmo com estrutura de repetição e condição 'se'


Ludston

Posts recomendados

Boa noite galera,

Estou com um problema neste código, não sei porque estou errando, mas sei onde o erro está kkkk o algoritmo não esta respeitando a condição (se n1%2=0 então) mesmo quando ela é verdadeira. Já testei em um bloco em branco, e da certo, mas quando eu monto o código completo, mesmo que o número seja par ele salta e vai o 'senao' que identifica ele como ímpar.


Algoritmo "Exercicio2"
var
n1,p,i,cont:real
inicio
// Seção de Comandos
escreval("Este algoritmo vai encerrar quando o usuário digitar um número negativo.")
escreval("Em seguida informará o percentual de números pares e ímpares digitados.")
escreval(" ")

repita
escreva("Informe o número desejado: ")
leia(n1)

se n1%2=0 então
p:=p+1
senao
se n1<0 então
senao
se n1=0 então
senao
i:=i+1
fimse
fimse
fimse
cont:=cont+1
ate n1<0

escreval(" ")
escreval("Desconsiderando o número negativo.")
escreva("Entre os números digitados, " ,((p/(cont-1))*100), "% eram números pares e " ,((i/(cont-1))*100), "% ímpares.")

fimalgoritmo

Estou começando a aprender algoritmo, desculpa pelo código extenso. Ainda não manjo dos paranauê.

Link para o comentário
Compartilhar em outros sites

Olá,

''n%2= 0'', qual a lógica disso?

Para saber se o número é par fazemos n1 mod 2 = 0, isso deveria entrar no ''se'', caso sua intenção fosse achar números pares.

n1%2=0 é a mesma coisa que n1 mod 2 = 0

é apenas uma maneira diferente de escrever, porém ambas funcionam e já testei as 2 e nenhuma deu.

Link para o comentário
Compartilhar em outros sites

Cara sinceramente nem eu entendi dessa vez.... mas funcionou


algoritmo "Exercicio2"
// Função :
// Autor :
// Data : 05/11/2013
// Seção de Declarações
var
n1,p,i,cont:inteiro
inicio
// Seção de Comandos
escreval("Este algoritmo vai encerrar quando o usuário digitar um número negativo.")
escreval("Em seguida informará o percentual de números pares e ímpares digitados.")
escreval(" ")
cont:=0
repita
escreva("Informe o número desejado: ")
leia(n1)

se n1<0 então
escreval("Código finalizado!")
senao
se n1%2=0 então
p:=p+1
senao
i:=i+1
fimse
fimse

cont:=cont+1
ate n1<0

escreval(" ")
escreval("Desconsiderando o número negativo.")
escreval("Entre os números digitados" ,((p/(cont-1))*100), "% eram pares e" ,((i/(cont-1))*100), "% eram ímpares.")
fimalgoritmo

Tá praticamente do mesmo jeito!!! kkkk

Eu refiz ele do zero usando a lógica que eu já tinha de como montar a estrutura, mas ainda não entendi porque no primeiro ele não estava funcionando :confused: (não tem nada a ver com cont:=cont+1)

Link para o comentário
Compartilhar em outros sites

Ludston,

Como disse antes, a operação módulo é realizada entre números inteiros. n1 era uma variável do tipo real. Esse era o problema.

[]'s

LNW

Não sabia, e nem tinha percebido que mudei o tipo de variável quando reescrevi o código kkkk

valeu você esclareceu uma dúvida e tanto :D

Tópico encerrado galera, meu problema foi resolvido! Obrigado galera

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...