Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels > Caml
Caml Forum d'entraide sur la programmation avec les langages fonctionnels Caml-Light et OCaml
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/11/2012, 21h02   #1
Glork
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 34
Points : 11
Points : 11
Par défaut Julia et caml

Bonjour,
j'ai crée un programme caml pour visualiser les ensembles de Julia dans une fenêtre 400*400


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#load "graphics.cma";;
open Graphics;;
open_graph "800x800";;
clear_graph();;

let estdsjulia (xo:float) (yo:float) (cr: float) (ci: float) = 
	let x = ref xo in
	let y = ref yo in
	let i = ref 1 in
	let res = ref true in
	while ((!res = true) && (!i<50)) do 
		x:= (!x)*.(!x) -.(!y)*.(!y) +.cr;
		y:= 2.*.(!x)*.(!y)+.ci;
		res:= (!x)*.(!x) +.(!y)*.(!y)< 4.;
		i:= (!i)+1;
	done;
!res
;;
estdsjulia 0.01 0.0001 0.1 0.2;;

	

let affiche (cr:float) (ci:float) = 
	clear_graph();
	for i = 0 to 400	 do
		for j = 0 to 400 do
			if estdsjulia 
				((float_of_int (i)/.400.)*.2.5 -.1.25	)
				((float_of_int (j)/.400.)*.2.5 -.1.25) cr ci then 
				fill_circle i j 1
		done;
	done;
;;
affiche (-.0.85) (0.2);;
Sauf que ce que je vois n'a pas l'air de ressembler à la courbe de Julia pour c = -0.85 +0.2i . J'ai testé pour d'autres valeurs et à chaque fois ça ne ressemble pas...
J'ai pas trouvé le problème.... =(
Merci.
Glork est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 14h07   #2
gasche
Membre Expert
 
Inscription : avril 2007
Messages : 829
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 829
Points : 1 007
Points : 1 007
Il y a un problème (que je te laisse découvrir) avec ce style de mises à jour :

Code :
1
2
3
4
		x:= (!x)*.(!x) -.(!y)*.(!y) +.cr;
		y:= 2.*.(!x)*.(!y)+.ci;
		res:= (!x)*.(!x) +.(!y)*.(!y)< 4.;
gasche est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 29/11/2012, 15h43   #3
Glork
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 34
Points : 11
Points : 11
C'est une erreur en lien avec les maths ? (J'ai bien vérifié, quand on pose z = x+ i*y...) ou c'est plus une erreur de syntaxe ( ça ne calcule pas vraiment les (xn,yn) = (zn), comme il faut)?
Merci.
Glork est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 16h58   #4
Glork
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 34
Points : 11
Points : 11
ahhh oui,
je modifie x
puis en calculant y je prend la valeur suivante de x....
Bref, j'ai modifié et ça marche!
Merci!!
Glork est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h39.


 
 
 
 
Partenaires

Hébergement Web