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 :

Afficher le contenu d'un tableau


Sujet :

Pascal

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Afficher le contenu d'un tableau
    Bonjour !

    Ma question risque de paraître assez ridicule à des développeurs expérimentés tels que vous mais moi, je débute à peine en Pascal.

    Alors, voilà mon problème ; il m'a été demandé de concevoir un programme qui convertit un nombre entier compris entre 1 et 3000 en chiffres romains (sans tenir compte des conventions, c-à-d : 4=IIII et non IV, 90=LXXXX et non XC etc.).

    J'ai donc réalisé le programme suivant (qui me semble correct mais si vous voyez des erreurs, communiquez-les-moi svp !) seulement, lorsque je l'exécute, il ne m'affiche pas le contenu du tableau R censé renfermer la solution. Je suppose que la commande "write(R)" est mal exprimée. Comment dois-je la formuler ??

    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
    program chiffresromains;
     
    var
        a:integer;
        k:integer;
        j:integer;
        P:array[0..6]of integer;
        Q:array[0..6]of char;
        R:array[0..16]of char;
        M:char;
        D:char;
        C:char;
        L:char;
        X:char;
        V:char;
        I:char;
    begin
        write('Entrer un nombre entier compris entre 1 et 3000 :');
        readln(a);
        P[0]:=1000;
        P[1]:=500;
        P[2]:=100;
        P[3]:=50;
        P[4]:=10;
        P[5]:=5;
        P[6]:=1;
        Q[0]:=M;
        Q[1]:=D;
        Q[2]:=C;
        Q[3]:=L;
        Q[4]:=X;
        Q[5]:=V;
        Q[6]:=I;
        k:=0;
        j:=0;
        while(k<7)do begin
           while(a>=P[k])do begin
              a:=a-P[k];
              R[j]:=Q[k];
              j:=j+1
           end;
           k:=k+1
        end;
        write(R);
        readln;
    end.

    Merci d'avance !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 100
    Points
    100
    Par défaut
    Pour afficher un tableau, tu dois afficher chaque élément en parcourant le tableau (boucle for par exemple).

    Ton code a quelques erreurs :
    • M:char; déclare la variable M, cela ne signifie pas qu'il s'agit du caractère 'M'
    • Tes noms de variables ne sont pas pratiques (le nom d'une variable devrait indiquer son rôle, et non énumérer l'alphabet)
    • D'un point de vue méthodologique : si tu connais le nombre d'itérations, utilise une boucle for (à la place de ton while (k<7))

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup Boromir !

    Pour ceux que ça intéresserait, voici une version correcte du 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
    program chiffresromains;
     
    var
       a:integer;
       k:integer;
       j:integer;
       B:array[0..6]of integer;
       C:array[0..6]of char;
       D:array[0..16]of char;
    begin
       write('Entrer un nombre entier compris entre 1 et 3000 : ');
       readln(a);
       B[0]:=1000;
       B[1]:=500;
       B[2]:=100;
       B[3]:=50;
       B[4]:=10;
       B[5]:=5;
       B[6]:=1;
       C[0]:='M';
       C[1]:='D';
       C[2]:='C';
       C[3]:='L';
       C[4]:='X';
       C[5]:='V';
       C[6]:='I';
       j:=0;
       for k:=0to 6do begin
          while(a>=B[k])do begin
             a:=a-B[k];
             D[j]:=C[k];
             j:=j+1
          end;
       end;
       write('En chiffres romains, ce nombre s''écrit : ');
       for k:=0to j-1 do begin
          write(D[k]);
       end;
       readln;
    end.

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

Discussions similaires

  1. Afficher le contenu d'un tableau
    Par jcaspar dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/02/2007, 16h46
  2. Réponses: 2
    Dernier message: 31/01/2007, 09h45
  3. Réponses: 3
    Dernier message: 03/07/2006, 13h45
  4. Afficher le contenu d'un tableau
    Par hayam_kin dans le forum C
    Réponses: 9
    Dernier message: 25/04/2006, 21h16
  5. [Tableaux] afficher le contenu d'un tableau php
    Par moons dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2006, 15h12

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