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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| -- ********************************************************
-- Nom Prog : ED14.adb
-- Type : Application
-- Sujet : Ecriture dans un fichier
--
-- Auteur : P. RICHARD
-- Version : 1.1
-- Creation : 21/11/2006 - 00:47
-- Dern. Modif :
--
-- Compilateur : GNAT 3.12p
-- Remarques : Environnement Windows XP SP2
-- ********************************************************
-- ********************************************************
-- Exemple d'utilisation des fichiers texte
-- Ecriture de "notes" dans un fichier
-- Structure Num_Ordre Num_devoir Note
-- ********************************************************
with ada.Text_Io;
use ada.Text_Io;
procedure ED14 is
subtype Mes_Entiers is Integer range 0..100;
subtype Mes_Reels is Float range 0.0..2000.0;
F_In : File_Type;
Sum_Notes : Mes_Reels;
Somme_Carre_DNotes : Mes_Reels;
Carre_Somme_DNotes : Mes_Reels;
Variance : Mes_Reels;
--Ecart_type : Mes_Reels;
Exposant : Mes_Entiers;
Num_Ordre : Mes_Entiers;
Num_Devoir : Mes_Entiers;
Note : Mes_Reels;
Nb_Enregistrements : Mes_Entiers := 0;
Nom_Fichier : String := "FICH1.dat";
Nom : String (1 .. Nom_Fichier'Length);
package Mes_Entiers_Io is new Integer_Io(Mes_Entiers);
use Mes_Entiers_Io;
package Mes_Reels_Io is new Float_Io(Mes_Reels);
use Mes_Reels_Io;
begin
put_line("Debut - ED14");
new_line;
put_line("Lecture de donnees dans FICH1.dat");
put_line("---------------------------------");
new_line;
Open (F_In, In_File, Nom_Fichier);
Get (F_In, Nom);
put("Nom du fichier en lecture : ");
put(Nom);
new_line(2);
put_line("Num_Ordre Num_Devoir Note");
new_line;
while not End_Of_File (F_In) loop
Nb_Enregistrements := Nb_Enregistrements + 1;
Get (F_In, Num_Ordre); Get (F_In, Num_Devoir); Get (F_In, Note);
put(Num_Ordre, width => 5); put(" ");
put(Num_Devoir, width => 5); put(" ");
put(Note, FORE => 3, AFT => 2, EXP => 0);
Sum_Notes := Sum_Notes + Note;
Somme_Carre_DNotes := Somme_Carre_DNotes + (Note * Note);
new_line;
end loop;
Carre_Somme_DNotes := (Sum_Notes * Sum_Notes)/float(Nb_Enregistrements);
Variance := (Somme_Carre_DNotes - Carre_Somme_DNotes)/float(Nb_Enregistrements);
new_line;
put(Variance);
new_line;
Exposant := 1/2;
put(float(25**(Exposant)));
--Ecart_type := Variance**Exposant;
new_line;
--put(Ecart_type);
new_line;
put("Nombres d'enregistrements : ");
put(Nb_Enregistrements);
new_line;
put("Somme des notes : ");
put(Sum_Notes, FORE => 4, AFT => 2, EXP => 0);
new_line;
put("Moyenne : ");
put(Sum_Notes/float(Nb_Enregistrements), FORE => 4, AFT => 2, EXP => 0);
new_line;
put("Ecart-type : ");
--put(Ecart_type, FORE => 4, AFT => 2, EXP => 0);
new_line;
put("Variance : ");
put(Variance, FORE => 4, AFT => 2, EXP => 0);
Close (F_In);
new_line;
put_line("Fin - ED14");
end ED14; |
Partager