exercice pascal - traitements sur les moyennes d'une classe

Voir le sujet précédent Voir le sujet suivant Aller en bas

exercice pascal - traitements sur les moyennes d'une classe

Message par lamia le Sam 17 Mai - 6:59

Un professeur veut afficher certains resultats concernant les moyennes obtenues par les élèves de sa classe.
Pour ceci il s'agit de saisir les noms des élèves avec la moyenne générale de chacun d'eux.
Une classe contient au maximum 40 élèves.
Les elements à afficher sont les suivants:
1. la moyenne maximale avec le nom de l'élève concerné.
2. Le taux des élèves qui n'ont pas eu la moyenne.
3. La liste des noms des élèves qui ont une moyenne strictement inferieure à la moyenne arithmetique.
4. La liste des etudiants ordonnés selon leurs moyennes (du premier au dernier).


Dernière édition par lamia le Sam 17 Mai - 7:08, édité 1 fois
¤´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·`¤... Lamia

lamia
Admin
Admin

Sexe:FémininViergeTigre
Messages : 1509
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

Revenir en haut Aller en bas

Re: exercice pascal - traitements sur les moyennes d'une classe

Message par lamia le Sam 17 Mai - 7:06

Bonjour,

L'idée est de faire deux tableaux qu'on saisie au meme temps, on saisie le nom dans le premier et la moyenne au deuxieme
Je voudrais bien savoir si pascal permet l'appel de deux tableaux passés en parametre pour une procedure.
Par exemple si je fais:

Code:

 procedure meilleur(Tr:tabr;Tn:tabn;N:integer);
  var imax,i:integer;max:real;
  begin
  writeln('debut meilleur');
    max:=Tr[1];
    imax:=1;
    for i:=2 to N DO
    begin
    IF Tr[i]>max then imax:=i;
    end;
  write('la moyenne max est :  ',Tr[imax]);
  writeln(' et l''eleve concerne est:  ',Tn[imax]);
  end;


sachant que:
Code:
type tabr=array[1..40]of real;
    tabn=array[1..40] of string;


cette erreur survient et le programme se bloque juste dans l'appel de cette procedure dans le programme principal:
Code:
Runtime error : 202 at 0001:0476


Par contre si je fais une fonction qui retourne l'indice de la meilleure note:
Code:
  function meilleur(Tr:tabr;N:integer):integer;
  var imax,i:integer;max:real;
  begin
  writeln('debut meilleur');
    max:=Tr[1];
    imax:=1;
    for i:=2 to N DO
    begin
    IF (Tr[i]>max) then imax:=i;
    end;
  meilleur:=imax;
  end;

et le traitement de l'affichage dans le programme principale, pas de probleme. scratch scratch
¤´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·`¤... Lamia

lamia
Admin
Admin

Sexe:FémininViergeTigre
Messages : 1509
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

Revenir en haut Aller en bas

Re: exercice pascal - traitements sur les moyennes d'une classe

Message par nabiL le Sam 17 Mai - 10:40

Oui Pascal permet le passage en paramètre de tout ce que tu veux. Mais dans le cas particuliers des tableaux de chaines de caractères, il faut donner une limite à la taille de la chaine, une limite inférieure à 255.
Code:
tabn=array[1..40] of string[20];


car sinon, il va allouer de l'espace pour un tableau de 40 chaines, chacune de longueur 255. Donc imagine 40 x 255 = 10200 octets pour un tableau...

Essaie ça et dis-moi qu'est-ce que ça donne.
Nabil - tunis
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1972
Inscrit le : 19 Mar 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: exercice pascal - traitements sur les moyennes d'une classe

Message par nabiL le Sam 17 Mai - 10:42

Concernant l'exercice que tu as proposé, est-ce que c'est un Bac pratique, un sujet de révison, ... quoi exactement?
Nabil - tunis
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1972
Inscrit le : 19 Mar 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: exercice pascal - traitements sur les moyennes d'une classe

Message par lamia le Sam 17 Mai - 11:47

nabiL a écrit:Oui Pascal permet le passage en paramètre de tout ce que tu veux. Mais dans le cas particuliers des tableaux de chaines de caractères, il faut donner une limite à la taille de la chaine, une limite inférieure à 255.
Code:
tabn=array[1..40] of string[20];


car sinon, il va allouer de l'espace pour un tableau de 40 chaines, chacune de longueur 255. Donc imagine 40 x 255 = 10200 octets pour un tableau...

Essaie ça et dis-moi qu'est-ce que ça donne.


Oui ca marche ainsi Smile Merci. Smile
J'ai toujours ce probleme avec les tableaux de chaines de caractéres scratch
¤´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·`¤... Lamia

lamia
Admin
Admin

Sexe:FémininViergeTigre
Messages : 1509
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

Revenir en haut Aller en bas

Re: exercice pascal - traitements sur les moyennes d'une classe

Message par lamia le Sam 17 Mai - 11:49

nabiL a écrit:Concernant l'exercice que tu as proposé, est-ce que c'est un Bac pratique, un sujet de révison, ... quoi exactement?


C'est un exercice d'une série de revision qui date depuis mon bac Very Happy Mais je sais pas si c'est un exercice de bac pratique ou non Smile
¤´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·`¤... Lamia

lamia
Admin
Admin

Sexe:FémininViergeTigre
Messages : 1509
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum