Procedure en pascal
gotomtom
Messages postés
63
Statut
Membre
-
gotomtom Messages postés 63 Statut Membre -
gotomtom Messages postés 63 Statut Membre -
Bonjour,
Je débute en programmation et je dois entaîner les procédures en Pascal.
J'ai le bloc Unit suivant :
Unit echange;
Interface
Procedure echange (a:INTEGER; b:INTEGER);
Implementation
Procedure echange (a:INTEGER; b:INTEGER);
VAR
c:INTEGER;
BEGIN
c:=a;
a:=b;
b:=c;
END;
END.
ça doit être ok, le compilateur a accepté.
J'ai le programme suivant :
Program S1E1;
uses echange;
VAR
d:INTEGER;
e:INTEGER;
BEGIN
WRITELN ('tape 2 chiffres');
READLN (d, e);
WRITELN ('d=',' ',d,' ','e=',' ',e);
echange (d, e);
WRITELN ('d=',' ',d,' ','e=',' ',e);
READLN;
END.
A la ligne 12 celle de (echange), il met -Fatal:syntax error, "." expected but "(" found-. Peux-tu m'aider ?
Je débute en programmation et je dois entaîner les procédures en Pascal.
J'ai le bloc Unit suivant :
Unit echange;
Interface
Procedure echange (a:INTEGER; b:INTEGER);
Implementation
Procedure echange (a:INTEGER; b:INTEGER);
VAR
c:INTEGER;
BEGIN
c:=a;
a:=b;
b:=c;
END;
END.
ça doit être ok, le compilateur a accepté.
J'ai le programme suivant :
Program S1E1;
uses echange;
VAR
d:INTEGER;
e:INTEGER;
BEGIN
WRITELN ('tape 2 chiffres');
READLN (d, e);
WRITELN ('d=',' ',d,' ','e=',' ',e);
echange (d, e);
WRITELN ('d=',' ',d,' ','e=',' ',e);
READLN;
END.
A la ligne 12 celle de (echange), il met -Fatal:syntax error, "." expected but "(" found-. Peux-tu m'aider ?
3 réponses
-
Je ne sais pas quel compilateur tu utilises, mais avec Dev-Pascal il me mets des erreurs sur l'unité (alors qu'il n'y a pas de problème avec le programme)
Ta procédure echange, ne devrait pas porter le même nom que ton unité echange.
De plus, à la fin de l'unité tu mets END. sans avoir mis de BEGIN , ce n'est pas une erreur en soit, mais ce serait quand même plus propre de mettre le BEGIN.
Unit EchangeUnit; ///////////////////////////////////////// Interface procedure echange (a:integer; b:integer); ///////////////////////////////////////// Implementation procedure echange (a:integer; b:integer); var c:integer; begin c:=a; a:=b; b:=c; end; ///////////////////////////////////////// BEGIN END.
Maintenant que ça compile tu verras que ta procédure echange ne fait pas ce que tu veux... mais je te laisse t'entraîner à trouver l'erreur tout seul ;-)
La confiance n'exclut pas le contrôle -
Salut,
J'utilise Geany comme compilateur.
Pour l'erreur. il me semble que je dois mettre VAR pour paramètres d'entrée/sortie. a=2 b=4. en entrée et a=4 b=2 en sortie.
Je n'ai pas mon compilateur sous la main (je suis au travail :-)
Alors si je change le nom de mon unité, ça devrait compiler ? -
Effectivement en changeant le nom de l'unité, ça fonctionne. j'ai mis Uechange. D'ailleurs, notre prof nous a conseillé de toujours mettre un signe distinctif (U par ex.) pour les unités et de ne pas avoir le même nom que la procédure !
C'est pas nos erreurs que l'on apprend ! C'est mon 1er programme en procédure, ça se fête :-)