![]() ![]() |
////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// // Je définis une procédure (fonction qui ne renvoie pas de donnée) // qui échange les premier et dernier termes d'une suite de réels. void echangerpremierdernier(real[] uneliste) { real tempo; int nbrtermes=uneliste.length; tempo=uneliste[0]; uneliste[0]=uneliste[nbrtermes-1]; uneliste[nbrtermes-1]=tempo; } ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// size(7cm); // Test de la procédure sur une liste a quelconque real[] a={2.3,3,4.56,5,7.8}; int n=a.length; // nombre de termes de la liste a dans n // J'affiche la liste a initiale. for(int i=0; i<n; ++i) label(string(a[i]),(i,0)); // Remplacer la ligne précédente par : write(a); pour un affichage en console. // J'applique la procédure à la liste a puis j'affiche la liste a modifiée. echangerpremierdernier(a); for(int i=0; i<n; ++i) label(string(a[i]),(i,-2)); shipout(bbox(.5cm,Fill(white))); |
![]() ![]() |
// Exemple précédent, avec cette fois, une fonction qui ne modifie pas la // liste initiale mais qui renvoie la liste modifiée dans une nouvelle variable. ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// real[] liste_extremesinverses(real[] uneliste) { int n=uneliste.length; real[] listemodifiee=new real[n]; for(int i=0; i<n; ++i) if(i*(n-1-i)!=0) listemodifiee[i]=uneliste[i]; else listemodifiee[i]=uneliste[n-1-i]; return listemodifiee; } ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// size(7cm); // Test de la fonction sur une liste a quelconque : liste modifiée dans la variable b. real[] a={2.3,3,4.56,5,7.8}; real[] b=liste_extremesinverses(a); for(int i=0; i<a.length; ++i) // a.length est le nbr de termes dans a et dans b { label(string(a[i]),(i,0)); label(string(b[i]),(i,-2)); } shipout(bbox(.5cm,Fill(white))); |
Dernière modification le Fri Oct 28 13:01:26 CEST 2011 par G.Marris Valide XHTML