![]() ![]() |
/* Boucle for (pour) avec la syntaxe : for ( expr_initiale ; expr_condition ; expr_incrémentation) instruction; */ unitsize(1cm); for(int k=0; k<5; ++k) label(format("k=%i",k),(0,-k/2)); shipout(bbox(.5cm,Fill(white))); |
![]() ![]() |
/* Boucle for (pour) avec la syntaxe : for ( expr_initiale ; expr_condition ; expr_incrémentation) { liste d'instructions } */ unitsize(1cm); for(int k=7; k<12; ++k) { string aff=format("$u_{%i}$",k); label(aff,(0,-.75k)); } shipout(bbox(.5cm,Fill(paleyellow))); |
![]() ![]() |
/* Boucle for (pour) avec la syntaxe : for ( expr_initiale ; expr_condition ; expr_incrémentation) { liste d'instructions } */ unitsize(1cm); for(int k=0; k<5; ++k) { path c=circle(0,k/4); draw(c,1bp+blue); } shipout(bbox(.5cm,Fill(paleblue))); |
![]() ![]() |
unitsize(.8cm); int b=6; // b>3 for(int a=0; a<b-2; ++a) { draw ((a,a)--(a,a+1)--(a+1,a+1)); label(format("%i",a),(a+.5,a+1),N); } for(int a=b-2; a<b; ++a) { draw ((a,a)--(a,a+1)--(a+1,a+1),dashed); } for(int a=0; a<2; ++a) { draw ((b+a,b+a)--(b+a,b+a+1)--(b+a+1,b+a+1)); if (a != 0) label(format("$n$+%i",a),(b+a+.5,b+a+1),N); else label("$n$",(b+a+.5,b+a+1),N); } |
![]() ![]() |
size(7cm); pen[] styl={green,yellow,blue,red}; for(int i=0; i<4; ++i) fill(rotate(i*90)*unitsquare,styl[i]); for(int i=0; i<10; ++i) fill(scale(1-i/10)*unitcircle,white+opacity(.3)); |
![]() ![]() |
// Deux boucles imbriquées pour une seule instruction unitsize(.8cm); string caractere="x"; int nbLignes=5, nbColonnes=3; for (int ligne = 0; ligne < nbLignes; ++ligne) for (int colonne = 0; colonne < nbColonnes; ++colonne) label(caractere,(ligne, colonne)); |
![]() ![]() |
// Deux boucles imbriquées unitsize(.7cm); int n=10; for (int i = 0; i <= n; ++i) { for (int j = 0; j <= n; ++j) { pen p =rgb(i/n,j/n,0); filldraw(shift(j,i)*unitsquare,p,.2bp+black); } } |
![]() ![]() |
// Deux boucles imbriquées // Triangle de Pascal des (k parmi n) size(200); int nmax=7; for(int n=0; n<=nmax; ++n) for(int k=0; k<=n; ++k) label(string(choose(n,k)),(k,-n)); shipout(bbox(10,Fill(.7orange+white))); |
![]() ![]() |
/* Ce qui suit n'est plus utile depuis la révision 4127, où ont été implémentés : factorial(Int n) et choose(Int n, Int k) mais cela reste un exemple intéressant du point de vue des possibilités de programmation. */ usepackage("siunitx", "locale=DE"); size(7cm,7cm,IgnoreAspect); // Fonction donnant la factorielle de n de façon itérative int factorielle_ite(int n) { if (n<=1) return 1; else { int f=1; for(int i=2;i<=n;++i) f=f*i; return f; } } // Fonction donnant la factorielle de n de façon récursive int factorielle_rec(int n) { if (n == 0) return 1; else return n * factorielle_rec(n-1); } int x=0,y=0; label("n",(x,y)); label("factorielle\_ite(n)",(++x,y+1)); label("factorial(n)",(x+=2,y+1)); for (int k=0; k<10; ++k) { x=0; --y; label(format(k),(x,y)); label(format("\num{%i}",factorielle_ite(k)),(++x,y)); label(format("\num{%i}",factorielle_rec(k)),(++x,y)); label(format("\num{%i}",factorial(k)),(++x,y)); } label("factorielle\_rec(n)",(--x,y-=2)); shipout(bbox(.2cm,Fill(palegreen))); |
![]() ![]() |
import math; size(7cm); void carremagique(int n){ int i=0,j,k=1; int[][] carre=new int[n][n]; for(int i=0;i<n;++i)for(int j=0;j<n;++j)carre[i][j]=0; j=floor(n/2); do {carre[i][j]=k; k+=1; if(i==0) i=i-1+n; else i=i-1; if(j==0) j=j-1+n; else j=j-1; if(carre[i][j]!=0){ i=(i+2)%n; j=(j+1)%n; } } while((i!=n-1)||(j!=floor(n/2))); carre[i][j]=k; for(int i=0;i<n;++i){ for(int j=0;j<n;++j){ label(format("%i",carre[i][j]),(i,j)); } } add(shift(-.5,-.5)*grid(n,n,blue)); } carremagique(3); shipout(bbox(2mm,white)); |
![]() ![]() |
import math; size(7cm); void carremagique(int n){ int i=0,j,k=1; int[][] carre=new int[n][n]; for(int i=0;i<n;++i)for(int j=0;j<n;++j)carre[i][j]=0; j=floor(n/2); do {carre[i][j]=k; k+=1; if(i==0) i=i-1+n; else i=i-1; if(j==0) j=j-1+n; else j=j-1; if(carre[i][j]!=0){ i=(i+2)%n; j=(j+1)%n; } } while((i!=n-1)||(j!=floor(n/2))); carre[i][j]=k; for(int i=0;i<n;++i){ for(int j=0;j<n;++j){ label(format("%i",carre[i][j]),(i,j)); } } add(shift(-.5,-.5)*grid(n,n,blue)); } carremagique(5); shipout(bbox(2mm,white)); |
Dernière modification le Mon Sep 10 21:33:34 CEST 2012 par G.Marris Valide XHTML