IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

Exercice sur la gestion des notes d'élèves d'une classe [Turbo Pascal]


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant Master 2 en Ingénierie de Données et Technologie Web
    Inscrit en
    Avril 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiant Master 2 en Ingénierie de Données et Technologie Web

    Informations forums :
    Inscription : Avril 2009
    Messages : 34
    Par défaut Exercice sur la gestion des notes d'élèves d'une classe
    Salut tout le monde
    j'ai un exercice que je l'ai déjà fait mais il existe trop d'erreurs
    alors je vous donne l'exercice et j'attends la réponse svp


    j'attends bien vos réponses , Merci d'avance !

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Boe,

    1- Quand tu dis que tu nous donnes l'exercice, il faut effectivement le mettre.

    2- ET SURTOUT : nous ne sommes pas là pour faire tes devoirs, alors montre-nous où tu en es, ce que tu as déjà fait ....

    ... et on pourra t'aider.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Par défaut
    Salut,
    sinon, le début est simple: présente nous un programme avec 2 variables tableau et 4 procédures, les plus complètes possibles
    A+

  4. #4
    Membre averti
    Homme Profil pro
    Etudiant Master 2 en Ingénierie de Données et Technologie Web
    Inscrit en
    Avril 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiant Master 2 en Ingénierie de Données et Technologie Web

    Informations forums :
    Inscription : Avril 2009
    Messages : 34
    Par défaut
    oui voila mon travail
    http://www.4shared.com/file/96165154.../exercice.html
    et Merci d'avance !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    program etudiant;
      const n=1000;
    type etudiant=record
                 nom:string[20];
                 prenom:string[20];
                 note:real;
                 matiere:string[20];
                 end;
                 liste=array[1..n]of etudiant;
     var f:file of etudiant;
     var
     etudiant:etud;
     t:liste;
     c:char;
     i:integer;
     n:integer;
     
     writeln;
     write('donner le nombre d etudiant');
     readln(n);
     begin
     for i:=1 to n do
     begin
     write('etudiant numero ',i);
     with t[i] do
     begin
     write('donner le nom de l étudiant   :');
     readln(nom);
     write('donner le prénom de l etudiant   :');
     readln(prenom);
     write('donner la note de l etudiant   :');
     readln(note);
     write('donner la matiere    :');
     readln(matiere);
     end;
     writeln;
     end;
     readln;
     writeln;
     writeln('affichage des élément du tabeau');
     writeln;
     for i:=1 to n do
     begin
     with t[i] do
     begin
     writeln('nom   : ' ,nom);
     writeln('prenom   : ',prenom);
     writeln('note   :' note);
     writeln('matiere   :',matiere);
     end;
     writeln;
     end;
     readln;
     
     procedure de tri par ordre alphabetique;
     var x:etud:
     i,j:integer:
     begin
     i:=n;
     while i>1 do
     begin
     j:=1;
     while j<i do
     begin
     if t[j].nom> t[j+1).nom then
      begin
      x:=t[j];
      t[j]:=t[j+1];
      t[j+1]:=x;
      end;
      j:=j+1;
      end;
      i:=i-1;
      end;
      listage(t,etudiant);
      readln;
      end;
     
     procedure de tri par moyenne;
     
     
     
     
     
     procedure de recherche;
     var
     NOM:string;
     x:integer;
     begin
     writeln('entrer le nom de l etudiant');
     readln(NOM);
     x=0;
     
     reset(f);
     while(i<n and x=0) do
     begin
     readln(f.etud);
     if(etud.nom=NOM)then x=1;
     end;
     else
     writeln('ce nom n existe pas');
     end;
       BEGIN
       repeat
       writeln('1:tri alphabetique,2:tri par moyenne  3:recherche,');
       read(choix);
       case choix of
       1:tri alphabetique;
       2:tri par moyenne;
       3:recherche;
       end;
       until (choix=4);
       end.

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Par défaut
    Je vois dans les déclarations :

    1. Const n et var n, il faut choisir et vu que tu utilises bcp la variable n dans ton programme, il faut supprimer la constante n.

    2. Le problème de ta constante n impose un tableau dynamique d'élèves :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste=array[1..n]of etudiant;
    remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste=array of etudiant;
    tu lis la variable n
    et tu assignes la longueur du tableau d'étudiants à n ou n+k (où k désigne au moins 1)

    3. Tu supprimes
    4. Après ton readln(r), tu fais
    grandir ton tableau.

    5. Les write et les read, c'est dangeureux, utilise des writeln et readln.

    6. De la ligne 55 à 112, tu mets en commentaire et tu vois déjà la sortie

    Code ...diant.pas : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    program etudiant;
     
    type etudiant=record
            nom:string[20];
            prenom:string[20];
            note:real;
            matiere:string[20];
          end;
         {/Drecor}
         liste = array of etudiant;
     
    var
      f : file of etudiant;
      t : liste;
      c : char;
      i : integer;
      n : Integer;
     
    begin
      writeln;
      write('donner le nombre d''etudiants :   ');
      readln(n);
      setlength(t,n+1); // Au moins plus grand que le nombre d'étudiants

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Par défaut
    Hello,
    une petite remarque: un étudiant peut avoir plusieurs notes. Dans ce cas il faudrait non pas une note mais un tableau de notes dans un record "etudiant".

    Je ne sais pas s'il est nécessaire de rajouter le champ "matière" (pour l'instant en tout cas), ça complique un peu. Car il faut dans ce cas rentrer une matière par note. Et avoir aussi un tableau de matières. Mais pourquoi pas.

    Dans ce cas le code devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    program etudiant;
     
    type Tetudiant=record
            nom:string[20];
            prenom:string[20];
            matieres:array of string[20];
            notes:array of real;
          end;
     
         liste = array of etudiant;
    en gérant aussi les tableaux "notes" et "matieres" de façon dynamique. J'ai aussi la manie d'appeler le type Tetudiant. C'est pour savoir à quoi on a à faire (type ou variable). Et ca permet d'utiliser "etudiant" en tant que variable si nécessaire... Mais ça reste un choix perso...

    Se pose aussi la question suivante: tous les élèves ont-ils tous les mêmes matières? Et/ou une seule note par matière?? On peut trouver des types plus simples (un tableau 2D [eleve*matiere] de notes si la réponse est oui pour les 2 questions)...

    Sinon tu as mis un bout de code sans début ni fin après les variables, qui fait la saisie et l'affichage du tableau. Il faudrait mettre un
    au début par exemple, et mettre l'affichage ailleurs.
    De plus il va falloir gérer la saisie de plusieurs notes pour un même élève.

    Je pars maintenant du programme principal. L'idée du menu est bonne. Reviens à la ligne entre chaque choix.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    writeln('1:tri alphabetique');
    writeln('2:tri par moyenne');
    writeln('3:recherche');
    writeln('4:Quitter');
    Et encore 2 trucs :
    - soigne la présentation: saute une ligne entre chaque procédure et le programme principal et décale le code d'une tabulation lorsque tu rentres dans une structure (for, while, begin de procedure,...).
    - Compile ton code! Je n'ai même pas ouvert TP pour voir quoi arranger. Corrige toutes les fautes de compilation, la suite sera plus claire.

    J'aurai plein d'autres choses à dire mais ce sera dans un deuxième temps. Occupe toi déjà de tout ça et on pourra construire un truc d'intéressant dessus.
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] Gestion des notes d'un élève
    Par much1707 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/05/2009, 23h18
  2. [Turbo Pascal] [Débutant] Gestion des notes des élèves d'une classe
    Par bigamine5 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/02/2009, 11h26
  3. Réponses: 11
    Dernier message: 11/11/2006, 12h20
  4. Quelques questions sur la gestion des droits
    Par sylsau dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/03/2006, 14h11
  5. Question sur la gestion des fenetres MDI
    Par RémiONERA dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/07/2005, 07h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo