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 :

Liste chaînée : erreur de syntaxe


Sujet :

Free Pascal

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Liste chaînée : erreur de syntaxe
    Bonjour,


    Dans le cadre d'un mini-projet pour mes études, j'ai besoin de réaliser un programme qui construit un ensemble de 4 nombre (entiers). J'ai décidé de classer ceux-ci dans une liste chaînée (structure dynamique) afin , dans un exercice subséquent, pouvoir reprendre ce code en demandant à l'utlisation la taille du code (5,,6 ou plus) qu'il souhaite choisir.

    Le problème est que lors de ma compilation, le code me donne une erreur de syntax concernant la dernière ligne (appel de procédure). L'erreur étant la suivante: "Fatal: Syntax erreor, ")" expected but ":" found.

    ... Pouvez vous m'aider ? (j'utilise le compilateur fpc 2.4 sur Ubuntu). Voici le 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
    PROGRAM Codednumber(input,output);
     
    TYPE 
    	MMCodePtr = ^MMCode;
    	MMCode=RECORD
    		ElementCode : Integer;
    		NextElementCode: MMCodePtr
    		END; 
     
    VAR CodeSize: Integer;
        ComputedCode: MMCodePtr;
     
     
    PROCEDURE CodeGeneration(ListSize: Integer ; VAR GeneratedCode: MMCodePtr);
    VAR FirstPtr, PreviousPtr, ActualPtr : MMCodePtr;
    	    RandomNumber, i: Integer;
    BEGIN
    RandomNumber:=Random(9);
    new(FirstPtr);
    FirstPtr^.ElementCode:= RandomNumber;
    PreviousPtr:= FirstPtr;
    for i:=2 to ListSize DO BEGIN
    	new(ActualPtr);
    	RandomNumber:=Random(9);
    	ActualPtr^.ElementCode:= RandomNumber;
    	PreviousPtr^.NextElementCode:=ActualPtr;
    	PreviousPtr:= ActualPtr;
    	END;
    PreviousPtr^.NextElementCode:=NIL;
    ActualPtr:=FirstPtr;
    END;
     
     
    BEGIN
    Randomize;
    CodeSize:=4;
    CodeGeneration(CodeSize: Integer ; VAR ComputedCode: MMCodePtr)
    END.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 490
    Points
    15 490
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Il faudrait peut-être commencer par apprendre les bases du langage.

    http://pascal.developpez.com/cours/

    En attendant voici un exemple qui devrait t'aider.

    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
    program Exemple;
     
    procedure MettreAZero(var i: Integer); // déclaration
    begin
      i := 0;
    end;
     
    var
      j: Integer;
     
    begin
      j := 3;
     
      MettreAZero(j); // usage
     
      WriteLn(j);
      ReadLn;
    end.

  3. #3
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Allez, je suis + généreux que Roland... (ou disons mieux disposé) : le mot clé VAR ne s'utilise que dans la déclaration d'une procédure pas dans l'appel à celle-ci.

    Mais Roland a raison, potasses les cours sur le langage.

    @+

Discussions similaires

  1. [Turbo Pascal] Liste chaînée, saisie Read/ReadLn, erreur d'exécution
    Par rabir dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 31/10/2009, 16h59
  2. Réponses: 23
    Dernier message: 14/03/2009, 15h57
  3. Réponses: 8
    Dernier message: 23/08/2006, 22h22
  4. Réponses: 16
    Dernier message: 19/11/2005, 16h47
  5. Réponses: 15
    Dernier message: 01/11/2005, 13h32

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