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 :

Tableau à deux dimensions [Turbo Pascal]


Sujet :

Turbo Pascal

  1. #1
    Futur Membre du Club Avatar de fallendery
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Tableau à deux dimensions
    Salut

    Remplissage d'un tableau à 2 dimensions qui affiche la première matrice remplie, ensuite la modification ==> la diagonale (diagonale veut dire du haut à gauche vers le bas à droite) remplie tout par 1 ou bien 8 .....

    Voici le code :

    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
    const]
    c=5;
    var
    m:array[1..c,1..c]of Integer;
    i,j:integer;
    begin
    for i:= 1 to c do
    begin
    for j:= 1 to c do
    begin
    repeat
    Write ('donner la ',i,' ligne et la ',j,' colone '); Readln (m[i,j]);
    Writeln;
    until (m[i,j]<>1);
    end;
    end;
    Writeln;
    Writeln ('l affichage de la matrice');
    Writeln;
    for i:= 1 to c do
    begin
    for j:= 1 to c do
    begin
    write (m[i,j],' ');
    end;
    Writeln;
    end;
    Writeln;
    Writeln ('l affichage de la nouvelle matrice');
    Writeln;
    for i:= 1 to c do
    begin
    for j:= 1 to c do
    begin
     
    end;
    end;
     
    for i:= 1 to c do
    begin
    for j := 1 to c do
    begin
    Write (m[i,j], ' ');
    end;
    writeln;
    end;
    Readln;
    end.
    Pour simplifier voilà l'affichage de la matrice principale et de la nouvelle matrice :

    Nom : Capture.PNG
Affichages : 5561
Taille : 35,1 Ko

    Ce que je cherche à faire est afficher la nouvelle matrice comme le tableau suivant :

    1 0 0 0 1
    1 1 0 1 1
    1 1 1 1 1
    1 1 0 1 1
    1 0 0 0 1

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 062
    Points : 15 353
    Points
    15 353
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Difficile de vous aider sans voir votre code.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Futur Membre du Club Avatar de fallendery
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Voilà mon code et il affiche la diagonale principale à la place de la fonction (affichage diagonale), c'est-à-dire m[i,i]:=1 j. Je n'ai pas trouvé la fonction qui affiche comme je vous ai montré sur le premier tableaux

    Voici le code

    Code pascal : 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
    const
        c=5;
    var
      m:array[1..c,1..c]of Integer;
      i,j:integer;
    begin
    for i:= 1 to c do
    begin
      for j:= 1 to c do
      begin
        repeat
          Write ('donner la ',i,' ligne et la ',j,' colone '); Readln (m[i,j]);
          Writeln;
          until (m[i,j]<>1);
      end;
    end;
    Writeln;
    Writeln ('l affichage de la matrice');
    Writeln;
    for i:= 1 to c do
    begin
      for j:= 1 to c do
      begin
        write (m[i,j],' ');
      end;
    Writeln;
    end;
    Writeln;
    Writeln ('l affichage de la nouvelle matrice');
    Writeln;
    for i:= 1 to c do
      begin
        for j:= 1 to c do
        begin
      m[i,i]:=1;     {diagonale principale}
      end;
      end;
     
      for i:= 1 to c do
      begin
        for j := 1 to c do
        begin
          Write (m[i,j], '  ');
        end;
        writeln;
      end;
    Readln;
    end.


    Affichage diagonale
    1 5 4 3 3
    6 1 3 9 2
    3 7 1 0 5
    5 2 0 1 3
    6 0 0 3 1

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 941
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 941
    Points : 5 652
    Points
    5 652
    Par défaut
    Bonjour,
    Citation Envoyé par Roland Chastain Voir le message
    Bonjour !

    Difficile de vous aider sans voir votre code.
    Et sans une phrase compréhensible.
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 062
    Points : 15 353
    Points
    15 353
    Billets dans le blog
    9
    Par défaut
    Voici votre code correctement indenté, avec quelques modifications et commentaires.

    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
    const
      c = 5;
     
    var
      m: array[1..c, 1..c] of integer;
      i, j: integer;
     
    begin
      for i := 1 to c do
      begin
        for j := 1 to c do
        begin
          (*
          repeat
            Write('donner la ', i, ' ligne et la ', j, ' colone ');
            ReadLn(m[i, j]);
            WriteLn;
          until (m[i, j] <> 1);
          *)
          m[i, j] := Random(100); // pour éviter d'avoir à saisir 25 valeurs à chaque exécution du programme !
        end;
      end;
     
      WriteLn;
      WriteLn('l affichage de la matrice');
      WriteLn;
     
      for i := 1 to c do
      begin
        for j := 1 to c do
        begin
          write(m[i, j]:2, ' ');
        end;
        WriteLn;
      end;
     
      WriteLn;
      WriteLn('l affichage de la nouvelle matrice');
      WriteLn;
     
      for i := 1 to c do
      begin
        for j := 1 to c do // la valeur de j n'est pas utilisée
        begin
          m[i, i] := 1; {diagonale principale}
        end;
      end;
     
      for i := 1 to c do
      begin
        for j := 1 to c do
        begin
          Write(m[i, j]:2, ' ');
        end;
        WriteLn;
      end;
     
      ReadLn;
    end.
    Le problème, c'est que je ne vois pas ce que vous cherchez à faire.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Futur Membre du Club Avatar de fallendery
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    C'est ça qu'il m'affiche avec le code que je t'ai donné (la diagonale) :

    Nom : Capture.PNG
Affichages : 10658
Taille : 35,1 Ko

    Ce que je cherche à faire est d'afficher la nouvelle matrice comme le tableau suivant :
    1 0 0 0 1
    1 1 0 1 1
    1 1 1 1 1
    1 1 0 1 1
    1 0 0 0 1
    Tu vois tu trouves qu'il y a un triangle à gauche et un autre à droite (remplis de 1). Quelle est la fonction pour afficher dans cet ordre, exemple : pour afficher du haut à gauche vers le bas à droite (diagonale) : m[i,i]:=1

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 062
    Points : 15 353
    Points
    15 353
    Billets dans le blog
    9
    Par défaut
    J'avoue que je ne vois pas quelle est la formule à appliquer pour obtenir ce résultat.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  8. #8
    Futur Membre du Club Avatar de fallendery
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    J'avoue que je ne vois pas quelle est la formule à appliquer pour obtenir ce résultat.

    D'accord Merci ^_^

  9. #9
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Citation Envoyé par fallendery Voir le message
    salut je veux créer un tableaux de 2 dimensions et je fait le remplissage quand il s'affiche la moitie du numéro que j l entrer seront remplacer part numéro 8 je n'arrive pas a trouvez la fonction regarder le tableaux ce dessus aider moi merci
    S'il s'agit d'un exercice qu'on te demande de faire, mets le texte intégral tel qu'il t'a été donné car je n'ai rien compris à ton français, désolé.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  10. #10
    Futur Membre du Club Avatar de fallendery
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    S'il s'agit d'un exercice qu'on te demande de faire, mets le texte intégral tel qu'il t'a été donné car je n'ai rien compris à ton français, désolé.
    Salut désolé je ne parle pas bien français. En fait regarde la réponse que j'ai donnée plus haut : j'ai expliqué ce que je cherche, je pense que tu vas comprendre. Merci.

  11. #11
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Bonjour.

    Un bout de code pour remplir la matrice suivant les souhaits de fallendery

    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
     for i := 1 to (c+1)/2 do
      for j := 1 to (c+1)/2 do
        if j <= i 
          then begin
                 m[i,j]         := 1;
                 m[i,c+1-j]     := 1;
                 m[c+1-i,j]     := 1;
                 m[c+1-i,c+1-j] := 1;
               end
          else begin
                 m[i,j]         := 0;
                 m[i,c+1-j]     := 0;
                 m[c+1-i,j]     := 0;
                 m[c+1-i,c+1-j] := 0;
               end;
    Edit : petite erreur vue trop tard, il faut mettre (c+1) div 2 et non (c+1)/2

  12. #12
    Futur Membre du Club Avatar de fallendery
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Prof Voir le message
    Bonjour.

    Un bout de code pour remplir la matrice suivant les souhaits de fallendery

    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
     for i := 1 to (c+1)/2 do
      for j := 1 to (c+1)/2 do
        if j <= i 
          then begin
                 m[i,j]         := 1;
                 m[i,c+1-j]     := 1;
                 m[c+1-i,j]     := 1;
                 m[c+1-i,c+1-j] := 1;
               end
          else begin
                 m[i,j]         := 0;
                 m[i,c+1-j]     := 0;
                 m[c+1-i,j]     := 0;
                 m[c+1-i,c+1-j] := 0;
               end;
    Ça fonctionne maintenant merci ^_^

  13. #13
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Bonjour.

    Une solution plus courte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     for i := 1 to c do
      for j := 1 to c do
        if abs(c+1-2*i) <= abs(c+1-2*j)
            then m[i,j] := 1
            else m[i,j] := 0;

  14. #14
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 062
    Points : 15 353
    Points
    15 353
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Prof Voir le message
    Une solution plus courte :
    Celle-là, il fallait la trouver !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  15. #15
    Futur Membre du Club Avatar de fallendery
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Prof Voir le message
    Bonjour.

    Une solution plus courte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     for i := 1 to c do
      for j := 1 to c do
        if abs(c+1-2*i) <= abs(c+1-2*j)
            then m[i,j] := 1
            else m[i,j] := 0;
    Merci Beaucoup ^_^

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/08/2014, 18h40
  2. Tableaux delphi deux dimensions
    Par reuqnas dans le forum Langage
    Réponses: 13
    Dernier message: 14/05/2014, 12h46
  3. Réponses: 2
    Dernier message: 18/03/2008, 22h45
  4. tableaux dynamiques à deux dimensions
    Par nox75 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 23/04/2007, 18h35
  5. Réponses: 6
    Dernier message: 20/02/2007, 18h00

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