[PASCAL] Aidez moi!!

Aidez moi!! [PASCAL] - Delphi/Pascal - Programmation

Marsh Posté le 17-06-2003 à 05:06:07    

J'ai besoin d'aide avec quelques lignes de code en PASCAL. Je viens de commencer à programmer en PASCAL et j'aimerais savoir où se trouvent mes erreurs. Je n'arrive pas à compiler ces lignes de code:
 
PROGRAM NameRegistration;
 
 VAR
  FileName : TEXT;
  FirstName, LastName : TEXT;
  Age, Height, Weight : INTEGER;
 
BEGIN
 
 WRITELN ('Please enter your First Name: ');
 READLN (FirstName);
 
 (* ---- Beginning of Error Control ---- *)
   
 IF FirstName = '' THEN
 
  BEGIN
   WRITELN ('<<You must enter a First Name!>>');
   READLN;
   WRITELN;
   WRITELN ('Please enter your First Name: ');
   READLN (FirstName);
  END;
 
 
 (* ------- End of Error Control ------- *)
 
 WRITELN ('Please enter your Last Name: ');
 READLN (LastName);
 WRITELN ('Please enter your Age: ');
 READLN (Age);
 WRITELN ('Please enter your Height: ');
 READLN (Height);
 WRITELN ('Please enter your Weight: ');
 READLN (Weight);
 WRITELN;
 WRITELN ('[Hit Enter to Begin Process]');
 READLN;
 
 (* --- Beginning of File Operations --- *)
 
 ASSIGN (FileName, 'C:\WINDOWS\DESKTOP\', LastName, '.txt');
 REWRITE (FileName);
 WRITELN (FileName, 'First Name: ', FirstName);
 WRITELN (FileName, 'Last Name: ', LastName);
 WRITELN (FileName, 'Age: ', Age);
 WRITELN (FileName, 'Weight: ', Weight);
 WRITELN (FileName, 'Height: ', Height);
 CLOSE (FileName);
 
 (* ------ End of File Operations ------ *)
END.  


---------------
Aime son JAVA bien chaud le matin.
Reply

Marsh Posté le 17-06-2003 à 05:06:07   

Reply

Marsh Posté le 17-06-2003 à 09:26:17    

Pascal c loin ...
 
Il manque pas un USE CRT; ou USES CRT;
 
un truc comme ça (bibliothèque de fonction)
en début de programme ?

Reply

Marsh Posté le 17-06-2003 à 09:28:50    

Et ça m'étonnerait que ça marche ...
 
ASSIGN (FileName, 'C:\WINDOWS\DESKTOP\', LastName, '.txt');
 
Un coup d'aide sur le ASSIGN pour vérifier la syntaxe
serait pas 2 trop ...

Reply

Marsh Posté le 17-06-2003 à 09:59:46    

tu devrais mettre un titre plus explicite :o


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

Marsh Posté le 17-06-2003 à 10:48:50    

Et puis tu devrais aussi mettre le ou les messages d'erreur du compilateur, puisque tu n'arrives pas à compiler.
 
Le compilateur donne toujours précisément où il voit une erreur, et quelle erreur il voit. C'est pluitôt pratique, vu que nous ne sommes pas des compilateurs ambulants (sinon on n'aurait pas besoin d'un compilateur pour vérifier nos programmes).

Reply

Marsh Posté le 17-06-2003 à 13:44:51    

Et puis c'est pas propre de faire
FileName : TEXT;
FirstName, LastName : TEXT;
C'est mieux tout dans la meme ligne  [:alvas]
 
Et puis la partie IF machin = '' bah c'est pas beau non plus  :kaola:  
En pascal ya pas une routine do until ? marquer d'entrer le firstname tant qu'on n'entre rien ?


Message édité par Crazy-Eagle le 17-06-2003 à 13:49:28
Reply

Marsh Posté le 17-06-2003 à 14:10:19    

Purée Neosparky t'as bien fait de passer !
C ta fête today  :lol:

Reply

Marsh Posté le 17-06-2003 à 16:48:38    

Merci pour les commentaires. Je ne suis qu'un simple petit programmeur qui espère exceler dans le futur. Anyways!!! Merci! :jap:


---------------
Aime son JAVA bien chaud le matin.
Reply

Marsh Posté le 19-06-2003 à 01:50:16    

PROGRAM NameRegistration;
 
 VAR
  FirstName, FileName : TEXT;
  Age, Height, Weight : INTEGER;
 
BEGIN
 
 WRITELN ('Please enter your First Name: ');
 READLN (FirstName);
 
 (* ---- Beginning of Error Control ---- *)
   
 IF FirstName = '' THEN
 
  BEGIN
   WRITELN ('<<You must enter a First Name!>>');
   READLN;
   WRITELN;
   WRITELN ('Please enter your First Name: ');
  END;
   
 (* ------- End of Error Control ------- *)
 
 WRITELN ('Please enter your Age: ');
 READLN (Age);
 WRITELN ('Please enter your Height: ');
 READLN (Height);
 WRITELN ('Please enter your Weight: ');
 READLN (Weight);
 WRITELN;
 WRITELN ('[Hit Enter to Begin Process]');
 READLN;
 
 (* --- Beginning of File Operations --- *)
 
 ASSIGN (FileName, 'C:\WINDOWS\DESKTOP\test.txt');
 REWRITE (FileName);
 WRITELN (FileName, 'First Name: ', FirstName);
 WRITELN (FileName, 'Age: ', Age);
 WRITELN (FileName, 'Weight: ', Weight);
 WRITELN (FileName, 'Height: ', Height);
 CLOSE (FileName);
 
 (* ------ End of File Operations ------ *)
END.  
 
 
Bon quand je compile ces ligne de codes dans un compilateur, il me donne ces 2 erreurs:
 
ERROR:  (18,5): Type mismatch   <----- le IF
ERROR:  (43,37): Invalid expression   <------ La partie FirstName en gras
 
Je ne vois pas les erreurs dans ces lignes... p-e vous en voyez?


Message édité par neosparky le 19-06-2003 à 01:52:53

---------------
Aime son JAVA bien chaud le matin.
Reply

Marsh Posté le 19-06-2003 à 11:16:42    

Utilise string à la place de text
 
FirstName, FileName : TEXT;
=>  
Pour lire une variable de type TEXT ça serait
un read que tu devrais utiliser pour parcourir
les lignes de ton texte ...

Reply

Marsh Posté le 19-06-2003 à 11:16:42   

Reply

Marsh Posté le 19-06-2003 à 11:53:13    

Oui, comme dit vttman2, le type TEXT en Pascal n'est pas un type "chaine de caractères de longueur indéterminée", mais un type "fichier texte". Et on ne peut comparer une variable de type fichier à une variable de type chaine de caractères ('' est de type string).

Reply

Marsh Posté le 19-06-2003 à 15:36:00    

Ahh que je suis con! Je viens juste de comprendre. Je me suis melangé avec du VB c'est pour ca que je pense toujours texte et pas string...
 
En passant, ca fonctionnne enfin. La il faut juste que je trouve une meilleur facon de faire mon controle d'erreur parce qu'un simple IF THEN ne marche pas. Quelques idées?
 
Merci Tout le monde! :jap:


Message édité par neosparky le 19-06-2003 à 15:41:17

---------------
Aime son JAVA bien chaud le matin.
Reply

Marsh Posté le 19-06-2003 à 15:54:14    

FirstName := '';
Writeln('Please enter your first name:');
repeat
  Readln(FirstName);
  if FirstName = '' then
    Writeln('You must enter your first name !');
until FirstName <> '';


 
Ça devrait aller.
Si tu veux qu'il marque à chaque fois le "please enter..." il suffit de le mettre après le repeat au lieu de le mettre avant.


Message édité par antp le 19-06-2003 à 15:55:06

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

Marsh Posté le 20-06-2003 à 03:18:38    

une fois de plus, merci encore pour votre aide. Vous me verrez surement plus tard avec de nouvelles questions concernant PASCAL.


---------------
Aime son JAVA bien chaud le matin.
Reply

Sujets relatifs:

Leave a Replay

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