#! moi aussi je sais calculer des decimales de Pi ! ici 1000, c'est assez rapide !# #! v0.0 : 13 mai 2003 !# niveaugourou 0 pastrespermissif entier n = *(0) entier i = *(0) entier d = *(0) entier nmax = *(3350) entier b = *(10000) entier m = *(0) entier r = *(0) entier p = *(0) entier q = *(0) entier s = *(0) entier T<> chaine c chaine t chaine pi GOTO c'est parti ! costaud entier i=*(0) / &i infeg *(251) / i=+*(1) T<&i> = *(0) faiblard T<*(0)> = *(2) MULTIPLICATION &nmax d = &nmax MULTIPLICATION *(2) d =+ *(1) %divisepar(&d) NettoyerEcran() gotoXY(*(0) *(0)) GOTOPRINTDUTEXTE(«Calcul en cours») costaud entier n=&nmax / &n sup *(1) / n=-*(1) gotoXY(*(17) *(0)) s=+*(1) AUTOGOTOZ } &s eg *(10) { GOTOPRINTDUTEXTE(«/») AC AUTOGOTOZ } &s eg *(20) { GOTOPRINTDUTEXTE(«-») AC AUTOGOTOZ } &s eg *(30) { GOTOPRINTDUTEXTE(«\») AC AUTOGOTOZ } &s eg *(40) { GOTOPRINTDUTEXTE(«|») s=*(0) AC T<*(0)> =+ *(2) d = &n MULTIPLICATION *(2) d =- *(1) %divisepar(&d) m = &n - *(1) %multipliepar(&m) faiblard T<*(0)> =+ *(2) GOTO c'est fini ! NettoyerEcran() gotoXY(*(0) *(0)) GOTOPRINTDUTEXTE(«,;n»&T<*(0)>«PI=») pi=&T<*(1)> n=*(1) costaud entier i=*(2) / &i infeg *(250) / i=+*(1) c = &T<&i> _ «0000» n = } c tailleenlongueur { n =-*(3) t = PrendsUnMorceau(&c &n *(0)) pi = &t _ &pi faiblard costaud entier i=*(1) / &i infeg *(1000) / i=+*(10) n = &i-*(1) n = &n RESTEDELADIVISIONPAR *(100) AUTOGOTOZ } &n eg *(0) { GOTOPRINTDUTEXTE(«;n») AC n = &i+*(10) t = PrendsUnMorceau(&pi &i &n) GOTOPRINTDUTEXTE(« »&t) faiblard GOTOFIN GOTO les routines de calcul sur entier long (1000 chiffres)... §divisepar:ASV(d) GOTO entier zap d costaud entier i=*(0) / &i infeg *(251) / i=+*(1) r = &T<&i> RESTEDELADIVISIONPAR &d T<&i> := &d r *= &b T<&i + *(1)> =+ &r faiblard APLUS §multipliepar:ASV(m) GOTO entier zap m q = *(0) costaud entier i=*(251) / &i sup *(0) / i=-*(1) p = &T<&i> MULTIPLICATION &m p =+ &q q = &p : &b T<&i> = &p RESTEDELADIVISIONPAR &b faiblard T<*(0)> *= &m T<*(0)> =+ &q APLUS