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

Pascal Discussion :

[D�butant] Gestion d'un bulletin de notes


Sujet :

Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par d�faut [D�butant] Gestion d'un bulletin de notes
    Bonjour � tous,
    Je suis nouveau sur ce site et d�butant en Pascal. J'ai commenc� il y a 4 mois uniquement sur ce site pour apprendre Pascal. J'enseigne aussi logiciel de base Word, Excel... dans un lyc�e technique apr�s-midi.
    Mon objectif est d'�diter un bulletin de notes pour les �l�ves (nom, pr�nom, matricule, date de naissance puis l'ensemble des notes qui pourra determiner le r�sultat). Ci-dessous en Pascal mon code que j'ai essay�. S'il ya quelqu'un qui peut m'aider avec la correction ?

    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
    Program bulletin_de_note ;  
    Const Max = 90000 ;       // pour éviter le plus grand nombre dans le programme
    Type personne = record
    nom , prenom : string ;
    matricule : integer ;
    end ;
     
                    dates = record
                              jour, mois, annee : integer ;
                          end ;
     
    Tableau = array [1….Max] of  personne ;
    PTableau = ^Tableau ;
    var Tab : PTableau ;
    i : Integer ;
     
      procedure nombre_eleve (  var  N: Longint ; ) 
                i: Integer;
         begin 
             writeln  ( 'Combien de personnes ?' ) ;     // personne représente les élèves dans tout le programme
            readln (N);
            GetMem ( Tab , N  * Sizeof ( personne) ) ;
            for i:=1 to N  do readln (Tab^[i].nom ) ; 
            FreeMem  (Tab, N  * Sizeof ( personne ) ) ;
         end ;
     
    procedure eleve  ( var m: integer ;  )   //  pour enregistrer les info sur chaque eleve
                       Var i: integer;
       begin
             new (tab);
             with Tab^[1] do
             begin
                Nom := ‘ nom_eleve ’ ;
                 Prenom := ‘ prenom_eleve ’ ;
                 Matricule := numero_matricule  ;
                end ;
           for  i  := 1  to m do wiriteln  ( Tab^[i].nom ) ;
           dispose (Tab);
        end ;
     
    procedure date_naissance (var  m : integer ;  )    // permet d’insérer  la date  de naissance de chaq eleve
     
                      var i : integer  ;
                           begin
                         for  i := 1  to  m  do
                  begin
                      with t[i].date do
        begin
         writeln  ( `entree de la date` ) ;
         writeln  (`jour :` )  ;  readln ( jour ) ;
         writeln  (`mois : ` ) ;  readln (jour) ;
          writeln  (`annee : `) ;  readln (annee) ;
           writeln ( la date est ` : ` , jour , ‘ / ’, mois , ` / ` annee,  ) ;
           readln (date) ;
                                     end ;
                            end ;
                 end ;
     
    procedure resultat_eleve  ( var  m : real ;  )  // introduire les notes de chaque eleve puis déterminer  le resultat 
     
     type Nbr_matiere = array [ 1...20 ] of real ;
       var note :  Nbr_matiere ;
         i := integer ;
       somme, moyenne;
      begin
    writeln (  `entree ‘Nbr_matiere’ ‘ note ‘ )  ;
     for  i := 1  to m do
      readln (note);
      somme :=0
       moyenne := somme / nbr-matiere ;
        resultat := moyenne ;
    end .
    Fichiers attach�s Fichiers attach�s

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcat�z
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 049
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 049
    Billets dans le blog
    2
    Par d�faut
    Bonjour !

    Soigner l'indentation du code aide grandement � s'y retrouver.

    Il y a tout d'abord pas mal d'erreurs de syntaxe, un minimum avant de poster du code est de s'assurer que celui-ci en est au maximum exempt. Mais passons.

    Ton tableau de 90000 enregistrements a une taille totale de 46 Mb. Le compilateur ne va pas �tre content : http://pascal.developpez.com/faq/?pa...ture-too-large

    Dans les proc�dures nombre_eleve et eleve, tu alloues le tableau Tab, travailles dessus puis tu le d�salloues imm�diatement. Il y a manifestement l� un petit probl�me de logique.

    Une remarque en passant : il serait pr�f�rable de passer le tableau Tab comme param�tres � tes proc�dures, au lieu de faire r�f�rence � une variable globale au sein de celles-ci.

    Il y a s�rement d'autres probl�mes mais je te laisse corriger au moins les erreurs de syntaxe de ton code actuel avant d'essayer de t'aider plus avant.
    R�gles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le probl�me en ce bas monde est que les imb�ciles sont s�rs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tol�rance atteindra un tel niveau que les personnes intelligentes seront interdites de toute r�flexion afin de ne pas offenser les imb�ciles. [Fiodor Mikha�lovitch Dosto�evski]

  3. #3
    R�dacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par d�faut
    ce code est un vrai champ de bataille. l' identation, l' utilisation des pointeurs, ... ont �t� fait au hazard.
    je crois que DesireGuel ne s' est pas donne� la peine de prendre une feuille et un crayon pour faire un brouillon.
    J' ai essay� de corriger l'identation et faire en sorte que le programme compile (je ne parle ici que des erreurs de syntaxe). Mais je n' ai pas touch� � l' algorithme.
    Il faut encore �normement de travail pour que le programme puisse faire ce que tu veux. Aussi, je ne sais pas pourquoi tu cherches � utiliser un pointeur de tableau dans ce programme.
    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
     
    Program bulletin_de_note ;
     
    Const Max = 100 ;
     
    Type
         dates = record
                   jour, mois, annee : integer ;
                 end ;
     
         personne = record
                     nom , prenom : string ;
                     matricule : integer ;
                     date : dates;
                    end ;
     
     
         Tableau = array [1..Max] of  personne ;
     
    var
        Tab : Tableau ;
        date:dates;
        nombreTotal : Integer ;  {nombre d' etudiant dans la classe}
     
    {-----------------------------------}
     
    procedure nombre_eleve (var  N: Longint);
      var   i: Integer;
    begin
      write  ( 'Combien de personnes ? ' ) ;
      readln (N);
      for i:=1 to N  do
       begin
        write('eleve ', i, ' : ');
        readln (Tab[i].nom ) ;
       end;
    end ;
     
    {--------------------------------------------}
     
    procedure eleve  (m: integer);
      var i: integer;
    begin
     for i:=1 to m do
     with Tab[i] do
      begin
       writeln('Nom : ', nom);
       write('prenom : ');
       readln(prenom);
       write('matricule : ');
       readln(matricule);
      end ;
    end ;
    {----------------------------------}
    procedure date_naissance ( m : integer );
     var i : integer  ;
    begin
     for  i := 1  to  m  do
      begin
       with tab[i].date do
        begin
         writeln  ( 'entree de la date') ;
         writeln  ('jour : ' )  ;  readln ( jour ) ;
         writeln  ('mois : ' ) ;  readln (mois) ;
         writeln  ('annee : ') ;  readln (annee) ;
         writeln ( 'la date est  : ',jour , ' / ', mois , ' / ', annee) ;
        end ;
      end ;
    end ;
     
      {---------------------------------}
    procedure resultat_eleve  (m : integer);
       var note :  real;
         i : integer ;
         somme, moyenne: real;
         nbr_matiere:integer;
    begin
     writeln('nombre matiere :');
     readln(nbr_matiere);
     writeln (  'entree note ' )  ;
     for  i := 1  to m do
      readln (note);
     somme :=0;
     moyenne := somme / nbr_matiere ;
     {resultat := moyenne ; }
    end ;
     
    {----------------------------------------------}
     
    Begin
    end.

  4. #4
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par d�faut [D�butant] Gestion d'un bulletin de notes (suite)
    Jusqu'� cette heure je suis devant l'ecran entrain de reponde a Monsieur Alcat�z en reponse suite � son intervention pour essayer d'ameliorer mon code.
    Merci Darrylsite, c'est mon premier plus long programme que je voudrais initier . Mais je constate que mon niveau est tres bas encore s'il ya des conseilles ( pour mieux reussir un programme moyen en pascal n'hesitez pas ca va bcp m'aider)

    Aussi s'il ya d'autres id�es sur les algo que je pourrais ajouter dites moi et je vais chercher pour essayer de completer ce code qui me restera comme exemple.

    Je vous remercie Alcatiz et Darrysite pour vos reponses

  5. #5
    Expert confirm�

    Inscrit en
    Ao�t 2006
    Messages
    3 967
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 3 967
    Par d�faut
    Dai,

    Avant de vouloir ajouter quelque chose, je pense qu'il faut que tu retournes � tes cours de la base/syntaxe du langage, et que tu fasses quelques exercices plus simples que celui-ci, par exemple des petits programmes qui reprennent un � un tous les �l�ments du langage dont tu as besoin pour r�soudre ton probl�me.

    Il ne sert � rien de vouloir courir avant de savoir marcher (celle-l�, je la place assez souvent ).

Discussions similaires

  1. [Aide Correction] Gestion d'un bulletin de note
    Par leptitjej dans le forum Cas d'utilisation
    R�ponses: 9
    Dernier message: 07/01/2013, 17h48
  2. [MCD] Gestion d'un bulletin de notes
    Par leptitjej dans le forum Sch�ma
    R�ponses: 9
    Dernier message: 07/01/2013, 01h36
  3. [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
  4. Gestion de bulletins de notes
    Par yacine77 dans le forum C
    R�ponses: 7
    Dernier message: 24/05/2008, 17h56
  5. Cr�ation d'un logiciel de gestion des bulletins de notes de notre Lyc�e
    Par cheickssy dans le forum VB 6 et ant�rieur
    R�ponses: 11
    Dernier message: 31/07/2006, 13h49

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