je comprends pas la reponse du compilateur help - Programmation
Marsh Posté le 18-11-2001 à 20:41:11
C'est tous simplement et bonnement une erreur dans ton code...si tu peux essaye de déboguer le programme...
Marsh Posté le 18-11-2001 à 23:05:28
super ta reponse
dis plutot que t'as la flemme de lire le code.
car la ligne qui merde c'est :
G:=defini_graphe(relation_K,6)^;
sauf que le def de ma fonction c'est :
function defini_graphe(R : relation ; nb_sommets:integer): pointer;
et comme tu le vois y a bien 2 parametre dans les deux cas. Donc je capte pas pourquoi il me dit wrong amount of parameters.
Marsh Posté le 19-11-2001 à 09:36:47
tu dois pas plutôt mettre
G:=defini_graphe(@relation_K,6)^;
pour lui donner l'adresse de la fonction au lieu du resultat de la fonction ? (ou un truc du genre)
enfin ça me paraît quand même bizarre là... je suis pas trop sûr que c'est ça...
[edtdd]--Message édité par antp--[/edtdd]
Marsh Posté le 19-11-2001 à 12:38:02
antp a écrit a écrit : tu dois pas plutôt mettre G:=defini_graphe(@relation_K,6)^; pour lui donner l'adresse de la fonction au lieu du resultat de la fonction ? (ou un truc du genre) enfin ça me paraît quand même bizarre là... je suis pas trop sûr que c'est ça... |
je vais tenter de mettre le @ .
Oui tu dois avoir raison, le compilateur pense que c'est relation est un integer et le wrong amount of parameters vient du fait qu'il manque (x,y) apres relation_K.
merci.
En fait j'avais demandé a un type comment mettre une fonction en parametre, et il a du oublier de mantionner le @ .
Marsh Posté le 19-11-2001 à 12:46:55
bhen justement, je connais le "type" dont tu parles et c'est bizarre qu'il ait oublié ça si il falait le mettre.
et puis la fonction s'attend à avoir un paramètre de type "relation", donc si tu lui donnais un boolean il dirait que c'est le mauvais type, et pas un mauvais nombre de paramètres
Marsh Posté le 19-11-2001 à 12:55:25
antp a écrit a écrit : bhen justement, je connais le "type" dont tu parles et c'est bizarre qu'il ait oublié ça si il falait le mettre. et puis la fonction s'attend à avoir un paramètre de type "relation", donc si tu lui donnais un boolean il dirait que c'est le mauvais type, et pas un mauvais nombre de paramètres |
ouep , mais j'ai deja vu pire comme reponse du compilateur, genre il manque un ";" quelque part qu'il me dit, je passe une demi heure a chercher pour finalement me rendre compte qu'il y avait un S a la fin d'une variable.
J'avais ecrit ensembles au lieu de ensemble
Marsh Posté le 19-11-2001 à 13:04:16
putain ça passe pas !
j'ai mis ça :
defini_graphe(@relation_K,6)^;
ce con me met illegal expression
si je met ça G:=defini_graphe(@relation_K,6)^;
il me repond
Error: Incompatible types: got "VOID" expected "GRAPHE"
Marsh Posté le 18-11-2001 à 19:10:17
voila je veux faire ça:
type graphe = record
nb_sommets : integer;
aretes : array[Tmin..Tmax, Tmin..Tmax] of boolean;
end;
type relation = function(x,y : integer):boolean;
function relation_K(x,y : integer):boolean;
begin
relation_K:=not(x=y);
end; { relation_K }
type Pgraphe = ^graphe;
var Pvaleur_defini_graphe : Pgraphe;
function defini_graphe(R : relation ; nb_sommets:integer): pointer;
var x,y : integer;
begin
Pvaleur_defini_graphe^.nb_sommets:=nb_sommets;
for x:=1 to nb_sommets do
for y:=1 to nb_sommets do
begin
Pvaleur_defini_graphe^.aretes[x,y]:=R(x,y);
end;
defini_graphe:=Pvaleur_defini_graphe;
end;
var G : graphe;
begin
new(Pvaleur_defini_graphe);
G:=defini_graphe(relation_K,6)^;
end.
mais le compilateur me repond "wrong amount of parameters specified" sur l'avant derniere ligne.
Au fait c'est du Pascal
[edtdd]--Message édité par karim63--[/edtdd]