|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Récursivité ??? [ Divers / Aide et documentation ] (Also know as)
Informations & options pour cette discussion
dimanche 27 mai 2007 à 12:27:00 |
Récursivité ???

Also know as
|
Bonjour, Voilà je cherche à faire de la récursivité sous Delphi mais là j'avoue que je trouve ca un peu mal malheureusement... Voci ma procedure : procedure TForm1.ResoudreClick(Sender: TObject); var i: Integer; x: Integer; y: Integer; begin for y := 0 to 9 do for x := 0 to 9 do if (map.Cells[y,x] = '0') then begin for i := 0 to 9 do begin Test_lin_col(x, y, i); Test_square(x, y, i); if ((lin_col = True) and (square = True)) then begin map.Cells[x,y] := IntToStr(i); ResoudreClick(Sender); map.Cells[x,y] := '0'; end; end; //return ; end; end; Là ou vous voyez le mot "return" c'est en C que la recursivité va se faire, il me manque l'équivalent en Delphi. En effet s'il n'y a pas de possibilité alors il doit faire marche arrière GRACE à là recursivité ! Quelqu'un peut m'aider  @+ P.S.: Pour le moment je fais bien evidemment en StackOverflox (débordement de pile) à cause de ma fonction rappelée elle même : ResoudreClick(Sender); mais vu que je n'ai pas de récursivité c'ets normal  @+
|
|
|
dimanche 27 mai 2007 à 12:28:53 |
Re : Récursivité ???

Also know as
|
Oups une petite erreur c'est gilssée : for x := 0 to 9 do for y := 0 to 9 do if (map.Cells[ x,y] = '0') then Voilà d'ou venait mon problème de pile  Mais bon cela ne change rien à mon problème bien evidemment. @+
|
|
|
dimanche 27 mai 2007 à 12:40:08 |
Re : Récursivité ???

Nicolas___
|
j'ai pas regarder ton algo ms pour utiliser un equivalent en delphi faut pas utiliser procedure(une procedure ne renvoie rien) mais function et tu utilise result qui est equivalent du return
Ciao
|
|
|
dimanche 27 mai 2007 à 12:57:58 |
Re : Récursivité ???

Also know as
|
Merci !
J'ai donc un doute sur la récursivité sous Delphi. Le but de la recursivité est de pouvoir s'appeler lui même, et de faire un conséqunce de ce qui c'est passé avant.
Exemple pour ce que je fais, la résolution d'un sudoku. En C cela me donne cela :
int resolve(char **map) { int x; int y; int i;
for (y = 0; y < 9; y++) for (x = 0; x < 9; x++) if (map[y][x] == '0') { for (i = '1'; i <= '9'; i++) if (test_col_lin(map, x, y, (i - '0'))) if (test_square(map, x, y, (i - '0'))) { map[y][x] = i; if (x == 8 && y == 8) return (aff(map)); else if (resolve(map)) return (1); map[y][x] = '0'; } return (0); } else if (x == 8 && y == 8) aff(map); return (1); }
En fonction si ela retourne 0 ou pas, alors il va changer son comportement...
@+
|
|
|
dimanche 27 mai 2007 à 13:02:42 |
Re : Récursivité ???

Nicolas___
|
aucune raisons que la recursivite sous delphi ne marche pas !
Ciao
|
|
|
dimanche 27 mai 2007 à 13:04:23 |
Re : Récursivité ???

Also know as
|
En effet mais alors il va falloir me l'expliquer, parceque là sous Delphi je ne vois pas comment faire  @+
|
|
|
dimanche 27 mai 2007 à 16:53:17 |
Re : Récursivité ???

f0xi
|
type pMap = ^TMap; TMap = array[0..8,0..8] of integer; function TestColLin(const Map : pMap; const X,Y,I : integer) : boolean; begin // end;
function TestSquare(const Map : pMap; const X,Y,I : integer) : boolean; begin // end; function Aff(const Map : pMap) : boolean; begin // end; function Resolve(const Map : pMap) : boolean; var X,Y,I : integer; begin for y := 0 to 8 do for x := 0 to 8 do if Map^[y,x] = '0' then begin for i := 1 to 9 do if TestColLin(Map, x, y, i) and TestSquare(Map, x, y, i) then begin Map^[y,x] = i; if (x = 8) and (y = 8) then begin result := Aff(Map); exit; end else if Resolve(Map) then begin result := true; exit; end; Map^[Y,X] = 0; end; result := false; exit; end else if (x = 8) and (y = 8) then Aff(Map); result := true; end; Croc (click me)
|
|
|
Cette discussion est classé dans : end, sender, begin, récursivité, resoudreclick
Répondre à ce message
Sujets en rapport avec ce message
Utilisation de composant créée dynamiquement [ par taye78 ]
Bonjour,voici le code que j'ai écris pour créer 2 ClientSocket dynamiquement, ensuite je leur attribu quelques propriétés etc. Mais lorsque l'evenemen
Erreur de type asynchrone [ par Francky23012301 ]
Salut à tous,j'ai voulu faire un petit test de transfert de fichiers transfert client->serveur :La connection du client au serveur s'effectue correcte
sudoku [ par steph sudoku ]
Bonsoir a tous!j'ai un probleme sévère, je suis bloqué depuis trois semaines sur un tp en fac.je dois le rendre mardi et je n'est toujours pas trouvé
Redimensionner un timage/tshape avec des poignées [ par edge76000 ]
Bonjour, Je sais que sur le site Phidels, ce programme le traite et doit pouvoir répondre à ma question car c'est exactement ce que je veux faire au n
Problème exécution du .EXE [ par revsys ]
Bonjour,Quand j'exécute mon programme à partir de Delphi, toutes mes commandes fonctionnent.Mais si je lance seulement l'EXE, là une option me permett
Problèmes boucle NotifyProc [ par revsys ]
Bonjour,J'ai deux Edit qui permettent de choisir le nombre de fois où un son doit être joué pour deux sons différents.1er problème :La première fois q
Erreur de compatibilité [ par stevebru ]
Bonjour,Je suis nouveau en Delphi, et même sur ce site.J'ai un problème à la compilation de mon programme.Il conciste à créer des éléments de type TAn
pilotage ouverture/fermeture d'une barrière de sécurité pour boitier TC/USB16IO [ par Wiska ]
Bonjour, Avant tout, voici la description de ce fameux boitier: "Le module TC/USB-16IO est un module d'interface pc, comportant 8 entrées logiques iso
Besoin de précision pour un code [ par emirej ]
Bonjour j'aimerais avoir un peu d'aide pour mon code merci.Voici mon code :unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, G
affichage dans une statutbar [ par watrem ]
Bonjour j'ai telecharger sur le site un code tres court permettant d'afficher l'heure dans une StatutBar. Je n'ai aucune erreur au niveau du code mais
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|