CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Tableau[i][j]

sheelba69
sheelba69
Niveau 5
08 décembre 2012 à 11:20:20

Bonjour à tous.

Je cherche à parcourir un tableau multidimensionnel (déjà rempli de caractère) de sorte à trouver une caractère spécial comme un U ou un V... Les seules solutions que je trouve sont très très lourde...

[-ArK-]
[-ArK-]
Niveau 30
08 décembre 2012 à 11:39:49

Tu vas être obligé de faire deux boucles sur i et j :hap:

Lagrangien
Lagrangien
Niveau 8
08 décembre 2012 à 11:53:07

Perso je ferais comme ca :

i,j sont des entiers déclarés ici.

pour i de 0 à imax :

pour j de 0 à jmax:

si tab[i][j] est égal à caractère spécial, sort de la boucle.

fin du pour j.

fin du pour i.

le caractère spéciale possède les indices i et j.

Lagrangien
Lagrangien
Niveau 8
08 décembre 2012 à 11:54:50

Enfin, rajoute un autre entier ou booleen k, qui prend la valeur 1 si le caractère a été trouvé.

Comme ça en sortant de la boucle tu es en mesure de savoir si i et j sont vraiment les indices du caractère recherché.

sheelba69
sheelba69
Niveau 5
09 décembre 2012 à 13:01:45

Le problème c'est que je vais déclarer sa :

Au debut je pensait faire sa avec un Tant que.

i=0
j=0
Tant que T[i][j] != s
Tant que i<12
i = i+1
Fin de tant que
Tant que j<12 et T[i][j]
j = j+1
Fin de tant que
Fin de tant que

Le problème est que ici je ne regarde que T[i][0] Pour T[0][j], je me trompe ?

tbop2
tbop2
Niveau 10
09 décembre 2012 à 13:23:25

Et si, pour plus ce clareté, tu proposais ton exemple déjà écrit en C ?
Je pense que l'utilisation de pseudo-code ici a plus de chances de t'embrouiller qu'autre chose.

Pseudo supprimé
Pseudo supprimé 09 décembre 2012 à 13:27:07

Tu fais deux variables qui contiennent la longueur x et y de ton tableau,
Puis tu fais deux for pour le parcourir en intégralité.
Avant tu fais une variable bool qui contient false,

variable contient= la valeur
variable caracteres=["a","l","k","i"]; => Caractères à chercher.
variable lgn= longueur de ton tableau x
variable lgn0= longueur de ton tableau y
variable lgn1= longueur du tableau caracteres;

contient=false;
pour(i=0; i<lgn; i++)
{
    pour(j=0; j<lgn0; j++)
    {
        pour(k=0; k<lgn1; k++)
        {
            si( tableau[i][j] == caracteres[k] )
            {
                contient=true;
            }
        }
    }
}

"contient" vaut true si ton tableau contient un des caractères présents dans le tableau caracteres, false si il ne contient pas.

A toi de retranscrire ça en C. :)

sheelba69
sheelba69
Niveau 5
09 décembre 2012 à 13:37:12

J'en suis encore à l'algo ^^

Je pense avoir trouver une solution (sur papier), en "c" sa devrais donner sa

http://wall.deblan.fr/x15ba/c/1/http://wall.deblan.fr/x15ba/c/1/

sheelba69
sheelba69
Niveau 5
09 décembre 2012 à 13:39:21

Ah merci beaucoup SerialSky.

Comme je sait que mon tableau est un 12 12, je n'ai plus qu'a remplacer les variables lign

Peux tu me dire si j'ai fait une erreur (d'algo) sur le lien c que j'ai posté ?

lokilok
lokilok
Niveau 17
09 décembre 2012 à 13:48:07

Je trouve ça bizarre de mélanger les for et les while pour lire un tableau à 2 dimensions :(

Sinon si ton tableau ne contient pas de s ça te fait une boucle infinie.

lokilok
lokilok
Niveau 17
09 décembre 2012 à 13:49:17

De plus ton j n'est pas remit à 0 donc ça va pas marcher correctement.

sheelba69
sheelba69
Niveau 5
09 décembre 2012 à 13:58:32

Mon tableau contient forcement un s (c'est comme sa, il est définit comme sa dans la fonction que le crée).

Bien vue, je vais rajouter un j=0 avant mon incrémentation dans le for.

Pseudo supprimé
Pseudo supprimé 09 décembre 2012 à 14:00:18

Si les while sont moins gourmand en performances,
Préfères les for pour parcourir un tableau, c'est beaucoup plus lisible.

Est-ce que tu as besoin d'avoir les références de l'index où se trouve le "s" dans ton tableau ?

Pseudo supprimé
Pseudo supprimé 09 décembre 2012 à 14:03:04

Puis, au cas où ton tableau ne contiendrait pas de "s",
Vaut mieux éviter de foutre un while à mon avis.

Pseudo supprimé
Pseudo supprimé 09 décembre 2012 à 14:22:39

http://www-igm.univ-mlv.fr/~lecroq/string/ :-)))

sheelba69
sheelba69
Niveau 5
09 décembre 2012 à 15:20:49

Mon tableau contient OBLIGATOIREMENT un s. ^^

ok donc sa me ferait sa alors ? :

http://wall.deblan.fr/x15bb/html/1/

Mon but est de savoir ou se trouve le s (quelle ligne quelle colonne), pas de savoir si il y en a un (vue qu'il y en a un c'est définie dans la fonction qui crée ce tableau).

tbop2
tbop2
Niveau 10
09 décembre 2012 à 18:06:06

Et si tu essayais un peu avant de poster à-la-va-vite ton code sur ce forum ? Ca t'éviterait de perdre ton temps à attendre que quelqu'un fasse le travail de ton compilateur, celui de ton débugueur et nous éviterait à avoir des horreurs du style :

for (j=0;j<12;j++);

:)

sheelba69
sheelba69
Niveau 5
09 décembre 2012 à 18:39:01

Car comme je t'ai déjà répondu, je ne peux pas encore essayé étant donné que mon algorithme n'est pas complet, et que je suis encore à la phase papier...

Désolé de t'avoir pris de ton temps.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment