Ir ao conteúdo
  • Cadastre-se

Erro com o comando mod do pascal


tiagofraco

Posts recomendados

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.

Link para o comentário
Compartilhar em outros sites

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) }

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