Présentation de l'algorithme :

Courbe fractale de Von Koch :
En partant d'un segment de droite initial :

Code de l'algorithme :
1     VARIABLES
2       n EST_DU_TYPE NOMBRE
3       i EST_DU_TYPE NOMBRE
4       j EST_DU_TYPE NOMBRE
5       k EST_DU_TYPE NOMBRE
6       a EST_DU_TYPE NOMBRE
7       x EST_DU_TYPE LISTE
8       y EST_DU_TYPE LISTE
9       max EST_DU_TYPE NOMBRE
10    DEBUT_ALGORITHME
11      AFFICHER "Nombre d'itérations="
12      LIRE n
13      AFFICHER n
14      SI (n>=1 ET n<=8) ALORS
15        DEBUT_SI
16        max PREND_LA_VALEUR pow(4,n)
17        POUR i ALLANT_DE 0 A max
18          DEBUT_POUR
19          x[i] PREND_LA_VALEUR 0
20          y[i] PREND_LA_VALEUR 0
21          FIN_POUR
22        x[max] PREND_LA_VALEUR 450
23        POUR i ALLANT_DE 1 A n
24          DEBUT_POUR
25          k PREND_LA_VALEUR pow(4,n-i)
26          POUR j ALLANT_DE 0 A pow(4,i-1)-1
27            DEBUT_POUR
28            a PREND_LA_VALEUR 4*j*k
29            x[a+k] PREND_LA_VALEUR (2*x[a]+x[a+4*k])/3
30            y[a+k] PREND_LA_VALEUR (2*y[a]+y[a+4*k])/3
31            x[a+3*k] PREND_LA_VALEUR (x[a]+2*x[a+4*k])/3
32            y[a+3*k] PREND_LA_VALEUR (y[a]+2*y[a+4*k])/3
33            x[a+2*k] PREND_LA_VALEUR (x[a+k]+x[a+3*k]+sqrt(3)*(y[a+k]-y[a+3*k]))/2
34            y[a+2*k] PREND_LA_VALEUR (y[a+k]+y[a+3*k]+sqrt(3)*(x[a+3*k]-x[a+k]))/2
35            FIN_POUR
36          FIN_POUR
37        POUR i ALLANT_DE 0 A max-1
38          DEBUT_POUR
39          TRACER_SEGMENT (x[i],y[i])->(x[i+1],y[i+1])
40          FIN_POUR
41        FIN_SI
42    FIN_ALGORITHME

Fichier AlgoBox associé : vonkoch.alg (faire un clic-droit et utiliser l'option "enregistrer sous" pour télécharger le fichier)

Tester l'algorithme :


(cliquer sur le bouton ci-dessus pour lancer ou relancer l'exécution de l'algorithme)
Remarque : si les messages "Algorithme lancé" et "Algorithme terminé" n'apparaissent pas au bout d'un moment dans la zone ci-dessous, c'est que l'algorithme contient une erreur.
Le graphique est affiché en bas de la page.

Résultats :