je comprends pas la reponse du compilateur help

je comprends pas la reponse du compilateur help - Programmation

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 :D

 

[edtdd]--Message édité par karim63--[/edtdd]

Reply

Marsh Posté le 18-11-2001 à 19:10:17   

Reply

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...

Reply

Marsh Posté le 18-11-2001 à 23:05:28    

super ta reponse :D
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.

Reply

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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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 @ .

Reply

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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.  :??:  :lol:  
J'avais ecrit ensembles au lieu de ensemble  :eek2:

Reply

Marsh Posté le 19-11-2001 à 13:04:16    

putain ça passe pas !  :cry:  
 
j'ai mis ça :  
 
defini_graphe(@relation_K,6)^;
 
ce con me met illegal expression  :cry:  
 
si je met ça G:=defini_graphe(@relation_K,6)^;
il me repond  
 
Error: Incompatible types: got "VOID" expected "GRAPHE"
 
 :fou:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed