Entier ou réel

traxiku Messages postés 43 Statut Membre -  
Dalfab Messages postés 720 Statut Membre -
program entier_ou_reel;
uses wincrt ;
var n : integer ; s : real ;
Begin
writeln ('donner un nombre : ') ;

readln (s) ;

s := n;
if (n mod 2) = 0 then write (' cet nombre est entier ')

else if ( (n +1) mod 2 ) = 0 then

write ('cet nombre est entier')
else write (s,'cet nombre est réel ') ;

end.


___________________________________
quand j'entre un réel il me dit erreur !! solution

2 réponses

Chekchak Messages postés 39 Statut Membre 3
 
parce que l'instruction ( s:=n; ) c'est a dire que S reçoit la valeur de n , alors que n n'a pas de valeur .... normalement ça doit etre n:=s, mais dans ce cas t'as un problem avec la declaration parce que un entier ne peut pas recevoir la valeur d'un entier, ton programme veux savoir si le nombre est entier ou pas , dans tout les cas s'il l'est ou pas ! il est toujours réel , alors tout doit etre réel ! et pourquoi utiliser 2 varbiable ? tu peux seulement utiliser n voici le programme tu va mieux comprendre :) :
program entier_ou_reel;
uses wincrt ;
var n : real ;
Begin
writeln ('donner un nombre : ') ;

readln (n) ;

if (n mod 2) = 0 then write (' cet nombre est entier ')

else if ( (n +1) mod 2 ) = 0 then

write ('cet nombre est entier')
else write (s,'cet nombre est réel ') ;

end.
0
Dalfab Messages postés 720 Statut Membre 101
 
Bonjour,

Le code cherche à distinguer des nombres entiers pair, impairs ou des réels.
La chronologie est erronée, je propose plutôt :
program entier_ou_reel; 
uses wincrt ;
var n : integer ; s : real ;
Begin

writeln ('donner un nombre : ') ;
readln (s) ;

n := trunc(s);

{ les entiers sont egaux a leur partie entiere contrairement au reels }

if (n != s) then writeln( 'le nombre ' , s , ' est réel' )
else if (n mod 2) = 0 then writeln ( ' le nombre ' , s , ' est un entier pair' )
else writeln( 'le nombre ' , s , ' est un entier impair' ) ;

end.
0