Voici l`algorithme : Fonction : rac(n) à Renvoie la partie entière de la

January 8, 2018 | Author: Anonymous | Category: Ingénierie, Informatique, Data Structures
Share Embed Donate


Short Description

Download Voici l`algorithme : Fonction : rac(n) à Renvoie la partie entière de la...

Description

Voici l’algorithme : Fonction : rac(n)  Renvoie la partie entière de la racine carrée de n Variables (entières) : n (le nombre entier à décomposer), Tab[4]={0,0,0,0} (Nos 4 q, a mettre au carré), temp,k, V=0 // Cette dernière variable nous permet de faire certaines vérifications, Demander n ; Si rac(n)²=n, ne pas faire les tests , et Tab={rac(n),0,0,0} Sinon : Algorithme -

-

-

Tab[0]=rac(n) ; Repère 0 temp=n-tab[0]² ; Si temp==3 //Ces 2 vérifications (3 et 9), proviennent de simplifications que nous avons trouvé lors de nos recherches. o Tab[]={Tab[0],1,1,1} ; Et on arrête l’algo. Si temp==9 o Tab[]={Tab[0],3,3,3} ; V=1 Et on arrête l’algorithme. Sinon si temp ==4,2,1 ou 0 o Temp=temp+Tab[0]² Tab[0]=Tab[0]-1 ; On reprend au reprend au repère 0. Tab[1]=rac(temp) Repère 1 Temp=temp-Tab[1]² Si temp==2 o Tab[]={Tab[0],Tab[1],1,1} Et on arrête l’algo. Si temp==6 o Tab[]={Tab[0],Tab[1],3,3} ; V=2 ; Et on arrête l’algo. Sinon si temp==3,1 ou 0 o Temp=temp+tab[1]² Tab[1]=Tab[1]-1 ; Et on reprend l’algo au repère 1. Tab[2]=rac(temp) Repère 2 Temp=temp-tab[2]² Si temp==1 o Tab[]={Tab[0],ta[1],Tab[2],1} Et on arrête l’algo.

Sinon si temp==3 o Tab[]={Tab[0],tab[1],Tab[2],3} V=3, Et on arrête l’algo. Sinon si temp=rac(temp)² o Tab={Tab[0], Tab[1],Tab[2], rac(temp)} Et on arrête l’algo. Sinon si temp est égal a 3 * k², et k entier naturel, c’est-à-dire temp=3k² //C’est là que ça devient compliqué… o Tab={Tab[0], Tab[1],Tab[2], k} V=4; Et on arrête l’algo. Sinon si Tab[2] != 0 // « != » signifie différent. o Temp=Temp+Tab[2]² Tab[2]=Tab[2]-1 Et on reprend au repère 2. // Et c’est vraiment ici que je ne sais pas comment faire… Je programme en C, c’est peut-être pour ça ? Si tab[2]==0, on reprend l’algorithme au repère 1. Temp reprend sa valeur « initiale » à ce repère, c’est-à-dire temp=n-tab[0]² . Tab[1] prend la valeur Tab[1]-1. Et on refait tourner l’algo, jusqu’en bas. Si, au fur et à mesure des opérations, Tab[1] finit par atteindre la valeur 0 aussi… Temp = n On reprend l’algo avec Tab[0]-1 au repère 0. Et si Tab[0] atteint 0, on affiche un joli message d’erreur, « Ne fonctionne pas pour N=n », et on fait une pause dans le programme. Fin de l’algorithme. Vérification de la valeur de n : Soit i=0, temp2=0 Si v !=4 :

Tant que i
View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF