Programme pascal(plongeur)
Résolu/Fermé
lowpien
-
16 juil. 2008 à 13:13
lowpien Messages postés 41 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 22 janvier 2011 - 13 août 2008 à 00:21
lowpien Messages postés 41 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 22 janvier 2011 - 13 août 2008 à 00:21
A voir également:
- Programme pascal(plongeur)
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Turbo pascal download - Télécharger - Édition & Programmation
- Frequence programme national ✓ - Forum Messagerie
- Programme demarrage windows 10 - Guide
- My pascal - Télécharger - Édition & Programmation
18 réponses
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
7 août 2008 à 02:23
7 août 2008 à 02:23
voila l'ebauche de mon programme, mais j'ai deja de la misere au niveau de la fonction val, le compilateur me donne une erreur...
program plongeur;
const
plongeurs = 5;
nombre_donnees = 25;
notes = 24;
type
plongeur_txt = record
nom_txt : string;
coef1_txt : string;
serie1_txt : array[1..7] of string;
coef2_txt : string;
serie2_txt : array[1..7] of string;
coef3 : string;
serie3_txt : array[1..7] of string;
end;
notes_txt = array[1..5] of plongeur_txt;
plongeur_num = record
nom_num : string;
coef1_num : real;
serie1_num : array[1..7] of real;
coef2_num : real;
serie2_num : array[1..7] of real;
coef3_num : real;
serie3_num : array[1..7] of real;
end;
notes_num = array[1..5] of plongeur_num;
var
fiche_notes : text;
plongeurs_t : notes_txt;
plongeurs_n : notes_num;
compteur : integer;
donnees, num_plongeur : integer;
procedure initialisation;
var
donnees, num_plongeur : integer;
begin
end;
procedure extract_notes;
var
num_plongeur : integer;
begin
assign (fic_notes, 'D:\Resultat.txt');
reset (fic_notes);
for num_plongeur := 1 to nbre_plongeurs do
read (fic_notes, plongeurs_t[num_plongeur]);
closefile (fic_notes);
end;
procedure converssion_notes;
var
code : integer;
donnees, num_plongeur : integer;
begin
for num_plongeur := 1 to nbre_plongeurs do
for donnees := 2 to nbre_donnees do
val(tableau_notes_txt[donnees, num_plongeur], tableau_notes_num[(donnees - 1), num_plongeur], code);
end;
program plongeur;
const
plongeurs = 5;
nombre_donnees = 25;
notes = 24;
type
plongeur_txt = record
nom_txt : string;
coef1_txt : string;
serie1_txt : array[1..7] of string;
coef2_txt : string;
serie2_txt : array[1..7] of string;
coef3 : string;
serie3_txt : array[1..7] of string;
end;
notes_txt = array[1..5] of plongeur_txt;
plongeur_num = record
nom_num : string;
coef1_num : real;
serie1_num : array[1..7] of real;
coef2_num : real;
serie2_num : array[1..7] of real;
coef3_num : real;
serie3_num : array[1..7] of real;
end;
notes_num = array[1..5] of plongeur_num;
var
fiche_notes : text;
plongeurs_t : notes_txt;
plongeurs_n : notes_num;
compteur : integer;
donnees, num_plongeur : integer;
procedure initialisation;
var
donnees, num_plongeur : integer;
begin
end;
procedure extract_notes;
var
num_plongeur : integer;
begin
assign (fic_notes, 'D:\Resultat.txt');
reset (fic_notes);
for num_plongeur := 1 to nbre_plongeurs do
read (fic_notes, plongeurs_t[num_plongeur]);
closefile (fic_notes);
end;
procedure converssion_notes;
var
code : integer;
donnees, num_plongeur : integer;
begin
for num_plongeur := 1 to nbre_plongeurs do
for donnees := 2 to nbre_donnees do
val(tableau_notes_txt[donnees, num_plongeur], tableau_notes_num[(donnees - 1), num_plongeur], code);
end;
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
7 août 2008 à 19:29
7 août 2008 à 19:29
Il n'est pas nécessaire de faire un tri pour calculer min et max... On peut même tout faire d'un coup !
function Moyenne_Serie(var s:Serie_Num):real;
var min,max,total:real; i:integer;
begin
min:=s[1];
max:=s[1];
total:=s[1];
for i:=2 to Nbre_Juges do
begin
total:=total+s[i];
if s[i]>max then max:=s[i];
if s[i]<min then min:=s[i];
end;
result:=(total-min-max)/real(Nbre_Juges-2);
end;
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
7 août 2008 à 12:33
7 août 2008 à 12:33
Je fais les remarques au fur et à mesure que je lis ton programme :
Inutile de faire trois types différents pour tes trois séries, alors qu'il s'agit du même type...
Fais un type Serie_Txt=array[1..7] of string que tu utilisera trois fois (idem pour Serie_Num)
Dans ton enregistrement de plongeur, il est inutile de rappeler le _txt ou le _num à chaque fois sinon dans ton code tu vas avoir plongeur_txt.serie1_txt, pongeur_num.serie1_num... c'est lourd !
En général quand on code on préfère en écrire le moins possible, parce que c'est plus clair !
En plus tu écris toujours array[1..5] alors qu'en fait c'est plutôt array[1..Nbre_Plongeur];
Dans tes procédures les noms ne coïncident pas avec ce que tu déclares (Nbre_Plongeur, Fic_Notes...)
Tu ne peux pas te servir d'un fichier Text pour faire ce que tu veux...
À moins que tu ne code avec Delphi, pour fermer un fichier l'expression est close(fichier) et non closefile
Pour deux types imbriqués comme Notes et Plongeur, il faut d'abord faire appel à plongeur=Notes[i] puis à coefficient=(Notes[i]).c1
D'ailleurs je ne vois pas à quoi sert Nbre_Donnees... Tu m'expliqueras à l'occasion...
Inutile de faire trois types différents pour tes trois séries, alors qu'il s'agit du même type...
Fais un type Serie_Txt=array[1..7] of string que tu utilisera trois fois (idem pour Serie_Num)
Dans ton enregistrement de plongeur, il est inutile de rappeler le _txt ou le _num à chaque fois sinon dans ton code tu vas avoir plongeur_txt.serie1_txt, pongeur_num.serie1_num... c'est lourd !
En général quand on code on préfère en écrire le moins possible, parce que c'est plus clair !
En plus tu écris toujours array[1..5] alors qu'en fait c'est plutôt array[1..Nbre_Plongeur];
const Nbre_Plongeurs = 5;
Nbre_Donnees = 25;
Notes = 24;
type Serie_Txt = array[1..7] of string;
Plongeur_Txt = record
nom:string;
c1,c2,c3 : string;
s1,s2,s3 : Serie_Txt;
end;
Notes_Txt = array[1..Nbre_Plongeurs] of Plongeur_Txt;
Serie_Num = array[1..7] of real;
Plongeur_Num = record
nom:string;
c1,c2,c3 : real;
s1,s2,s3 : Serie_Num;
end;
Notes_Num = array[1..Nbre_Plongeurs] of Plongeur_Txt;
Fichier_Notes = Text;De plus tu déclares toutes tes variables 2 fois ! Une fois en globale, et une fois en locale dans chacune de tes procédures... Forcément que ton compilateur plante... À quoi ça sert qu'on ait inventé les paramètres ?
Dans tes procédures les noms ne coïncident pas avec ce que tu déclares (Nbre_Plongeur, Fic_Notes...)
Tu ne peux pas te servir d'un fichier Text pour faire ce que tu veux...
À moins que tu ne code avec Delphi, pour fermer un fichier l'expression est close(fichier) et non closefile
Pour deux types imbriqués comme Notes et Plongeur, il faut d'abord faire appel à plongeur=Notes[i] puis à coefficient=(Notes[i]).c1
D'ailleurs je ne vois pas à quoi sert Nbre_Donnees... Tu m'expliqueras à l'occasion...
procedure Extract_Notes(Chemin_Txt:string; var N_Txt:Notes_Txt); // avec Chemin='D:\Resultat.txt'
var f:Fichier_Txt;
begin
assign(f,Chemin_Txt);
reset(f);
read(f, N_Txt);
close(f);
end;
procedure conversion_notes(var N_Txt:Notes_Txt; var N_Num:Notes_Num);
var code,i,j:integer; r:real;
begin
for i:=1 to Nbre_Plongeurs do
begin
val(N_Txt[i].c1,N_Num[i].c1,code);
val(N_Txt[i].c2,N_Num[i].c2,code);
val(N_Txt[i].c3,N_Num[i].c3,code);
for j:=1 to 7 do
begin
val(N_Txt[i].s1[j],N_Num[i].s1[j],code);
val(N_Txt[i].s2[j],N_Num[i].s2[j],code);
val(N_Txt[i].s3[j],N_Num[i].s3[j],code);
end;
end;
end;
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
7 août 2008 à 15:27
7 août 2008 à 15:27
Nbr_donnees represente le nombre de donnee qui sont entrer (notes(24) + nom du plongeur) mais c'est vrais que en bout de compte je ne l'utilise pas. Mon plan est comme suit, mais je me demandais si je pouvais faire appel a plusieur procedure pour lire le programme sans le surcharger?
function Entree_des_donnees : plongeur_txt;
var b:byte;
begin
writeln; writeln('---- Entree DES DONNEES ----'); writeln;
for plongeur 1 to 5 do
begin
writeln('Nom : ');
readln(Nom );
writeln;
for notes 1 to 3 do
begin
writeln(' notes : ');
readln(notes);
writeln(' coeffient de difficulte : ');
readln(code);
writeln;
end;
end;
procedure lecture_notes;
begin
extract_notes;
conversion_notes;
end;
procedure exclusion_Notemin_Notemax;
begin
end;
procedure calcul_moyenne;
begin
end;
procedure calcul_note;
begin
end;
procedure note_finale;
begin
end;
procedure calcul_resultats;
begin
exclusion_Notemin_Notemax;
calcul_moyenne;
calcul_note;
note_finale;
end;
procedure afficher_ecran;
begin
end;
procedure imprime;
begin
end;
procedure rapport;
var
rep : string[1];
begin
repeat
write ('Voulez-vous afficher ou imprimer les notes (tapez A ou I) ? ');
readln (rep);
until (rep = 'A') or (rep = 'I');
if rep = 'A' then
afficher_ecran
else
imprime;
end;
begin
initialisation;
extraction_notes;
conversion_notes;
lecture_notes;
calcul_resultats;
rapport
end.
function Entree_des_donnees : plongeur_txt;
var b:byte;
begin
writeln; writeln('---- Entree DES DONNEES ----'); writeln;
for plongeur 1 to 5 do
begin
writeln('Nom : ');
readln(Nom );
writeln;
for notes 1 to 3 do
begin
writeln(' notes : ');
readln(notes);
writeln(' coeffient de difficulte : ');
readln(code);
writeln;
end;
end;
procedure lecture_notes;
begin
extract_notes;
conversion_notes;
end;
procedure exclusion_Notemin_Notemax;
begin
end;
procedure calcul_moyenne;
begin
end;
procedure calcul_note;
begin
end;
procedure note_finale;
begin
end;
procedure calcul_resultats;
begin
exclusion_Notemin_Notemax;
calcul_moyenne;
calcul_note;
note_finale;
end;
procedure afficher_ecran;
begin
end;
procedure imprime;
begin
end;
procedure rapport;
var
rep : string[1];
begin
repeat
write ('Voulez-vous afficher ou imprimer les notes (tapez A ou I) ? ');
readln (rep);
until (rep = 'A') or (rep = 'I');
if rep = 'A' then
afficher_ecran
else
imprime;
end;
begin
initialisation;
extraction_notes;
conversion_notes;
lecture_notes;
calcul_resultats;
rapport
end.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
7 août 2008 à 16:46
7 août 2008 à 16:46
Pour la forme, j'ai remplacé tous tes 7 par Nbre_Juges une constante que j'ai déclaré au début...
procedure Entree_Plongeon(n:integer;var s:Serie_Num;var c:real);
var i:integer;
begin
writeln('Plongeon ',n,' :');
writeln;
write(' Coefficient : ');
readln(c);
writeln;
for i:=1 to Nbre_Juges do
begin
write(' Note ',i,' : '); readln(s[i]);
end;
writeln;
end;
function Entree_Donnees:Notes_Num;
var i:integer;
begin
writeln;
for i:=1 to Nbre_Plongeurs do
with result[i] do
begin
write('Nom : '); readln(Nom);
writeln;
Entree_Plongeon(1,s1,c1);
Entree_Plongeon(2,s2,c2);
Entree_Plongeon(3,s3,c3);
end;
end;
function Importer_Donnees:Notes_Num;
var Chemin:string; N_Txt:Notes_Txt;
begin
writeln('Import de donnees a partir de quel fichier ?');
readln(Chemin);
Extract_Notes(Chemin,N_Txt);
Conversion_Notes(N_Txt,result);
end;En ce qui concerne ton systeme de calcul (exclusion du min et du max) tu aurais intéret à faire une fonction min, et une fonction max puis de faire directement moyenne=(somme-min-max)/(Nbre_Juges-2)
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
7 août 2008 à 18:00
7 août 2008 à 18:00
Si je le met sous cette forme pour faire un tri par selection ?
TYPE (recherche note_min)
tableaux = ARRAY[1..Notemax] OF INTEGER;
VAR
lesnotes : tableau;
minj, compteur, minx, i, j, notes : INTEGER;
FOR i := 1 TO (Notes – 1) DO
BEGIN
minj := i;
minx := lesnotes[i];
FOR j := (i + 1) TO notes DO
BEGIN
IF (lesnotes[j] < minx) THEN
BEGIN
minj := j;
minx := lesnotes[j];
END;
END;
lesnotes[minj] := lesnombres[i];
lesnotes[i] := minx;
END;
TYPE (recherche note_max)
tableaux = ARRAY[1..Notemax] OF INTEGER;
VAR
lesnotes : tableau;
maxj, maxx, i, j, notes : INTEGER;
FOR i := 1 TO (Notes – 1) DO
BEGIN
maxj := i;
maxx := lesnotes[i];
FOR j := (i + 1) TO notes DO
BEGIN
IF (lesnotes[j] > maxx) THEN
BEGIN
maxj := j;
maxx := lesnotes[j];
END;
END;
lesnotes[maxj] := lesnombres[i];
lesnotes[i] := maxx;
END;
TYPE (recherche note_min)
tableaux = ARRAY[1..Notemax] OF INTEGER;
VAR
lesnotes : tableau;
minj, compteur, minx, i, j, notes : INTEGER;
FOR i := 1 TO (Notes – 1) DO
BEGIN
minj := i;
minx := lesnotes[i];
FOR j := (i + 1) TO notes DO
BEGIN
IF (lesnotes[j] < minx) THEN
BEGIN
minj := j;
minx := lesnotes[j];
END;
END;
lesnotes[minj] := lesnombres[i];
lesnotes[i] := minx;
END;
TYPE (recherche note_max)
tableaux = ARRAY[1..Notemax] OF INTEGER;
VAR
lesnotes : tableau;
maxj, maxx, i, j, notes : INTEGER;
FOR i := 1 TO (Notes – 1) DO
BEGIN
maxj := i;
maxx := lesnotes[i];
FOR j := (i + 1) TO notes DO
BEGIN
IF (lesnotes[j] > maxx) THEN
BEGIN
maxj := j;
maxx := lesnotes[j];
END;
END;
lesnotes[maxj] := lesnombres[i];
lesnotes[i] := maxx;
END;
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
7 août 2008 à 20:26
7 août 2008 à 20:26
est ce que le
total:=total+s[i]; c'est le total de tout les plongeons? pour un plongeur?
et cette ligne result:=(total-min-max)/real(Nbre_Juges-2); est ce une division par le nombre de juges?
je n'ai donc plus besoin d'ecrire des procedures comme suit? :
procedure exclusion_Notemin_Notemax;
procedure calcul_moyenne;
procedure calcul_note;
procedure note_finale;
procedure calcul_resultats;
begin
exclusion_Notemin_Notemax;
calcul_moyenne;
calcul_note;
note_finale;
end;
procedure afficher_ecran;
comment m'y prendre pour faire afficher un rapport qui comprend les plongeurs en ordre décroissant de leur résultat final, ainsi que leur notes et les coefficients de tous leurs plongeons.
je voulais ecrire une procedure de se genre :
procedure rapport;
procedure rapport;
var
rep : string[1];
begin
repeat
write ('Voulez-vous afficher ou imprimer les notes (tapez A ou I) ? ');
readln (rep);
until (rep = 'A') or (rep = 'I');
if rep = 'A' then
afficher_ecran
else
imprime;
end;
begin
extraction_notes;
conversion_notes;
lecture_notes;
calcul_resultats;
rapport
end.
total:=total+s[i]; c'est le total de tout les plongeons? pour un plongeur?
et cette ligne result:=(total-min-max)/real(Nbre_Juges-2); est ce une division par le nombre de juges?
je n'ai donc plus besoin d'ecrire des procedures comme suit? :
procedure exclusion_Notemin_Notemax;
procedure calcul_moyenne;
procedure calcul_note;
procedure note_finale;
procedure calcul_resultats;
begin
exclusion_Notemin_Notemax;
calcul_moyenne;
calcul_note;
note_finale;
end;
procedure afficher_ecran;
comment m'y prendre pour faire afficher un rapport qui comprend les plongeurs en ordre décroissant de leur résultat final, ainsi que leur notes et les coefficients de tous leurs plongeons.
je voulais ecrire une procedure de se genre :
procedure rapport;
procedure rapport;
var
rep : string[1];
begin
repeat
write ('Voulez-vous afficher ou imprimer les notes (tapez A ou I) ? ');
readln (rep);
until (rep = 'A') or (rep = 'I');
if rep = 'A' then
afficher_ecran
else
imprime;
end;
begin
extraction_notes;
conversion_notes;
lecture_notes;
calcul_resultats;
rapport
end.
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
7 août 2008 à 20:43
7 août 2008 à 20:43
Telle que je l'ai écrit, c'est la moyenne des notes (sauf extremum) d'une série de notes (d'un seul plongeon).
C'est à dire que pour avoir la note finale sur 3 sauts (contenues dans N_Num) il faudra faire
Sinon pour ton Rapport c'est bien, même si le type string[1] peut-être remplacé par le type char
D'un point de vue présentation on pourrait aussi aider l'utilisateur en acceptant les minuscules
C'est à dire que pour avoir la note finale sur 3 sauts (contenues dans N_Num) il faudra faire
NoteFinale:= Moyenne_Serie(N_Num.s1)+Moyenne_Serie(N_Num.s2)+Moyenne_Serie(N_Num.s3);La division est en fait celle du nombre de juges-2 puisqu'on ôte 2 des votes !
Sinon pour ton Rapport c'est bien, même si le type string[1] peut-être remplacé par le type char
D'un point de vue présentation on pourrait aussi aider l'utilisateur en acceptant les minuscules
procedure Afficher_Ecran;
begin
writeln('Affichage Ecran');
end;
procedure Imprime;
begin
writeln('Impression');
end;
procedure rapport;
var rep:char;
begin
repeat
write('Voulez-vous afficher ou imprimer les notes (tapez A ou I) ? ');
readln(rep); writeln;
until (rep='A') or (rep='a') or (rep = 'I') or (rep='i');
if (rep='A') or (rep='a') then afficher_ecran
else imprime;
end;
begin
Rapport;
writeln; write('Fin du programme. Appuyer sur Entree'); readln;
end.
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
7 août 2008 à 23:06
7 août 2008 à 23:06
J'essaye de compiler, mais j'ai beaucoups d'erreur de type incompatible dans
la procedure Extract_Notes et
la procedure conversion_notes
[Erreur] Project1.dpr(31): E2007 Constante ou identificateur de type attendu : var f:Chemin_Txt;
[Erreur] Project1.dpr(81): E2033 Les types des paramètres VAR originaux et formels doivent être identiques
Entree_Plongeon(1,s1,c1);
Entree_Plongeon(2,s2,c2);
Entree_Plongeon(3,s3,c3);
la procedure Extract_Notes et
la procedure conversion_notes
[Erreur] Project1.dpr(31): E2007 Constante ou identificateur de type attendu : var f:Chemin_Txt;
[Erreur] Project1.dpr(81): E2033 Les types des paramètres VAR originaux et formels doivent être identiques
Entree_Plongeon(1,s1,c1);
Entree_Plongeon(2,s2,c2);
Entree_Plongeon(3,s3,c3);
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
7 août 2008 à 23:26
7 août 2008 à 23:26
Je n'ai pas trop l'habitude de travailler avec Delphi pour des applications comme celle-ci...
Mai je n'ai jamais écrit var f:Chemin_Txt; ça doit être une erreur de copier-coller au 2ème post
En ce qui concerne la 2ème erreur c'est une spécificité Delphi que j'ai encore du mal à cerner...
Essaye de bidouiller avec ça :
Mai je n'ai jamais écrit var f:Chemin_Txt; ça doit être une erreur de copier-coller au 2ème post
En ce qui concerne la 2ème erreur c'est une spécificité Delphi que j'ai encore du mal à cerner...
Essaye de bidouiller avec ça :
function Entree_Donnees:Notes_Num;
var i:integer; s:Serie_Num; c:real;
begin
writeln;
for i:=1 to Nbre_Plongeurs do
with result[i] do
begin
write('Nom : '); readln(Nom);
writeln;
Entree_Plongeon(1,s,c);
s1:=s; c1:=c;
Entree_Plongeon(2,s,c);
s2:=s; c2:=c;
Entree_Plongeon(3,s,c);
s3:=s; c3:=c;
end;
end;Ou éventuellement comme çafunction Entree_Donnees:Notes_Num;
var i:integer; N:Notes_Num;
begin
writeln;
for i:=1 to Nbre_Plongeurs do
with N[i] do
begin
write('Nom : '); readln(Nom);
writeln;
Entree_Plongeon(1,s1,c1);
Entree_Plongeon(2,s2,c2);
Entree_Plongeon(3,s3,c3);
end;
result:=N;
end;Ou en combinant les deuxfunction Entree_Donnees:Notes_Num;
var i:integer; s:Serie_Num; c:real; N:Notes_Num;
begin
writeln;
for i:=1 to Nbre_Plongeurs do
with N[i] do
begin
write('Nom : '); readln(Nom);
writeln;
Entree_Plongeon(1,s,c);
s1:=s; c1:=c;
Entree_Plongeon(2,s,c);
s2:=s; c2:=c;
Entree_Plongeon(3,s,c);
s3:=s; c3:=c;
end;
result:=N;
end;Sans garantie...
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
7 août 2008 à 21:18
7 août 2008 à 21:18
Si je fais un recapitulatif j'ai:
procedure Extract_Notes
procedure conversion_notes
procedure Entree_Plongeon
function Entree_Donnees
function Importer_Donnees
function Moyenne_Serie
procedure Afficher_Ecran
procedure Imprime
procedure rapport
il me semble que je dois avoir une procedure trier, pour classer les notes en ordre decroissant ?
procedure Extract_Notes
procedure conversion_notes
procedure Entree_Plongeon
function Entree_Donnees
function Importer_Donnees
function Moyenne_Serie
procedure Afficher_Ecran
procedure Imprime
procedure rapport
il me semble que je dois avoir une procedure trier, pour classer les notes en ordre decroissant ?
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
7 août 2008 à 23:39
7 août 2008 à 23:39
Si tu utilises une unité il ne sera pas nécessaire de déclarer Entree_Plongeon qui n'est qu'une procédure auxiliaire à Entree_Donnees.
Pour afficher par ordre décroissant, il n'est pas forcément nécessaire de trier les éléments, juste de les afficher dans le bon ordre...
Je vais te montrer mais dis moi d'abord de quelles types de notes tu parles (les notes des juges, ou le score final de tous les plongeurs ?)
Donne un exemple d'affichage pour aller droit au but...
Pour afficher par ordre décroissant, il n'est pas forcément nécessaire de trier les éléments, juste de les afficher dans le bon ordre...
Je vais te montrer mais dis moi d'abord de quelles types de notes tu parles (les notes des juges, ou le score final de tous les plongeurs ?)
Donne un exemple d'affichage pour aller droit au but...
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
7 août 2008 à 23:53
7 août 2008 à 23:53
Logiquement je dirais que ce que tu veux c'est l'affichage du score final
type Resultats=array[1..Nbre_Plongeurs] of real;
procedure Calculer_Resultats(var N:Notes_Num;var R:Resultats);
var i:integer;
begin
for i:=1 to Nbre_Plongeurs do
with N[i] do
R[i]:=c1*Moyenne_Serie(s1)+c2*Moyenne_Serie(s2)+c3*Moyenne_Serie(s3);
end;
procedure Affichage_Scores_Decroissant(N:Notes_Num;R:Resultats);
// R doit déjà contenir les Résultats de N
var i,j,k:integer; max:real; Aux:Resultats;
begin
Aux:=R;
for i:=1 to Nbre_Plongeurs do
begin
k:=0; max:=0;
for j:=1 to Nbre_Plongeurs do
if Aux[j]>max then begin
k:=j;
max:=Aux[j];
end;
writeln('Position ',i:2,' (',R[k]:7:3,'pts) : ',N[k].Nom);
Aux[k]:=0;
end;
end;Tu vois ça ressemble à du tri mais ce n'en est pas vraiment... Les avantages sans les inconvénients !
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
7 août 2008 à 23:54
7 août 2008 à 23:54
Oui je parle du score final de tout les plongeurs, mais aussi les notes de chaque plongeon avec le coefficient de difficulter.
ex nom du plongeur 1 score finale
note plongeon 1 coefficient de difficulter
note plongeon 2 coefficient de difficulter
note plongeon 3 coefficient de difficulter
ex nom du plongeur 1 score finale
note plongeon 1 coefficient de difficulter
note plongeon 2 coefficient de difficulter
note plongeon 3 coefficient de difficulter
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
8 août 2008 à 00:04
8 août 2008 à 00:04
En intégrant l'affichage décroissant des notes intermédiaires
procedure Affichage_Notes_Decroissant(S:Serie_Num;C:real);
var i,j,k:integer; max:real; Aux:Serie_Num;
begin
Aux:=S;
writeln(' Difficulte ',C:4:2,') :');
write(' ');
for i:=1 to Nbre_Juges do
begin
k:=0; max:=0;
for j:=1 to Nbre_Juges do
if Aux[j]>max then begin
k:=j;
max:=Aux[j];
end;
write(max:5:2);
Aux[k]:=0;
end;
writeln;
end;
type Resultats=array[1..Nbre_Plongeurs] of real;
procedure Calculer_Resultats(var N:Notes_Num;var R:Resultats);
var i:integer;
begin
for i:=1 to Nbre_Plongeurs do
with N[i] do
R[i]:=c1*Moyenne_Serie(s1)+c2*Moyenne_Serie(s2)+c3*Moyenne_Serie(s3);
end;
procedure Affichage_Scores_Decroissant(N:Notes_Num;R:Resultats);
// R doit déjà contenir les Résultats de N
var i,j,k:integer; max:real; Aux:Resultats;
begin
Aux:=R;
for i:=1 to Nbre_Plongeurs do
begin
k:=0; max:=0;
for j:=1 to Nbre_Plongeurs do
if Aux[j]>max then begin
k:=j;
max:=Aux[j];
end;
writeln('Position ',i:2,' (',R[k]:7:3,'pts) : ',N[k].Nom);
writeln(' Plongeon 1 :'); Affichage_Notes_Decroissant(N[k].s1,N[k].c1);
writeln(' Plongeon 2 :'); Affichage_Notes_Decroissant(N[k].s2,N[k].c2);
writeln(' Plongeon 3 :'); Affichage_Notes_Decroissant(N[k].s3,N[k].c3);
writeln; readln;
Aux[k]:=0;
end;
end;
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
8 août 2008 à 00:06
8 août 2008 à 00:06
Bonne fin de soirée, à demain pour d'éventuels autres problèmes...
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
8 août 2008 à 00:13
8 août 2008 à 00:13
Ok merci pour je vais m'atteller a demeler tout ca .........
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
10 août 2008 à 15:53
10 août 2008 à 15:53
bonjour, j'ai essayer de reecrire mon programme, mais j'ai encore beaucoups de difficulter, a la fin j'ai a peu pres ce que j'essaye d'avoir, c a d le rapport, mais il , n'affiche pas les noms des plongeurs, les notes,coefficient et total s'affichent, mais sont erronner, et je pense que j'ai des bouts de programme inutil, j'essaye de corriger tout ca depuis vendredi .....si tu peux jeter un coup d'oeil et m'aider..merci.
program Tentative_Plongeur;
const Nbre_Plongeurs = 5; Nbre_juges=7;
Nbre_Donnees = 25;
Notes = 24;
type Serie_Txt = array[1..7] of string;
Plongeur_Txt = record
nom:string;
c1,c2,c3 : string;
s1,s2,s3 : Serie_Txt;
end;
Notes_Txt = array[1..Nbre_Plongeurs] of Plongeur_Txt;
Serie_Num = array[1..7] of real;
Plongeur_Num = record
nom:string;
c1,c2,c3 : real;
s1,s2,s3 : Serie_Num;
end;
Notes_Num = array[1..Nbre_Plongeurs] of Plongeur_Txt;
Fichier_Txt = Text;
procedure Extract_Notes(Chemin_Txt:string; var N_Txt:Serie_Txt);
var f:Fichier_Txt;
begin
assign(f,Chemin_Txt);
reset(f);
read(f);
close(f);
end;
procedure conversion_notes(var N_Txt:Serie_Txt; var N_Num:Serie_Num);
var code,i,j:integer; c1,c2,c3 : integer; s1,s2,s3 : integer;
begin
for i:=1 to Nbre_Plongeurs do
begin
c1:=0;c2:=0;c3:=0;
val(N_Txt[c1],N_Num[c1],code);
val(N_Txt[c2],N_Num[c2],code);
val(N_Txt[c3],N_Num[c3],code);
for j:=1 to 7 do
begin
s1:=0;s2:=0;s3:=0;
val(N_Txt[s1],N_Num[s1],code);
val(N_Txt[s2],N_Num[s2],code);
val(N_Txt[s3],N_Num[s3],code);
end;
end;
end;
function Entree_Donnees:Notes_Num;
var i,j:integer; n:integer;var s:Serie_Num;var c:real;
begin
writeln;
for i:=1 to Nbre_Plongeurs do
with result[i] do
begin
write('Nom : '); readln(Nom);
writeln;
for n:=1 to 3 do
begin
writeln;
writeln('Plongeon ',n,'');
writeln;
write(' Coefficient : ');
readln(c);
writeln;
for j:=1 to Nbre_Juges do
begin
write(' Note ',j,' : '); readln(s[j]);
end;
end;
writeln;
end;
end;
function Importer_Donnees:Notes_Num;
var Chemin:string; N_Txt:Serie_Txt;
begin
write('Import de donnees a partir de quel fichier ? : ');
readln(Chemin);
writeln;
Extract_Notes(Chemin,N_Txt);
end;
function Moyenne_Serie:real;
var min,max,total:real; i:integer; s:Serie_Num; c:real; resultat_final:real;
j:integer; n:integer; nom:string;
begin
i:=0; c:=0;
min:=s[1];
max:=s[1];
total:=s[1];
begin
writeln;
for i:=1 to Nbre_Plongeurs do
begin
writeln('Nom : ',Nom,'');
writeln;
for n:=1 to 3 do
begin
writeln;
writeln('Plongeon ',n,'');
writeln;
write(' Coefficient : ',c,'');
writeln;
for j:=1 to Nbre_Juges do
begin
write(' Note ',s[j],'');
end;
end;
writeln;
writeln;
Writeln(' Total: ',total+s[i]:0:2);
total:=total+s[i];
if s[i]>max then max:=s[i];
if s[i]<min then min:=s[i];
end;
writeln('result: ',total-min-max:0:2);
result:=(total-min-max);
writeln;
if c=1 then Resultat_final:=result*1;
if c =2 then resultat_final:=result*2;
if c=3 then Resultat_final:=result*3;
writeln('Resultat_final: ',result*c:0:2);
Resultat_final:=result*c;
writeln;
end;
end;
procedure Afficher_Ecran;
var i,j,k:integer; max:real; Aux:Serie_Num; S:Serie_Num;C:real;
begin
writeln('Affichage Ecran');
Moyenne_Serie;
Aux:=S; C:=0;
writeln(' Difficulte ',C:0:0,') :');
write(' ');
for i:=1 to Nbre_Juges do
begin
k:=0; max:=0;
for j:=1 to Nbre_Juges do
if Aux[j]>max then begin
k:=j;
max:=Aux[j];
end;
write(max:0:0);
Aux[k]:=0;
end;
writeln;
end;
type Resultats=array[1..Nbre_Plongeurs] of real;
procedure Calculer_Resultats(var N:Notes_Num;var R:Resultats);
var i:integer; j,k:integer; max:real; Aux:Resultats;
begin
for i:=1 to Nbre_Plongeurs do
with N[i] do
begin
k:=0; max:=0; Aux:=R;
for j:=1 to Nbre_Plongeurs do
if Aux[j]>max then begin
k:=j;
max:=Aux[j];
end;
writeln('Position ',i:2,' (',R[k]:0:0,'pts) : ',N[k].Nom);
writeln(' Plongeon 1 :');
writeln(' Plongeon 2 :');
writeln(' Plongeon 3 :');
writeln; readln;
Aux[k]:=0;
end;
end;
procedure Imprime;
begin
writeln('Impression');
end;
procedure rapport;
var rep:char;
begin
repeat
write('Voulez-vous afficher ou imprimer les notes (tapez A ou I) ? ');
readln(rep); writeln;
until (rep='A') or (rep='a') or (rep = 'I') or (rep='i');
if (rep='A') or (rep='a') then afficher_ecran
else imprime;
end;
var n:integer; s:string;
begin
write('Entree nouvelle base de donnee ? 1. Oui, 2. Ancienne : ');
readln(n); writeln;
write('Chemin d''acces : '); readln(s); writeln;
if n=1 then Entree_Donnees;
Importer_Donnees;
Rapport;
writeln; write('Fin du programme. Appuyer sur Entree'); readln;
end.
program Tentative_Plongeur;
const Nbre_Plongeurs = 5; Nbre_juges=7;
Nbre_Donnees = 25;
Notes = 24;
type Serie_Txt = array[1..7] of string;
Plongeur_Txt = record
nom:string;
c1,c2,c3 : string;
s1,s2,s3 : Serie_Txt;
end;
Notes_Txt = array[1..Nbre_Plongeurs] of Plongeur_Txt;
Serie_Num = array[1..7] of real;
Plongeur_Num = record
nom:string;
c1,c2,c3 : real;
s1,s2,s3 : Serie_Num;
end;
Notes_Num = array[1..Nbre_Plongeurs] of Plongeur_Txt;
Fichier_Txt = Text;
procedure Extract_Notes(Chemin_Txt:string; var N_Txt:Serie_Txt);
var f:Fichier_Txt;
begin
assign(f,Chemin_Txt);
reset(f);
read(f);
close(f);
end;
procedure conversion_notes(var N_Txt:Serie_Txt; var N_Num:Serie_Num);
var code,i,j:integer; c1,c2,c3 : integer; s1,s2,s3 : integer;
begin
for i:=1 to Nbre_Plongeurs do
begin
c1:=0;c2:=0;c3:=0;
val(N_Txt[c1],N_Num[c1],code);
val(N_Txt[c2],N_Num[c2],code);
val(N_Txt[c3],N_Num[c3],code);
for j:=1 to 7 do
begin
s1:=0;s2:=0;s3:=0;
val(N_Txt[s1],N_Num[s1],code);
val(N_Txt[s2],N_Num[s2],code);
val(N_Txt[s3],N_Num[s3],code);
end;
end;
end;
function Entree_Donnees:Notes_Num;
var i,j:integer; n:integer;var s:Serie_Num;var c:real;
begin
writeln;
for i:=1 to Nbre_Plongeurs do
with result[i] do
begin
write('Nom : '); readln(Nom);
writeln;
for n:=1 to 3 do
begin
writeln;
writeln('Plongeon ',n,'');
writeln;
write(' Coefficient : ');
readln(c);
writeln;
for j:=1 to Nbre_Juges do
begin
write(' Note ',j,' : '); readln(s[j]);
end;
end;
writeln;
end;
end;
function Importer_Donnees:Notes_Num;
var Chemin:string; N_Txt:Serie_Txt;
begin
write('Import de donnees a partir de quel fichier ? : ');
readln(Chemin);
writeln;
Extract_Notes(Chemin,N_Txt);
end;
function Moyenne_Serie:real;
var min,max,total:real; i:integer; s:Serie_Num; c:real; resultat_final:real;
j:integer; n:integer; nom:string;
begin
i:=0; c:=0;
min:=s[1];
max:=s[1];
total:=s[1];
begin
writeln;
for i:=1 to Nbre_Plongeurs do
begin
writeln('Nom : ',Nom,'');
writeln;
for n:=1 to 3 do
begin
writeln;
writeln('Plongeon ',n,'');
writeln;
write(' Coefficient : ',c,'');
writeln;
for j:=1 to Nbre_Juges do
begin
write(' Note ',s[j],'');
end;
end;
writeln;
writeln;
Writeln(' Total: ',total+s[i]:0:2);
total:=total+s[i];
if s[i]>max then max:=s[i];
if s[i]<min then min:=s[i];
end;
writeln('result: ',total-min-max:0:2);
result:=(total-min-max);
writeln;
if c=1 then Resultat_final:=result*1;
if c =2 then resultat_final:=result*2;
if c=3 then Resultat_final:=result*3;
writeln('Resultat_final: ',result*c:0:2);
Resultat_final:=result*c;
writeln;
end;
end;
procedure Afficher_Ecran;
var i,j,k:integer; max:real; Aux:Serie_Num; S:Serie_Num;C:real;
begin
writeln('Affichage Ecran');
Moyenne_Serie;
Aux:=S; C:=0;
writeln(' Difficulte ',C:0:0,') :');
write(' ');
for i:=1 to Nbre_Juges do
begin
k:=0; max:=0;
for j:=1 to Nbre_Juges do
if Aux[j]>max then begin
k:=j;
max:=Aux[j];
end;
write(max:0:0);
Aux[k]:=0;
end;
writeln;
end;
type Resultats=array[1..Nbre_Plongeurs] of real;
procedure Calculer_Resultats(var N:Notes_Num;var R:Resultats);
var i:integer; j,k:integer; max:real; Aux:Resultats;
begin
for i:=1 to Nbre_Plongeurs do
with N[i] do
begin
k:=0; max:=0; Aux:=R;
for j:=1 to Nbre_Plongeurs do
if Aux[j]>max then begin
k:=j;
max:=Aux[j];
end;
writeln('Position ',i:2,' (',R[k]:0:0,'pts) : ',N[k].Nom);
writeln(' Plongeon 1 :');
writeln(' Plongeon 2 :');
writeln(' Plongeon 3 :');
writeln; readln;
Aux[k]:=0;
end;
end;
procedure Imprime;
begin
writeln('Impression');
end;
procedure rapport;
var rep:char;
begin
repeat
write('Voulez-vous afficher ou imprimer les notes (tapez A ou I) ? ');
readln(rep); writeln;
until (rep='A') or (rep='a') or (rep = 'I') or (rep='i');
if (rep='A') or (rep='a') then afficher_ecran
else imprime;
end;
var n:integer; s:string;
begin
write('Entree nouvelle base de donnee ? 1. Oui, 2. Ancienne : ');
readln(n); writeln;
write('Chemin d''acces : '); readln(s); writeln;
if n=1 then Entree_Donnees;
Importer_Donnees;
Rapport;
writeln; write('Fin du programme. Appuyer sur Entree'); readln;
end.
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
10 août 2008 à 18:21
10 août 2008 à 18:21
Le problème c'est que tu as changé de nombreux types par rapport au code que j'avais fait notamment avec les fichiers et une confusion entre le type Serie_Txt et Notes_Txt, j'essaye de corriger tout ça, mais peut être pas avant mercredi ou jeudi...
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
11 août 2008 à 03:48
11 août 2008 à 03:48
Ok, je vais encore essayer de demeler tout ca...
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
12 août 2008 à 14:07
12 août 2008 à 14:07
Salut Lowpien, voici le code complet de ton programme revu et corrigé.
Je l'ai débugé avec Delphi donc tu ne devrais avoir aucun problème à le faire marcher !
Tu remarqueras le changement de certaines notations (_Num et _Txt) et des noms de certaines fonctions.
J'en ai profité pour faire l'équivalent de tes fonctions Afficher et Imprimer mais simultanément...
Je l'ai débugé avec Delphi donc tu ne devrais avoir aucun problème à le faire marcher !
Tu remarqueras le changement de certaines notations (_Num et _Txt) et des noms de certaines fonctions.
J'en ai profité pour faire l'équivalent de tes fonctions Afficher et Imprimer mais simultanément...
program lowpien;
{$APPTYPE CONSOLE}
const Nbre_Plongeurs = 2;
Nbre_Juges = 7;
type Serie = array[1..Nbre_Juges] of real;
Plongeur = record
nom : string[50];
c1,c2,c3 : real;
s1,s2,s3 : Serie;
end;
Notes = array[1..Nbre_Plongeurs] of Plongeur;
Fichier = file of Notes;
Resultats = array[1..Nbre_Plongeurs] of real;
// Traitement des Données
procedure Entree_Plongeon(n:integer;var s:Serie;var c:real);
var i:integer;
begin
writeln('Plongeon ',n,' :');
writeln;
write(' Coefficient : ');
readln(c);
writeln;
for i:=1 to Nbre_Juges do
begin
write(' Note ',i,' : '); readln(s[i]);
end;
writeln;
end;
procedure Entree_Donnees(var N:Notes);
var i:integer;
begin
writeln;
for i:=1 to Nbre_Plongeurs do
with N[i] do
begin
write('Nom : '); readln(Nom);
writeln;
Entree_Plongeon(1,s1,c1);
Entree_Plongeon(2,s2,c2);
Entree_Plongeon(3,s3,c3);
end;
end;
procedure Importer_Donnees(var N:Notes);
var Chemin:string; F:Fichier;
begin
writeln;
writeln('Charger les donnees a partir de quel fichier ?');
write(' '); readln(Chemin); writeln;
assign(F,Chemin);
reset(F);
read(F,N);
close(F);
end;
procedure Exporter_Donnees(var N:Notes);
var Chemin:string; F:Fichier;
begin
writeln('Sauvegarder les donnees vers quel fichier ?');
write(' '); readln(Chemin); writeln;
assign(F,Chemin);
rewrite(F);
write(F,N);
close(F);
end;
// Calculs sur les résultats
function Moyenne_Serie(var s:Serie):real;
var min,max,total:real; i:integer;
begin
min:=s[1];
max:=s[1];
total:=s[1];
for i:=2 to Nbre_Juges do
begin
total:=total+s[i];
if s[i]>max then max:=s[i];
if s[i]<min then min:=s[i];
end;
result:=(total-min-max)/(Nbre_Juges-2);
end;
procedure Calculer_Resultats(var N:Notes;var R:Resultats);
var i:integer;
begin
for i:=1 to Nbre_Plongeurs do
with N[i] do
R[i]:=c1*Moyenne_Serie(s1)+c2*Moyenne_Serie(s2)+c3*Moyenne_Serie(s3);
end;
// Affichage à l'écran et impression dans un fichier F
procedure Notes_Croissant(var F:Text;S:Serie);
var i,j,k:integer; min:real; Aux:Serie;
begin
Aux:=S;
writeln; writeln(F,'');
for i:=1 to Nbre_Juges do
begin
k:=0; min:=10000;
for j:=1 to Nbre_Juges do
if Aux[j]<min then begin
k:=j;
min:=Aux[j];
end;
if (i=1) or (i=Nbre_Juges) then begin
writeln(' ',min:7:2,' *');
writeln(F,' ',min:7:2,' *');
end
else begin
writeln(' ',min:7:2);
writeln(F,' ',min:7:2);
end;
Aux[k]:=10000;
end;
writeln; writeln(F,'');
end;
procedure Scores_Decroissant(var F:Text;N:Notes;R:Resultats);
// R doit déjà contenir les Résultats de N
var i,j,k:integer; max:real; Aux:Resultats;
begin
Aux:=R;
for i:=1 to Nbre_Plongeurs do
begin
k:=0; max:=0;
for j:=1 to Nbre_Plongeurs do
if Aux[j]>max then begin
k:=j;
max:=Aux[j];
end;
writeln('_______________________________________');
writeln;
writeln('Position ',i:2,' : ',R[k]:6:3,' pts : ',N[k].Nom);
writeln(F,'Position ',i:2,' : ',R[k]:6:3,' pts : ',N[k].Nom);
writeln;
writeln(F,'');
writeln(' Plongeon 1 (Coeff ',N[k].c1:0:2,')');
writeln(F,' Plongeon 1 (Coeff ',N[k].c1:0:2,')');
Notes_Croissant(F,N[k].s1);
writeln(' Plongeon 2 (Coeff ',N[k].c2:0:2,')');
writeln(F,' Plongeon 2 (Coeff ',N[k].c2:0:2,')');
Notes_Croissant(F,N[k].s2);
writeln(' Plongeon 3 (Coeff ',N[k].c3:0:2,')');
writeln(F,' Plongeon 3 (Coeff ',N[k].c3:0:2,')');
Notes_Croissant(F,N[k].s3);
readln;
writeln(F,'_______________________________________');
writeln(F,'');
Aux[k]:=0;
end;
end;
// Programme Principal
var i:integer; N:Notes; R:Resultats; F:Text; S:String;
begin
write('Choix de la base de donnee ? 1. Nouvelle, 2. Ancienne : ');
readln(i);
if i=1 then begin
Entree_Donnees(N);
Exporter_Donnees(N);
end
else Importer_Donnees(N);
Calculer_Resultats(N,R);
writeln('Dans quel fichier enregistrer le rapport ?');
write(' '); readln(s);
writeln;
assign(F,s); rewrite(F);
Scores_Decroissant(F,N,R);
close(F);
writeln; write('Fin du programme. Appuyer sur Entree'); readln;
end.
lowpien
Messages postés
41
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
22 janvier 2011
13 août 2008 à 00:21
13 août 2008 à 00:21
En effet le programme a beaucoups changer par rapport au debut, et ca repond a ce que j'essaye de faire ...merci de ton aide...