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 :

Est-ce que je peux afficher l'indice d'une case de matrice ?


Sujet :

Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Est-ce que je peux afficher l'indice d'une case de matrice ?
    Bonjour ..
    Est-ce que je peux afficher à l'écran l'indice d'une case de matrice...
    Par exemple :
    Ecrire un prog qui permet de rechercher une valeur val donnée, dans un tableau t de type entier contenant 10 éléments
    Vraiment ça c'est classique mais comment faire pour indiquer l'indice ?
    Exemple : je donne t[3]=5 et je donne la valeur val=5; comment faire pour afficher
    'la valeur val=5 est contenue dans t[3]'.
    J'ai essayé plusieurs fois mais sans succès ..
    Voici un exemple d'un essai :
    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
           program affiche_indice;
    var
      t:array [1..10] of integer ;
      i,val,s:integer;
     
    label 1,2 ;
     
    begin
      writeln('donnez une valeur val');
      readln(val);
      for i:=1 to 10 do
        begin
          write('donnez t[',i,']');
          read(t[i]);
        end;
      for i:=1 to 10 do
        readln (t[i]);
      if t[i]= val then
        s:=i;
      if s=i then
        goto 1
      else
        goto 2;
      1:writeln('la valeur donner exist est dans  t [',s,'] ');
      2:writeln('la valeur donner n''existe pas');
      readln;
      readln;
    end.
    Je suis sûre que cette question est classique !! mais j'attends votre réponse..

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour ,bienvenue sur le forum et bonnes fêtes à toi
    Tu as eu plein de cadeaux pour noél ?
    Revenons aux choses serieuses;
    -Utilises les balises codes pour ton code
    -Dès que j'ai vu la declaration de label j'ai sursauté "oh my God" apres avec l'utilisation de goto j'ai voulu me suicider mais en pensant aux nombres de codesque j'ai encore à ecrire avant de quitter ce monde je me suis ressaisie(t'inquietes c'est la folie de noel )
    Bon cette utilisation est fortement deconseillé à moins que tu sache reelement ce que tu fais (encore la faut voir),.Mais si ton exercice consiste a trouver un un element dans un tableau et à afficher l'indice moi je dis que tu le fais en 4 lignes ça
    Resumons en plus clair (je suis assez gai ajourd'hui)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {Declaration des variables}
    t:array [1..10] of integer ;
    i,val,s:integer;
    label 1,2 ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    {Lecture de la valeur à identifier par la suite  }
       writeln('donnez une valeur val');
       readln(val);
    {Remplissage notre tableau }
    {utilises plutot readln au lieu de read et coté affichage ça sera pa terrible avec ton write,Conseil :write suivi de readln}
       for i:=1 to 10 do
       begin
          write('donnez t[',i,']');
          read(t[i]);
       end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {j'avoue que cette partie n'a rien afaire ici parce que tu change ton tableau en mettant a chaque indice l'indice}
    for i:=1 to 10 do
    readln (t[i]);
    Quand tu quittes la ligne precedente i vaut 10 du coup si je suis la logique de ton code si val n'est jamais egale a 10 ça n'existera jamais la valeur trouvé.Je rappele au passage que t'es pas dans une boucle quand tu fais ça (t[i])

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if s=i then goto 1
    else goto 2;
    Je sens encore le suicide
    Bon bref voila la demarche simpliste
    ---> parcourir ton tableau et voir si ton element existe(2 lignes)
    ---->S'i existe recuper l'indice et l'afficher(1 ligne),sinon ça n'existe pas(1 ligne )
    Bon courage et bonne arrivée en 2008 ,je vous y attend deja
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut solution tout simplement
    Citation Envoyé par zizodev Voir le message
    Bonjour ..
    Est-ce que je peux afficher à l'écran l'indice d'une case de matrice...
    Par exemple :

    Vraiment ça c'est classique mais comment faire pour indiquer l'indice ?
    Exemple : je donne t[3]=5 et je donne la valeur val=5; comment faire pour afficher
    'la valeur val=5 est contenue dans t[3]'.
    J'ai essayé plusieurs fois mais sans succès ..
    Voici un exemple d'un essai :
    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
           program affiche_indice;
    var
      t:array [1..10] of integer ;
      i,val,s:integer;
     
    label 1,2 ;
     
    begin
      writeln('donnez une valeur val');
      readln(val);
      for i:=1 to 10 do
        begin
          write('donnez t[',i,']');
          read(t[i]);
        end;
      for i:=1 to 10 do
        readln (t[i]);
      if t[i]= val then
        s:=i;
      if s=i then
        goto 1
      else
        goto 2;
      1:writeln('la valeur donner exist est dans  t [',s,'] ');
      2:writeln('la valeur donner n''existe pas');
      readln;
      readln;
    end.
    Je suis sûre que cette question est classique !! mais j'attends votre réponse..
    salut , voila la solution tout simplement :

    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
    program affiche_indice ;
    uses wincrt  ;
    var 
     t:array [1..10] of byte ;
     i,val : byte ;
    begin 
    {remplissage du tableau }
    for i:=1 to 10 do 
      begin 
        writeln(' Donner une valeur ') ; 
        readln(t[i]) ; 
      end; 
    {recherche }
    writeln (' Donner la valeur à rechercher ');
    readln(val);
    
    i:=1;
    trouve:=false ;
    while (i<=10) or (trouve=false) do 
      begin 
        if t[i] = val  then 
          trouve := true;
        i:=i+1 ; 
    end; 
    
    if trouve = true then 
      writeln(' l"indice de ', val , ' est : ' , i)
    else 
     writeln( val , ' ne se trouve pas dans T');
    
    end.

    { BONNE CHANCE }

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Fio,

    Ce n'est pas très élégant comme solution.

    Un tel programme se décompose en plusieurs parties, on crée une fonction/procédure par partie.

    Ce n'est pas une obligation, bien entendu, mais cela fait partie des bonnes habitudes à prendre le plus tôt possible quand on apprend à programmer.
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Juste pour chipoter(c'est bientot 2008)
    Code bh.medali : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    i:=1;
    trouve:=false ;
    while (i<=10) or (trouve=false) do 
      begin 
        if t[i] = val  then 
          trouve := true;
        i:=i+1 ; 
    end;
    et le cas où la valeur cherchée se trouve plusieurs fois dans le tableau ?
    @+
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Fuo,
    Citation Envoyé par krachik Voir le message
    Juste pour chipoter(c'est bientot 2008)
    Code bh.medali : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    i:=1;
    trouve:=false ;
    while (i<=10) or (trouve=false) do 
      begin 
        if t[i] = val  then 
          trouve := true;
        i:=i+1 ; 
    end;
    et le cas où la valeur cherchée se trouve plusieurs fois dans le tableau ?
    @+
    Comme il s'agit d'un exercice, je ne pense pas qu'il faille prendre ça en compte, mais après tout...

    Et puis, on pourrait même prévoir de renvoyer un tableau contenant tous les indices correspondant, mais ce n'est plus le même exercice.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Citation Envoyé par droggo
    Comme il s'agit d'un exercice, je ne pense pas qu'il faille prendre ça en compte, mais après tout...

    Et puis, on pourrait même prévoir de renvoyer un tableau contenant tous les indices correspondant, mais ce n'est plus le même exercice.
    (je sais)
    Juste une petite question concernant tes entetes de messages Gio, Fuo, Fio, ........(c'est quoi l'histoire ) (je sais que c'est pas l'objet du post mais comme on va rentrer en 2008 je me permet de te le demander juste pour le delire, ne le prends pas mal surtout )
    @+
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

Discussions similaires

  1. Est-ce que Python, peux collecter des infos sur une machine
    Par pierrot10 dans le forum Général Python
    Réponses: 2
    Dernier message: 26/04/2012, 22h56
  2. Est-ce que je peux utiliser les mêmes variables pour javascript et PHP?
    Par sparil dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/07/2007, 13h23
  3. [FTP] Est-ce que PHP peux faire FTP
    Par pierrot10 dans le forum Langage
    Réponses: 7
    Dernier message: 11/06/2007, 15h55
  4. Réponses: 2
    Dernier message: 12/05/2006, 11h08
  5. Réponses: 2
    Dernier message: 06/04/2006, 17h44

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