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

12 réponses

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
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
Julie
 
excusez moi j'ai oublié de préciser , la recherche se fait dans un tableau priés :)

merci d'avance
0
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
bomberwaterman Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   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
Julie > bomberwaterman Messages postés 505 Date d'inscription   Statut Membre Dernière intervention  
 
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
bomberwaterman Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   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
Julie > bomberwaterman Messages postés 505 Date d'inscription   Statut Membre Dernière intervention  
 
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
Julie
 
merci beaucoup waterman je vais regarder tout ca avec attention
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
bomberwaterman Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   66
 
si en plus il faut connaitre les règles du sudoku...

explique...
0
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
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
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
Julie
 
Personne n'a une fonction affichage de mon sudoku a proposé ?
0
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
Julie
 
Je fais un petit up ( si quelqun a une idée pour la fonction que j'ai expliqué plus haut )
0
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
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
Julie
 
C'est sur je vais créé un autre topic car personne répond sur celui ci
0