Recherche d'une valeur

Julie -  
 Julie -
Bonjour,

je cherche à écrire une fonction qui recherche une valeur dans un tableau d'entiers.

Quelqun a une idée ? si on ne trouve pas l'entier j'aimerais que le tableau ne change pas :)

merci d'avance
Configuration: Windows XP
Firefox 2.0.0.13

12 réponses

  1. Julie
     
    j'ai pensé à ca au niveau de l'algorithme :

    t[N] : Tableau d'Entier
    v : Entier
    i, indice : Entier
    trouve : Booleen;

    trouve := FAUX
    indice := -1
    i := 0
    tant que non trouve ET i <= N
    si t[i] = v alors
    trouve := true
    indice := i
    sinon
    i := i+1
    finsi
    fin tant que

    mais jarrive pas a le traduire en c
    0
  2. chatira
     
    Hello,
    Il y a 2 types de recherche sur les tableaux
    -La recherche dans des tableaux triés.
    -La recherche dans des tableaux non triés.
    Tu me dis quel cas tu veux et je vais te donner le programme complet en C
    By
    0
  3. Julie
     
    excusez moi j'ai oublié de préciser , la recherche se fait dans un tableau priés :)

    merci d'avance
    0
    1. Julie
       
      personne ne peut traduire cet algorithme en C s'il vous plait

      t[N] : Tableau d'Entier
      v : Entier
      i, indice : Entier
      trouve : Booleen;

      trouve := FAUX
      indice := -1
      i := 0
      tant que non trouve ET i <= N
      si t[i] = v alors
      trouve := true
      indice := i
      sinon
      i := i+1
      finsi
      fin tant que
      0
    2. bomberwaterman Messages postés 538 Statut Membre 66 > Julie
       
      salut, je sais pas i il faut que ton programme colle parfaitement à l'algo, mais voici une version qui doit marcher (l'ai pas testé...) qui répond aux attentes de l'algo, par contre pas de booléen ici.

      int tab[20];
      int v,i;

      for(i=0;i<=20;i++)
      {
      if(tab[i]==v)
      printf("la valeur %d à été trouvé dans la case %d",v,i);
      }

      a+
      0
    3. Julie > bomberwaterman Messages postés 538 Statut Membre
       
      en fiat c'est pour faire un sudoku

      Chacune de ces cases est en fait une structure permettant de mémoriser la valeur de la case (ou 0 si
      aucune valeur n'est ancore attribuée), plus un tableau d'une capacité de 9 entiers énumérant les
      candidats possibles pour cette case, ainsi que le nombre de candidats dans le tableau.
      On appelera capacity la capacité du tableau et size le nombre de valeurs effectives.


      Et je dois écrire un programme qui recherche un entier dans un tableau d'entiers de capacité capacity et
      contenant size valeurs effectives et retourne index, position de cet élément s'il est présent, ou -1
      sinon.

      Si quelqun pourrait adapter le programme

      merci d'avance :)
      0
    4. bomberwaterman Messages postés 538 Statut Membre 66 > Julie
       
      As tu déjà défini tes structures, si oui cela aiderait, car pour l'instant je ne vois pas trop ce que tu veux expliquer...

      sinon pour ce que tu as precisé, j'ai refait un peu le code :


      #define capacity 20 // tu mets ce que tu veux en valeur pour la capacité du tableau 20 ou autre


      int tab[capacity];
      int index,i,v;

      for(i=0;i<=20;i++)
      {
      if(tab[i]==v)
      index=i; //si la valeur dans le tableau est égale à la valeur recherchée (v) index prend le

      numéro de la case (position de l'élément)

      else index=-1; //sinon index prend pour valeur -1

      }

      jespere que ça t'aide un peu plus, mais precise le code à donner !!
      0
    5. Julie > bomberwaterman Messages postés 538 Statut Membre
       
      merci bomber

      demain j'envoie ce que j'ai déja fait ( oui j'ai défini les structures vous le verrez dans mon programme )
      0
  4. Julie
     
    merci beaucoup waterman je vais regarder tout ca avec attention
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Julie
     
    Effectivement le programme marche par contre ca s'affiche pas correctement je pense que je me suis trompé dans la fonction affichage.

    Quelqun a une idée pour cré une fonction qui afficherait mon sudoku ?

    merci d'avance :)
    0
    1. bomberwaterman Messages postés 538 Statut Membre 66
       
      si en plus il faut connaitre les règles du sudoku...

      explique...
      0
  7. Julie
     
    Si tu veux ca m'affiche :

    4.111.111.235.468.745.684.535.555.5555.555.555.555.555.555.555.555.555.5554.544.
    444.444.444.468.756.456.987.456Appuyez sur une touche pour continuer...

    Mais c'est un probleme dans la fonction affichage, j'ai du me tromper ^^

    je vais essayer de trovuer d'ou ca vient
    0
    1. Julie
       
      ca vient d'ici en fait :

      http://vero.moriceau.free.fr/cours/sudoku.pdf

      poru la fonction affiche la consigne est :

      la fonction void affiche sudoku(Sudoku s) ; qui affiche le
      Sudoku. Si une case est vide, un espace sera affich´e `a la place du chiffre.

      pour la fonction rechercher une valeur dans un tableau :
      Fonction de recherche dans un tableau de taille N. Cette fonction devra retourner l’indice de
      l’´el´ement recherch´e si celui ci est dans le tableau, la taille du tableau sinon.
      – Fonction de suppression d’un ´el´ement dans un tableau. Cette fonction doit supprimer un ´el´ement
      d’un tableau en d´ecalant les ´el´ements suivants de mani`ere `a conserver un tableau sans trous.


      merci pour tous ce que vosu avez fait déja , je suis aussi un peu contente de moi :p
      0
      1. Julie > Julie
         
        J'avias pensé à ca :

        for ( iLigne = 0 ; iLigne != 9 ; iLigne++ )
        {
        for ( iColonne = 0 ; iColonne != 9 ; iColonne++ )
        {
        if ( tableau[iLigne][iColonne] != 0 )
        {
        printf( " %d ", tableau[iLigne][iColonne] );
        }
        else
        {
        printf( " " );
        }


        mais ca marche pas avec une grille
        0
  8. Julie
     
    Personne n'a une fonction affichage de mon sudoku a proposé ?
    0
  9. Julie
     
    ou a une fonction recherche d'une valeur :

    Fonction de recherche dans un tableau de taille N. Cette fonction devra retourner l’indice de
    l'elementt recherché si celui ci est dans le tableau, la taille du tableau sinon.

    on avait pensé à ca :

    #define capacity 20 // tu mets ce que tu veux en valeur pour la capacité du tableau 20 ou autre

    int tab[capacity];
    int index,i,v;

    for(i=0;i<=20;i++)
    {
    if(tab[i]==v)
    index=i; //si la valeur dans le tableau est égale à la valeur recherchée (v) index prend le

    numéro de la case (position de l'élément)

    else index=-1; //sinon index prend pour valeur -1

    }
    0
  10. Julie
     
    Je fais un petit up ( si quelqun a une idée pour la fonction que j'ai expliqué plus haut )
    0
  11. Julie
     
    Je fais un petit up dans l'aprés midi :)

    je rapelle le but de la fonction

    Fonction de recherche dans un tableau de taille N. Cette fonction devra retourner l’indice de
    l'elementt recherché si celui ci est dans le tableau, la taille du tableau sinon.

    on avait pensé a ca :

    #include <stdlib.h>
    # include <stdio.h>
    #define capacity 20 // tu mets ce que tu veux en valeur pour la capacité du tableau 20 ou autre
    int main ( void ) {

    int tab[capacity];
    int index,i,v;

    for(i=0;i<=20;i++)
    {
    if(tab[i]==v)
    {index=i;} //si la valeur dans le tableau est égale à la valeur recherchée (v) index prend le

    else index=-1; //sinon index prend pour valeur -1

    }
    return (0) ;

    getch();

    }

    mais moi j'aimerais avec une grille , et est ce que quelqun pourrait tester sur un tableau ( car à vrai dire je ne sais pas si elle marche )
    en fait c'est pour un sudoku que je fais :p

    merci d'avance
    0
  12. Julie
     
    je fais un up le soir :) ( je vais peut être cré nu autre topic car mon sujet n'est pas très explicite au début )
    0
  13. Julie
     
    C'est sur je vais créé un autre topic car personne répond sur celui ci
    0