Posté le 18/11/2012 14:49
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 162 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 28/11/2012 19:52 | #
oui merci beaucoup ! =D
Citer : Posté le 29/11/2012 11:37 | #
tu as le droit de mettre autant d'instructions que tu veux dans une fonction et même d'inclure ta fonction dans cette fonction
Bon, après faut faire gaffe à l'inclusion infinie, mais théoriquement c'est possible.
En gros ce code marche parfaitement:
function maFonction2(int numero)
{
locate(1, numero);
Print("Hello World");
}
function maFonction1(void)
{
int variable = 1;
while(1)
{
maFonction2(variable);
maFonction1();
}
}
C'est le principe dit de la récursivité. Dans certains cas, il peut être utile, mais attention, on ne peut PAS avoir une infinités d'inclusions! Une liste est présente dans le processeur, nommée la stack, qui permet au processeur de savoir où il doit revenir quand il quitte une fonction. A chaque fois que tu appelles une fonction, la position précédente du proco est stockée dans la stack, et quand tu quittes la fonction appelée, le processeur revient à l'adresse, puis supprime l'indication de position.
Bien évidemment, cette stack a une place limitée, alors fais gaffe!
Ajouté le 29/11/2012 à 11:42 :
Je tiens à noter, que dans certains cas, l\'appel récursif peut être évité, en créeant nous même une sorte de liste où on stocke l\'état de la fonction avant de revenir au début. Je te conseille par exemple d\'aller jeter un coup d\'oeil sur le backtracking, et un exemple sur la création de labyrinthes ici.
Citer : Posté le 01/12/2012 11:25 | #
Il me semble qu'en plus sur la calculatrice la récursivité sature très vite la stack. Mais sur ordi on peut se déchaîner, j'avais réalisé un programme de résolution de sudoku par force brute avec la récursivité.
Citer : Posté le 02/12/2012 18:59 | #
Un de mes premier programme en basic était de résoudre l’épreuve des chiffres de " Des chiffres et des lettres " par forces brute
Vous savez quoi je l'ai jamais finis
Citer : Posté le 02/12/2012 21:26 | #
C'est faisable, en faisant tourner la calto quelques jours
Citer : Posté le 02/12/2012 22:02 | #
Par bête brut-force ce n'est pas très compliqué mais si on cherche à optimiser la recherche de solution ça peut être un algo très intéressant
Citer : Posté le 04/12/2012 22:29 | #
une fois j'avais pas envie de calculer le premier exercice d'un concours de math (c'était un exo d'arithmétique, et j'avais aucune connaissance à l'époque) donc j'ai lancé un algorithme en brute-force pour trouver la solution, et en attendant j'ai fait le reste
le programme a tourné 3h avant de me donner la réponse (ça tombait bien, j'avais 4h pour tout le concours)
n'empêche, ça a marché