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

Langage Pascal Discussion :

[LG] Réalisation d'un tableau


Sujet :

Langage Pascal

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut [LG] Réalisation d'un tableau
    Bonjour tout le monde

    Je dois réaliser un tableau avec turbo pascal, j'ai des problème avec les procédures.

    J'ignore comment appeler les procédures.

    Voici le code ci dessus

    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
     
    program tableau;
    var  num, fran,math, hist, anglais,min,max,moyen: integer;
    var o: string;
    var tab: array [1..10,1..8] of integer;
    var ligne,colonne: integer;
     
    procedure affi_tab;
     
         begin
         writeln('num‚ro,Francais,Anglais,histoire,Math,min,max,moyen');
         for ligne:=1 to 10 do
         for colonne:=1 to 8 do write(tab[ligne,colonne],'affi_tab');
         writeln;
         end;
     
    Procedure affiche_num;
         begin
         for num:= 1 to 10 do
         writeln('num‚ro ‚lŠve', num);
         readln(o);
         end;
     
     
     
    procedure remplir_tab;
     
          begin
          for ligne:= 1 to 10 do
     
          tab [ligne,1]:=ligne;
     
          end;
     
    begin
    affiche_num;
     
    remplir_tab;
    Writeln('Entrer la note de de Francais');
    readln(fran);
    writeln('Enter la note math');
    readln(math);
    writeln('Enter la note de Anglais');
    readln();
    end.
    Pourriez-vous m'indiquer la marche à suivre pour appeler les procédures ?

    Merci

    Cordialement

    A bientôt
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Pour appeler une procédure, il suffit d'écrire son nom !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure a;
    begin
      write("salut");
    end;
     
    begin
      a;
    end.
    Je te conseille de lire les tutoriels présnts sur ce site : http://pascal.developpez.com/cours
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    comme l'a dit Wormful et comme tu l'as fait toi-même dans ton programme, pour exécuter une procédure il suffit d'écrire le nom de la procédure.

    Apparement ton problème est ailleurs : tes procédures, telles que tu les as écrites, ne te permettent pas de faire ce que tu désires.

    Pour remplir un tableau, par exemple, si tu veux que l'utilisateur rentre une valeur que tu vas introduire dans le tableau, il faut que tu introduises une variable correspondant à ce que l'utilisateur aura écrit et que tu affecteras à la case du tableau à laquelle elle se rapporte.

    Dans ce que tu as fait, il y a aussi des choses qui n'ont aucun effet : le readln(o) dans ta deuxième procédure, par exemple, n'est utilisé nulle part...

    Avant d'écrire ton code, il faut que tu te demande ce qu'il doit faire exactement et dans quel ordre.

    Pour remplir ton tableau par exemple, tu as plusieurs possibilités. En voici 2 (il y en a d'autres) :
    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
    Première façon :
     
    type tableau = array[1..10,1..8];
     
    procedure remplir_tab (var t : tableau); 
    (* elle remplit tout le tableau et permet de le réutiliser dans la suite du programme en le passant par variable *)
    var l,c : byte;
        var : integer;
    begin
      for l := 1..10 do
      begin
        for c := 1..8 do
        begin
          case c of 
            1 : t[l,c] := l; (* rentre le numéro de ta ligne dans la case num *)
            2 : begin write('Note de math : '); readln(var); t[l,c] := var; end;(* demande la note de math à l'utilisateur et la rentre dans la case correspondante *)
            ...
          end;
        end;
      end;
    end;
     
    var tab : tableau;
    begin
      remplir_tab (tab);
      ...
      afficher(tab);
    end.
     
    --------------
    Deuxième façon :
     
    type tableau = array[1..10,1..8];
     
    procedure remplir_tab (var t : tableau; var : integer; l,c : byte);
    begin
      t[l,c]:=var;
    end;
     
    var tab : tableau;
        ligne : byte;
        var : integer;
    begin
      for ligne := 1 to 10 do remplir_tab(tab, ligne, ligne, 1); (* rentre le numéro de ta ligne dans la 1ère case de chaque ligne *)
      for ligne := 1 to 10 do
      begin
        write('Note de math : '); readln(var);
        remplir_tab(tab, var, ligne, 2); (* demande toutes les notes de math et les rentre dans la 2ième case de chaque ligne *)
      end;
      ...
      afficher(tab);
    end.

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut
    Bonsoir tout le monde

    J'ai modifié mon code ainsi.

    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
     
    program tableau; 
    var  num, fran,math, hist, anglais,min,max,moyen: integer; 
    var o: string; 
    var tab: array [1..10,1..8] of integer; 
    var ligne,colonne: integer; 
     
    procedure affi_tab; 
     
         begin 
         writeln('num‚ro,Francais,Anglais,histoire,Math,min,max,moyen'); 
         for ligne:=1 to 10 do 
         for colonne:=1 to 8 do write(tab[ligne,colonne],'affi_tab'); 
         writeln; 
         end; 
     
    Procedure affiche_num; 
         begin 
         for num:= 1 to 10 do 
         writeln('num‚ro ‚lŠve', num); 
         readln(o); 
         end; 
     
     
     
    procedure remplir_tab; 
     
          begin 
          for ligne:= 1 to 10 do 
     
          tab [ligne,1]:=ligne; 
     
          end; 
     
    begin 
    affiche_num; 
     
    remplir_tab; 
    Writeln('Entrer la note de de Francais'); 
    readln(fran); 
    writeln('Enter la note math'); 
    readln(math); 
    writeln('Enter la note de Anglais'); 
    readln(Anglais); 
    writeln('Enter la note de Histoir'); 
    readln(hist); 
     
    affi_tab;
     
    end.
    Il m'affiche un tableau bizar.

    Je pense que c'est du que je n'ais pas calculé les moyennes.

    D'aprez vous le probleme vient de là?

    Merci

    Cordialement

    A bientôt
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Pour afficher un tableau en colonnes, il y a plusieurs possibilités. L'une d'elles est de fixer la largeur des chiffres affichés à l'écran :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure affi_tab; 
     
         begin 
         writeln('  num‚ro   Francais   Anglais  histoire    Math       min       max      moyen');
         for ligne:=1 to 10 do
           begin
             for colonne:=1 to 8 do write(tab[ligne,colonne]:10);
             writeln;
           end;
         end;
    Le WriteLn doit être inclus dans la boucle externe.
    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]

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut
    Bonjour tout le monde

    Le tableau s'affiche apres modiffication mai pas les calcules, certainement pars ce que je n'ais pas fais les calcules.

    Je vai les faire.

    Merci

    Cordialement

    A bientôt
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

Discussions similaires

  1. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51
  2. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  3. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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