1

car je suis un triso, mais bon.
Pourquoi ça marche pas ?
Ca devrait faire des fractales. //voici les sources simplifiées du programme //en C pour faire une fractale de Julia double zr,zi;          //parties réelles et irréelles de Z double cr=0.13,ci=0.6;          //parties réelles et irréelles de C double zrc,zic;          //parties réelles et irréelles de ( Z * Z ) double tampon; for (ul x=0;x<100;x++)          //boucles répetant le calcul pour chaque pixel dans un carré de 100 par 100 {      for (ul y=0;y<100;y++)      {           zr=(x*4.0)/100-2;     //Calculs de changement d' échelle           zi=(y*4.0)/100-2;     //(de 100*100 à 4*4)           zrc=zr*zr;                    //calcul de Z*Z           zic=zi*zi;                    //           for (ul i=0;i<1000 && zrc+zic<=4;i++)     //On itère la suite Zn 1000 fois (sauf si le module devient superieur à 2)           {                tampon=zr*zr-zi*zi+cr;          //calculs de l'élement suivant                zi=2*zr*zi+ci;                zr=tampon;                         //Z devient égal à l'élément suivant                zrc=zr*zr;                         //calcul de Z*Z                zic=zi*zi;                         //           }           if (zrc+zic<=4)           {//si le module de Z est inferieur à 2,on colore le pixel en noir                ForeColor(blackColor);          //il fait parti de l'ensemble de Mandelbrot           }else           {                ForeColor(whiteColor);          //sinon en blanc.           }           MoveTo(x,y);                         //On dessine le pixel           LineTo(x,y);                         //      } } //voici les sources simplifiées du programme //en C pour faire une fractale de MANDELBROT double zr,zi;          //parties réelles et irréelles de Z double cr,ci;          //parties réelles et irréelles de C double zrc,zic;          //parties réelles et irréelles de ( Z * Z ) double tampon; for (ul x=0;x<100;x++)          //boucles répetant le calcul pour chaque pixel dans un carré de 100 par 100 {      for (ul y=0;y<100;y++)      {           zr=0;                    //Z0=0           zi=0;                    //           cr=(x*4.0)/100-2;     //Calculs de changement d' échelle           ci=(y*4.0)/100-2;     //(de 100*100 à 4*4)           zrc=0;                    //Z0*Z0=0           zic=0;                    //           for (ul i=0;i<1000 && zrc+zic<=4;i++)     //On itère la suite Zn 1000 fois (sauf si le module devient superieur à 2)           {                tampon=zr*zr-zi*zi+cr;          //calculs de l'élement suivant                zi=2*zr*zi+ci;                zr=tampon;                         //Z devient égal à l'élément suivant                zrc=zr*zr;                         //calcul de Z*Z                zic=zi*zi;                         //           }           if (zrc+zic<=4)           {//si le module de Z est inferieur à 2,on colore le pixel en noir                ForeColor(blackColor);          //il fait parti de l'ensemble de Mandelbrot           }else           {                ForeColor(whiteColor);          //sinon en blanc.           }           MoveTo(x,y);                         //On dessine le pixel           LineTo(x,y);                         //      } }

2

Bon, voilà Mandelbrot, l'autre était Julia. //voici les sources simplifiées du programme //en C pour faire une fractale de MANDELBROT double zr,zi;          //parties réelles et irréelles de Z double cr,ci;          //parties réelles et irréelles de C double zrc,zic;          //parties réelles et irréelles de ( Z * Z ) double tampon; for (ul x=0;x<100;x++)          //boucles répetant le calcul pour chaque pixel dans un carré de 100 par 100 {      for (ul y=0;y<100;y++)      {           zr=0;                    //Z0=0           zi=0;                    //           cr=(x*4.0)/100-2;     //Calculs de changement d' échelle           ci=(y*4.0)/100-2;     //(de 100*100 à 4*4)           zrc=0;                    //Z0*Z0=0           zic=0;                    //           for (ul i=0;i<1000 && zrc+zic<=4;i++)     //On itère la suite Zn 1000 fois (sauf si le module devient superieur à 2)           {                tampon=zr*zr-zi*zi+cr;          //calculs de l'élement suivant                zi=2*zr*zi+ci;                zr=tampon;                         //Z devient égal à l'élément suivant                zrc=zr*zr;                         //calcul de Z*Z                zic=zi*zi;                         //           }           if (zrc+zic<=4)           {//si le module de Z est inferieur à 2,on colore le pixel en noir                ForeColor(blackColor);          //il fait parti de l'ensemble de Mandelbrot           }else           {                ForeColor(whiteColor);          //sinon en blanc.           }           MoveTo(x,y);                         //On dessine le pixel           LineTo(x,y);                         //      } }

3

parceque moveto met le curseur en x,y
puis lineto dessine de l'enplacement du cursseur a x,y
il n'y a donc pas de deplacement de curseur
essaye en inversant ces 2 instructions

4

Il n'y a à peu près que là que je n'ai pas d'erreur grin
(Je compile avec dev-c++)
http://www.ifrance.com/nioko/fractales/source.png

5

jolie croix
"La violence est le dernier refuge de l'incompétence." Isaac Asimov

6

heu, as tu besoin d'une précision de 10 chiffres après la virgule ?! grinwink

car le type "double" est codé sur 64 bits sur les PC je crois, et même 80 bits sur TIGCC ... donc à utiliser avec modération. grin

prend plutôt un type "float" qui devrait être 2 fois moins gros (sur PC, pas sur TIGCC) .... ouioui
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

7

LE forum n'aime pas les images png donc j'ai fait un lien.

8

moi, j'utiliserais le BCD

9

Pim89 a écrit :
heu, as tu besoin d'une précision de 10 chiffres après la virgule ?! grinwink

La précision est importante pour les fractales.


Sinon, Titane, pourquoi te fatigues-tu à utiliser 2 variables pour partie réelle et imaginaire? Le type _Complex double (c'est le nom dans le standard C99, supporté par GCC depuis GCC 3.0; pour les anciens GCC, il faut mettre __complex__, toujours reconnu par les nouvelles versions de GCC) est fait pour ça.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

10

Oui, mais à part ça ? grin
J'ai toujours des erreurs partout (http://www.ifrance.com/nioko/fractales/source.png)

11

Pim, 5> je dis peut être une bétise...
mais les 64bits des PC et les 80bits de la TI ne sont pas vraiement comparables...
les PC utilisent l'IEEE754 (je crois que c celui-là)
les TI utilisent du BCD (il me semble)
=> 80 bits est peut-être moins précis que 64 ???

(je sais pas)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

12

Chaque tétrade de la mantisse a un contenu d'informations en bits de:
I(x) = lb(1/p(x)) = lb(1/(1/10)) = lb(10) = 3,322 environ
Donc le contenu d'informations en bits de la structure bcd (format flottant TI) est:
16 (pour l'exposant) + 64*3,322/4 (pour la mantisse) = 69,2 environ
Donc le contenu d'informations est quand-même plus grand que celui du format IEEE, mais pas autant que le nombre supplémentaire de bits pourrait le laisser présager.

L'avantage du format BCD est que les nombres pouvant se représenter de manière exacte par un nombre décimal fini peuvent, si le nombre de chiffres significatifs est suffisamment petit, être représentés de manière exacte en format BCD. Par exemple 1/5=0,2 peut être représenté de manière exacte en BCD, et pas en IEEE. Ça évite un certain nombre de problèmes d'arrondi (pas tous évidemment), ce qui est quand-même intéressant pour une calculatrice.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

OK.
merci pr la précision
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

14

squale > nan nan, je les comparais justes les tailles de TIGCC et un compilot PC, pas ce qu'elle pouvait sotcker ensuite ... sur PC je connais les précisions de virgule (cf mon bouquin), mais sur TIGCC je connais pas les degrés de précision. wink

mais vu qu'il bosse sur PC, pas de prob. cool ce que j'ai dis doit être juste normalement.
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^