Pascal : erreur dans READ et WRITE

Pascal : erreur dans READ et WRITE - Delphi/Pascal - Programmation

Marsh Posté le 26-10-2003 à 12:46:18    

Bonjour, dans un livre d'apprentissage en pascal, j'ai exactement le programme ci dessous mais mon compilateur Turbo Pascal 7.0 me renvoie l'erreur 64 : connot read or write variablezs of this types... J'aimerai savoir pourquoi et comment arranger le problème ?  
 
Voici le programme :  
 
Program Grand_Petit ;
 
var SEX: (F,M);
    MAJEUR,PETIT,GRAND,FEMME,HOMME:boolean;
    AGE:1..120 ;
    TAILLE:50..250 ;
 
begin
read(SEX,AGE,TAILLE);  {c'est ici que se pose l'erreur et plus loin aussi dans le programme si j'enleve le SEX dans read}
FEMME:=SEX=F;
HOMME:=not FEMME;
MAJEUR:=AGE>18;
if FEMME
   then begin
        PETIT:=TAILLE<150;
        GRAND:=TAILLE>170;
   end
   else begin
        PETIT:=TAILLE<160;
        GRAND:=TAILLE>180;
   end;
writeln(MAJEUR,FEMME,HOMME);
writeln(AGE,PETIT,GRAND);
end.
 
 
Merci bcp !


Message édité par alextoch le 26-10-2003 à 12:46:54
Reply

Marsh Posté le 26-10-2003 à 12:46:18   

Reply

Marsh Posté le 26-10-2003 à 12:56:47    

f et m sont juste des valeurs que tu utilises à la compilation.
Elles seront remplacées par 0 et 1.
Si tu veux que l'utilisateur puisse entrer f ou m tu dois déclarer ton type comme ('f','m') ou un truc du genre (ou bien tu le déclares comme Char simplement).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-10-2003 à 13:10:20    

Merci mais je ne comprend pas bien ce qu'il faut que je fasse. Si je déclare un type avant le var : type SEX=(F,M);, ca ne change pas  et si je déclare SEX comme char et bien il me dit à la ligne FEMME:=SEX=F (Error; Unknow Identifier).

Reply

Marsh Posté le 26-10-2003 à 13:11:05    

bah oui faut le comparer à 'F' ou 'f' alors...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-10-2003 à 13:36:17    

Ah oui merci bcp ! J'avais oublier l'apostrophe. Maintenant le programme fonctionne si je met char mais le but du cour je crois c t d'utiliser les types scalaires ce que je n'arrive pas a faire. Si je met à la place de var SEX: (F,M); ca : var SEX: ('F','M'); ca marche encore moins car l'erreur est dès cette ligne la. Auriez vous d'autres idées?  
 
merci bcp !


Message édité par alextoch le 26-10-2003 à 13:36:45
Reply

Marsh Posté le 26-10-2003 à 13:52:36    

Tu dois peut-être définir un type alors...  
Sinon déclare ta variable comme étant un Char.
Si tu veux quand même utiliser un type énuméré "(m, f)" tu dois lire le choix de l'utilisateur dans un Char et ensuite faire quelque chose du genre :
 
case Choix of
  'f', 'F': sex := F;
  'm', 'M': sex := M;
else
  Writeln('Choix invalide');
end;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-10-2003 à 14:33:50    

Merci ca marche parfaitement :)  
Ce qui est bizarre c'est que dans mon livre le programme qu'ils montrent en exemple c'est celui qui marche pas, je trouve ca énervant ... A moins que le read et write est plus limité sur certains compilateurs auquel cas sur d'autres plus puissant cela aurait marcher....

Reply

Marsh Posté le 26-10-2003 à 14:49:48    

Possible, mais ce qui est sûr c'est que l'utilisateur n'aurait pas pu entrer une lettre : juste un chiffre.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed