Procedure en pascal

Fermé
gotomtom Messages postés 55 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 novembre 2012 - 13 déc. 2010 à 11:37
gotomtom Messages postés 55 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 novembre 2012 - 13 déc. 2010 à 18:35
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 ?
A voir également:

3 réponses

KX Messages postés 16740 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 mai 2024 3 016
Modifié par KX le 13/12/2010 à 12:56
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
0
gotomtom Messages postés 55 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 novembre 2012 95
13 déc. 2010 à 13:47
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 ?
0
KX Messages postés 16740 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 mai 2024 3 016
13 déc. 2010 à 13:57
En effet avec VAR ça marchera mieux, et sinon, changer le nom de l'unité (ou de la procédure) devrait suffire
0
gotomtom Messages postés 55 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 novembre 2012 95
13 déc. 2010 à 18:35
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 :-)
0