Ir ao conteúdo

Erro com o comando mod do pascal


tiagofraco

Posts recomendados

Postado

Qual é o problema desse progrma? eu fiz ele todo certinho mas quando vai na parte do MOD fica dando erro! :/ O que sera que eu to fazendo de errado..? deem uma olhadinha aí

------------------

program q3;

uses crt;

var

 num:array [1..50] of real;

 ax:integer; {já atribui como real também e não funcionou}

 i,contimp,contpar:integer;

begin

 contimp:=0;

 contpar:=0;

 for i:=1 to 50 do

  begin

   write('Digite o ',i,'º numero: ');

   readln(num);

   ax:= nummod 2;

   if ax=1 then

    contimp:=contimp+1;

   if ax=0 then

    contpar:=contipar+1;

   clr scr;

  end;

 writeln('Foram digitados ',contimp,' numero(s) impares');

 write('Foram digitados ',contpar,'numero(s) pares');

end.

Postado

Você está tentando tirar o módulo de uma divisão de um número real por um inteiro. O operador MOD só pode devolver o resto de divisões de inteiros. Para corrigir isso, troque o tipo do array:

num:array [1..50] of real;

ou transforme o valor do array em um inteiro no momento da divisão:


ax := round(num[i]) mod 2;   { arredondando }
ax := trunc(num[i]) mod 2;   { truncando }
ax := integer(num[i]) mod 2; { usando type-casting (não recomandado) }

  • Membro VIP
Postado

mod não é o módulo (esse é o abs, valor absoluto).

mod é o resto ou resíduo da divisão, como você explicou corretamente.

5 mod 3 = 2  que é igual a (5 - 3*(5 div 3))

Já vi em vários lugares as pessoas se referindo como módulo.  O Delphi chama de Remainder.

Postado

Hehe... descuido meu... foi a mania de usar "estrangeirismos"...  :laugh:

O operador se chama "Modulus". O correto seria dizer que "está tentando calcular o resto de uma divisão", mas eu disse "módulo" inconscientemente.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!