IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Free Pascal Discussion :

Error : Variable identifier expected [Free Pascal]


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Par défaut Error : Variable identifier expected
    Bonjour !
    Je prépare mon examen sur les records. J'ai fait un petit code pour enregistrer de membre d'une patrouille scout, celle-ci appartenant à une troupe.
    J'ai donc mis une procédure d'écrire et une de lecteur de l'enregistrement.
    Au moment de la compilation, j'ai un renvoi d'erreur

    Je ne trouve pas la raison
    J'utile Free Pascal Compiler sous Ubuntu 10.04 - 64Bits

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    program enregistrementScout;
    Type 	TAnne = integer;
    	TMois = 1..12;
    	TJour = 1..31;
    	Str30 = String;
    	Str4 = String;
     
    	TDate = record
    		Jour : TJour;
    		Mois : TMois;
    		Anne : TAnne;
    		end;
     
    	TPat = record
    		Nom,Animal,Troupe : string;
    		end;
     
    	TScout = record
    		Patrouille : TPat;
    		RefPos : Str4;
    		Totem : Str30;
    		Nom : Str30;
    		DateIn, DateNais : TDate;
    		end;
    Procedure storeMembre(var ScoutIn:Tscout);
    	begin
    	with ScoutIn do begin
    	readln ('Nom', Nom);
    	readln ('Totem', Totem);
    		end;
    	with scoutIn, dateIn do
    		begin
    		readln ('Jour de la date d''Entrée', Jour);
    		readln ('Moi de la date d''Entrée', Mois);
    		readln ('Année de date d''Entrée', Anne);
    		end;
    	with scoutIn,dateNais do
    		begin
    		readln ('Jour de la date de Naissance', Jour);
    		readln ('Moi de la date de Naissance', Mois);
    		readln ('Année de date de Naissance', Anne);
    		end;
    	readln ('Position dans la Patrouille', scoutIn.RefPos);
    	with scoutIn,Patrouille do 
    		begin
    		readln ('Nom de la Patrouille', Nom);
    		readln ('Animal Totem de la Patrouille', Animal);
    		readln ('Nom de la Troupe', Troupe);
    		end;
    	end;
    Procedure affichMembre(var scoutIn:Tscout);
    	begin
    	writeln ('Nom', scoutIn.Nom);
    	writeln ('Totem', scoutIn.Totem);
    	with scoutIn, dateIn do
    		begin
    		writeln ('Jour de la date d''Entrée', Jour);
    		writeln ('Moi de la date d''Entrée', Mois);
    		writeln ('Année de date d''Entrée', Anne);
    		end;
    	with scoutIn,dateNais do
    		begin
    		writeln ('Jour de la date de Naissance', Jour);
    		writeln ('Moi de la date de Naissance', Mois);
    		writeln ('Année de date de Naissance', Anne);
    		end;
    	writeln ('Position dans la Patrouille', scoutIn.RefPos);
    	with scoutIn,Patrouille do 
    		begin
    		writeln ('Nom de la Patrouille', Nom);
    		writeln ('Animal Totem de la Patrouille', Animal);
    		writeln ('Nom de la Troupe', Troupe);
    		end;
    	end;
    var membre : Tscout;
    begin
    writeln ('Début de l''enregistrement du membre');
    writeln ('');
    writeln ('');
    storeMembre (membre);
    writeln ('Début de l''affichage du membre');
    writeln ('');
    writeln ('');
    affichMembre (membre);
    writeln ('Fin de Program d''enregistrement du membre');
    writeln ('');
    writeln ('Christia SONDI, ProgressCoding')
    end.
    Ci-dessous le message d'erreur :

    Target OS: Linux for x86-64
    Compiling storeMember.pp
    storeMember.pp(28,15) Error: Variable identifier expected
    storeMember.pp(29,17) Error: Variable identifier expected
    storeMember.pp(33,39) Error: Variable identifier expected
    storeMember.pp(34,38) Error: Variable identifier expected
    storeMember.pp(35,38) Error: Variable identifier expected
    storeMember.pp(39,41) Error: Variable identifier expected
    storeMember.pp(40,40) Error: Variable identifier expected
    storeMember.pp(41,40) Error: Variable identifier expected
    storeMember.pp(43,39) Error: Variable identifier expected
    storeMember.pp(46,33) Error: Variable identifier expected
    storeMember.pp(47,42) Error: Variable identifier expected
    storeMember.pp(48,29) Error: Variable identifier expected
    storeMember.pp(89) Fatal: There were 12 errors compiling module, stopping
    Fatal: Compilation aborted
    Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
    Quelqu'un peut-il m'aider s'il vous plait? Merci d'avance.

  2. #2
    Membre éprouvé Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Par défaut
    Bonjour,

    Dans le cas d'une lecture de valeur sur la console, la procédure Readln ne prend qu'un seul paramètre : la variable dans laquelle sera écrite la valeur, qui doit être de type string ou integer.

    Ainsi l'appel de readln entraine un retour à la ligne et un curseur clignotant qui invite l'utilisateur à entrer la valeur. Pour informer celui-ci du type de valeur qu'il doit entrer, il faut faire préceder le Readln d'un Writeln, qui permet d'écrire sur la console.

    Ainsi, toutes les instructions de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    readln ('Jour de la date de Naissance', Jour);
    doivent êtres remplacées par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Writeln('Jour de la date de Naissance :');
    Readln(Jour);
    Le compilateur attend en effet le nom d'une variable en paramètre de readln, d'où les multiples "Variable identifier expected"

    De plus, il faudrait gérer le cas où l'utilisateur entre une chaîne de caractère alors qu'un entier est attendu, ce qui provoque actuellement un arrêt du programme.

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Mae,

    +1, et j'ajoute : ça fait partie de la syntaxe basique du langage, toujours à vérifier si on ne trouve pas d'erreur flagrante dans le code.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Par défaut Merci beaucoup
    Merci ModulPro, tu es très génial. Franchement, tu es un ange qui ne manque les ailes.
    J'ai pu compiler. Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] Error 2: Identifier Expected
    Par cheidly dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 10/05/2012, 13h25
  2. Error 35 : label identifier expected
    Par goldeneagle1 dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2007, 22h12
  3. Réponses: 36
    Dernier message: 07/05/2006, 15h35
  4. Error 36 : BEGIN expected
    Par Eagle 2 dans le forum Langage
    Réponses: 5
    Dernier message: 11/02/2006, 18h18
  5. Error Mysql Identifiant
    Par mikedimoi dans le forum Outils
    Réponses: 1
    Dernier message: 11/01/2006, 16h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo