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

Langage Pascal Discussion :

Erreur de syntaxe 'Fatal: Syntax error, ; expected but identifier...'


Sujet :

Langage Pascal

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Erreur de syntaxe 'Fatal: Syntax error, ; expected but identifier...'
    Bonjour à tous
    J'ai débuté le Pascal cette année et je bute hier soir sur une erreur dans un code que je dois programmer.
    ça m'affiche:

    recens~1.pas(20,11) Fatal: Syntax error, ; expected but identifier ADO found
    J'ai tout essayé, je ne sais pas quel est le probleme ( mes connaissances en programmation sont assez limitées..).
    Je vous remercie par avance si vous pouvez m'aider, ou me dire ou chercher la solution

    *PS: voici le code complet:
    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
     
    program Recenssement (input,output);
    Const
    max=1000 ;
    type ado=record
    poids:real;
    taille:real;
    sexe:string
    End;
    type t_tab = array[1..max] of ado;
    Var
    n:integer;
    i:integer;
    Begin
    Writeln ('Saisir le nombre d''adolescent interoges ?');
    readln (n);
    if (n<=max) and (n>=1) then
    for i:=1 to n do
    begin
    Writeln ('Saisissez le sexe de l''adolescent');
    Readln ado (i).sexe ;
    Writeln ('Saisissez le poids de l''adolescent');
    Readln ado(i).poids;
    Writeln ('Saisissez la taille de l''adolescent');
    Readln ado(i).taille;
    end;
    end.
    Procedure tri (tab:t_tab) ;
    var
    i:integer;
    j:integer;
    m:integer;
    begin
    for i:=1 to n do
    begin
    for j:=i to n do
    Begin
    if ado.poids[i]>ado.poids[j] then
    begin
    m:=ado.poids[i];
    ado.poids[i]:=ado.poids[j];
    ado.poids[j]:=m;
    end;
    end;
    end;
     
    Procedure affichage (tab:tableau);
    var i:integer;
    begin
    for i:=1 to n do
    write (tab[i]);
    writeln;
    end;

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Premièrement, un code bien indenté est un code beaucoup plus facile à (re)lire et surtout, à corriger !^^

    En effet, rien qu'en indentant un minimum, on pouvait se rendre compte qu'il manquait certains bouts de code indispensables comme ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (n<=max) and (n>=1) then
    	for i:=1 to n do
    	begin
    		Writeln ('Saisissez le sexe de l''adolescent');
    		Readln ado (i).sexe;
    		etc...
    	end;
    Si un if comporte plusieurs commandes, il est obligatoire de les entourer d'un begin et d'un end. Vous avez fait la même erreur dans une de vos procédures, je vous laisse la dénicher ^^.

    Ensuite, concernant les déclarations de variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type t_tab = array[1..max] of ado;
    Ici, vous déclarez t_tab comme un type, soit, mais alors, pourquoi n'utilisez-vous pas ce nouveau type dans la déclaration de vos variables ? Si vous ne déclarez une variable de type t_tab, vous ne pourrez jamais stocker ce qui vous intéresse !

    Donc, vous devriez avoir un code similaire à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Var
    	n:integer;
    	i:integer;
    	tableau : t_tab;
    Maintenant, le readln ! Vous l'employez comme ceci :

    Or, la fonction readln s'emploie comme cela : readln( variable ) ! Il vous manque donc en premier lieu les parenthèses entourant la variable. Ensuite, vous devez utiliser une variable (et non un type) pour récupérer les données entrées par l'utilisateur. Une variable de type array of ado (t_tab dans votre code) serait la bienvenue. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Readln(tableau[i].sexe) ;
    Concernant les procédures, elles doivent se trouver avant le code "principal" du programme. Et il faudrait revoir l'utilisation des variables dans vos procédures avec les remarques que j'ai formulées plus haut^^. (on emploie pas un type comme une variable)

    Bonne fin de journée ;o).

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup -pH+-. Je suis désolé pour l'indentation, j'ai fait un copier coller à partir de mon compilateur, je ne savais pas comment garder la mise ne page.ça fait plaisir d'avoir des gens qui prennent un peu de temps pour aider les débutants comme moi.
    Bonne soirée à tous

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

Discussions similaires

  1. [PDO] Erreur incompréhensible : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Par cyril_k dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/12/2008, 12h12
  2. Erreur incomprehensible:You have an error in your SQL syntax.
    Par Siguillaume dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/06/2008, 10h18
  3. Réponses: 16
    Dernier message: 28/06/2007, 17h10
  4. [Dev-Pascal] Syntax error : unit expected but program found
    Par [R]Viper dans le forum Autres IDE
    Réponses: 13
    Dernier message: 05/01/2007, 12h12
  5. Erreur Declaration expected but identifier ?
    Par dederfred dans le forum Delphi
    Réponses: 1
    Dernier message: 15/11/2006, 08h33

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