Réduction d'une racine carrée. Avec saisie d'un Entier Naturel . J'avais déjà déposé cette source réécrite plus siimple, en VB Basic 6.0 et en Vb Net 2003 dans le même Zip, pour économiser la place !
Le code ne demande que quelques lignes. Très très simple ! Mérite d'être mis vu... C'est bien la seule chose que j'ai vraiment inventée en VB!
Simple, mais encore fallait y penser, d'autres l'ont fait? Ainsi ou autrement, Oui! Si on me dit "mais si tous le savent! Et ça sert à rien ! ", je demande un sondage LOL! Là je parie que non! :)
Donc niveau 3e ou seconde, mais rien de plus, il décompose sous la forme scolaire: Racine = aVx
Conclusion :
L'algo est simple: 4 lignes seulement?
Imaginez V72. Divid = 72. On pose d=2 . On divise successivement par le carré de d, soit d2 = d², donc par 2², 3², 4², 5², etc.
Divid/d2 = q
Sortie de la boucle pour cet exemple, quand le PC atteint d = 8 la racine par défaut,(d2 = 64), ou quand le dividende Divid devient inférieur au diviseur. (Le PC choisira...)
Quand le quotient de Divid par un carré d2 est entier, il est mis en mémoire dans la variable qm = q .
Dans ce cas divid prend la valeur du quotient (Divid = q) et on refait la division par le même diviseur.
Sinon, on avance, on divise Divid par (d+1)², etc...
Le dernier qm mis en mémoire correpond ainsi au plus grand carré diviseur! Pour 72, qm est finalement qm = 2.
72/qm = 72/2 = 36 et V36 = 6. On a donc racine : 6Vqm = 6V2.
Si qm = 0, c'est que la racine est irréductible: aucun quotient entier trouvé par un carré.
La racine entière et celle de 0 et 1 sont traités avant, à part! Avec des exit sub.
Le côté rébarbatif est de rendre les label visibles et invisibles selon les cas!
A noter qu'en VB 6 il est facile de dessiner une racine sur la feuille, je n'ai pas trouvé avec VB Net (Je débute juste!) ! Plus simple est bien VB6, VB Net 2003, bof ! Et lourd ! Passez à Vb 2005 Express, gratuit...