Recherche d'une valeur

Fermé
Julie - 14 avril 2008 à 23:32
 Julie - 26 avril 2008 à 18:32
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

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

merci d'avance
0
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 503 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 18 août 2012 66 > Julie
17 avril 2008 à 23:37
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 503 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 18 août 2012
18 avril 2008 à 14:26
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 503 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 18 août 2012 66 > Julie
18 avril 2008 à 16:59
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 503 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 18 août 2012
19 avril 2008 à 00:27
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
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
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 503 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 18 août 2012 66
22 avril 2008 à 18:33
si en plus il faut connaitre les règles du sudoku...

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