PROGRAMMATION : UTILISATION D'UN FICHIER DE DONNEES (12)
Liste des figures
Figure fig_aa01_070309_deux_lignes_d_entiers
figure 0001
Figure fig_aa02_070309_deux_lignes_d_entiers
figure 0002
Figure fig_aa03_070309_deux_lignes_d_entiers
figure 0003
Figure fig_aa04_070309_deux_lignes_d_entiers
figure 0004
Figure fig_ab01_070309_tableau_d_entiers
figure 0005
Figure fig_ab02_070309_tableau_d_entiers
figure 0006
Figure fig_ab03_070309_tableau_d_entiers
figure 0007
Figure fig_az01_140309_fonction_tell
figure 0008
Figure fig_ta01_250611_texte
figure 0009
Figure fig_ta02_250611_texte
figure 0010
Figure fig_ta03_250611_texte
figure 0011
Figure fig_va01_120510_donnees_differents_types
figure 0012
Asymptote - Figure 0001: fig_aa01_070309_deux_lignes_d_entiers.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_aa01_070309_deux_lignes_d_entiers
// Lecture d'un fichier de données simple : constitué de deux lignes d'entiers
// (25 entiers sur la première ligne de données, 15 entiers sur la seconde ligne)
// (fichier, téléchargeable ici : deux_lignes_d_entiers.txt)

size(7cm,7cm,IgnoreAspect);

file fich=input("data/deux_lignes_d_entiers.txt");

// Lecture du fichier jusque la fin du fichier
int[] tabledentiers = fich;

// Affichage de quelques valeurs
int k=0;
label(format("nombre d'entiers lus : %i",tabledentiers.length),(0,k));
label(format("tabledentiers[0]=%i",tabledentiers[0]),(0,--k));
label(format("tabledentiers[24]=%i",tabledentiers[24]),(0,--k));
label(format("tabledentiers[39]=%i",tabledentiers[39]),(0,--k));

shipout(bbox(.5cm,Fill(white)));
Asymptote - Figure 0002: fig_aa02_070309_deux_lignes_d_entiers.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa02_070309_deux_lignes_d_entiers
// Lecture d'un fichier de données simple : constitué de deux lignes d'entiers
// (25 entiers sur la première ligne de données, 15 entiers sur la seconde ligne)
// (fichier, téléchargeable ici : deux_lignes_d_entiers.txt)

size(7cm,7cm,IgnoreAspect);

file fich=input("data/deux_lignes_d_entiers.txt");

// Lecture du fichier jusque la fin de la première ligne
int[] tabledentiers = fich.line();

// Affichage de quelques valeurs
int k=0;
label(format("nombre d'entiers lus : %i",tabledentiers.length),(0,k));
label(format("tabledentiers[0]=%i",tabledentiers[0]),(0,--k));
label(format("tabledentiers[24]=%i",tabledentiers[24]),(0,--k));

shipout(bbox(.5cm,Fill(white)));
Asymptote - Figure 0003: fig_aa03_070309_deux_lignes_d_entiers.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa03_070309_deux_lignes_d_entiers
// Lecture d'un fichier de données simple : constitué de deux lignes d'entiers
// (25 entiers sur la première ligne de données, 15 entiers sur la seconde ligne)
// (fichier, téléchargeable ici : deux_lignes_d_entiers.txt)

size(7cm,7cm,IgnoreAspect);

file fich=input("data/tableau_d_entiers.dat");

// Lecture de la première ligne,
int[] l1 = fich.line();
// ... puis de la seconde.
int[] l2 = fich;

// Affichage de quelques valeurs
int k=0;
label(format("nombre d'entiers sur la ligne 1 : $%i$",l1.length),(0,k));
label(format("nombre d'entiers sur la ligne 2 : $%i$",l2.length),(0,--k));
label(format("le $3^{e}$ terme de la ligne 1 est : l1[2]=$%i$",l1[2]),(0,--k));
label(format("le $5^{e}$ terme de la ligne 2 est : l2[4]=$%i$",l2[4]),(0,--k));

shipout(bbox(.5cm,Fill(white)));
Asymptote - Figure 0004: fig_aa04_070309_deux_lignes_d_entiers.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa04_070309_deux_lignes_d_entiers
// Lecture d'un fichier de données simple : constitué de deux lignes d'entiers
// (25 entiers sur la première ligne de données, 15 entiers sur la seconde ligne)
// (fichier, téléchargeable ici : deux_lignes_d_entiers.txt)

size(7cm,7cm,IgnoreAspect);

file fich=input("data/deux_lignes_d_entiers.txt");

// Lecture des 5 premiers nombres de la première ligne,
int[] tab1 = fich.dimension(5);
// ... puis des 4 nombres suivants
int[] tab2 = fich.dimension(4);
// ... puis à nouveau des 4 nombres suivants
int[] tab3 = fich;
// ... puis à nouveau des 4 nombres suivants
int[] tab4 = fich;
// ... puis des nombres restants
int[] tab5 = fich.dimension(0);

// Affichage de quelques valeurs
label(format("nombre d'entiers dans tab1 : $%i$",tab1.length),(0,0));
for(int k=0; k<tab1.length; ++k) label(format(tab1[k]),(3*k-5,-1));
label(format("nombre d'entiers dans tab2 : $%i$",tab2.length),(0,-2));
for(int k=0; k<tab2.length; ++k) label(format(tab2[k]),(3*k-5,-3));
label(format("nombre d'entiers dans tab3 : $%i$",tab3.length),(0,-4));
for(int k=0; k<tab3.length; ++k) label(format(tab3[k]),(3*k-5,-5));
label(format("nombre d'entiers dans tab4 : $%i$",tab4.length),(0,-6));
for(int k=0; k<tab4.length; ++k) label(format(tab4[k]),(3*k-5,-7));
label(format("nombres restants dans tab5 : $%i$",tab5.length),(0,-8));

shipout(bbox(.5cm,Fill(white)));
Asymptote - Figure 0005: fig_ab01_070309_tableau_d_entiers.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ab01_070309_tableau_d_entiers
// Lecture d'un fichier de données simple : un tableau 40x25 d'entiers
// (fichier, téléchargeable ici : tableau_d_entiers.dat)

size(7cm,7cm,IgnoreAspect);

file fich=input("data/tableau_d_entiers.dat");

// Lecture du fichier du début à la fin...
// ... et remplissage d'un tableau de 40 lignes, 25 colonnes
int n=40, p=25;
int[][] tab = fich.dimension(n,p);

// Affichage partiel de tab
for(int x=0; x<n; ++x) 
    for(int y=0; y<p; ++y) {
            if (x<3 && y<3)
                label(format(tab[x][y]),(y,-x));
            if (((x<3 || x==(n-1)) && y==(p-1)) || (x==(n-1) && y<3))
                label(format(tab[x][y]),(min(y,4),-min(x,4)));
        }
draw((0,-2.5)--(0,-3.5)^^(2.5,0)--(3.5,0)
      ^^(4,-2.5)--(4,-3.5)^^(2.5,-4)--(3.5,-4),1bp+dotted);

shipout(bbox(.5cm,Fill(white)));
Asymptote - Figure 0006: fig_ab02_070309_tableau_d_entiers.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ab02_070309_tableau_d_entiers
// Lecture d'un fichier de données simple : un tableau 40x25 d'entiers
// (fichier, téléchargeable ici : tableau_d_entiers.dat)

size(7cm,7cm,IgnoreAspect);

file fich=input("data/tableau_d_entiers.dat");

int n=2,p=5;
// Lecture du fichier du début vers la fin...
// ... jusqu'à remplissage d'un tableau de n lignes, p colonnes
int[][] tab1 = fich.dimension(n,p);
// ... puis poursuite de la lecture pour remplir un nouveau tableau n x p
int[][] tab2 = fich;

// Affichage de tab1
label("tab1 :",(0,0));
for(int x=0; x<n; ++x) for(int y=0; y<p; ++y) label(format(tab1[x][y]),(y,-x-1));

// Affichage de tab2
label("tab2 :",(0,-4));
for(int x=0; x<n; ++x) for(int y=0; y<p; ++y) label(format(tab2[x][y]),(y,-x-5));

shipout(bbox(.5cm,Fill(white)));
Asymptote - Figure 0007: fig_ab03_070309_tableau_d_entiers.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ab03_070309_tableau_d_entiers
// fichier de données utilisé : tableau_d_entiers.dat)

texpreamble("\usepackage[francais]{babel}");

size(7cm,7cm,IgnoreAspect);

file fich=input("data/tableau_d_entiers.dat");

int x=5,y=5,z=5;

// Lecture du fichier du début vers la fin...
// ... jusqu'à remplissage d'un tableau 3d
// de x lignes, y colonnes, z couches.

int[][][] tab = fich.dimension(x,y,z);
              
// Affichage de quelques valeurs
int k=0;
label(format("\begin{minipage}{7cm}Sur la 1\iere~ligne, 1\iere~colonne de la 1\iere~couche
              on trouve le nombre :\\ tab[0][0][0]=$%i$\end{minipage}",tab[0][0][0]),(0,k));
label(format("\begin{minipage}{7cm}Sur la 1\iere~ligne, 1\iere~colonne de la 2\ieme~couche
              on trouve le nombre :\\ tab[0][0][1]=$%i$\end{minipage}",tab[0][0][1]),(0,--k));
label(format("\begin{minipage}{7cm}Sur la 2\ieme~ligne, 1\iere~colonne de la 3\ieme~couche
              on trouve le nombre :\\ tab[1][0][2]=$%i$\end{minipage}",tab[1][0][2]),(0,--k));

shipout(bbox(.5cm,Fill(white)));
Asymptote - Figure 0008: fig_az01_140309_fonction_tell.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_az01_140309_fonction_tell
// fichier de données utilisé : tableau_d_entiers.dat)

// exemple d'utilisation de la fonction tell

size(7cm,7cm,IgnoreAspect);

file fich=input("data/tableau_d_entiers.dat");

int n=10, p=5;

int[][] tab1 = fich.dimension(n,p);
int pointeur=tell(fich);
label(format("\begin{minipage}{7cm}apr\`es remplissage du premier tableau,\\
              la position courante est : $%i$\end{minipage}",pointeur),(0,0));

int[][] tab2 = fich;
pointeur=tell(fich);
label(format("\begin{minipage}{7cm}apr\`es remplissage du second tableau,\\
              la position courante est : $%i$\end{minipage}",pointeur),(0,-2));
              
shipout(bbox(.5cm,Fill(white)));
Asymptote - Figure 0009: fig_ta01_250611_texte.asy
(Code compilé avec Asymptote version 2.22svn-r5538)
largeur320 Figure fig_ta01_250611_texte
// fichier de données utilisé : tab_mots.dat)

file fich=input("data/tab_mots.dat");
string[] y = fich; 
write("taille de y : ",y.length);
write(y);
Asymptote - Figure 0010: fig_ta02_250611_texte.asy
(Code compilé avec Asymptote version 2.22svn-r5538)
largeur320 Figure fig_ta02_250611_texte
// fichier de données utilisé : tab_mots.dat)

file fich=input("data/tab_mots.dat");
string[] y = fich.word(); 
write("taille de y : ",y.length);
write(y);
Asymptote - Figure 0011: fig_ta03_250611_texte.asy
(Code compilé avec Asymptote version 2.22svn-r5538)
largeur320 Figure fig_ta03_250611_texte
// fichier de données utilisé : tab_mots.dat)

file fich=input("data/tab_mots.dat");
string[] y = fich.line().word(); 
write("taille de y : ",y.length);
write(y); 
Asymptote - Figure 0012: fig_va01_120510_donnees_differents_types.asy
(Code compilé avec Asymptote version 2.22svn-r5538)
largeur320 Figure fig_va01_120510_donnees_differents_types
// Lecture d'un fichier de données variées, de différents types.
// (fichier, téléchargeable ici : donnees_variees.txt)

size(7cm,7cm,IgnoreAspect);

file fich=input("data/donnees_variees.txt").line().word();

string[] pays;
int[]    population,
         superficie;
real[]   esperancevie;           

while(eof(fich)!=true) {
  pays.push(fich);
  population.push(fich);
  superficie.push(fich);
  esperancevie.push(fich);
}

// Affichage de quelques valeurs
int k=0;
label(format("Nombre de pays : %i",pays.length),(0,k));
label(pays[2],(0,--k));
label(format("Population : %i hab.",population[2]),(0,--k));
label(format("Superficie : %i km²",superficie[2]),(0,--k));
label(format("Esp\'erance de vie : %f",esperancevie[2]),(0,--k));

shipout(bbox(.5cm,Fill(white))); 

Dernière modification le Sun Aug 4 14:19:02 CEST 2013 par G.Marris       Valide XHTML