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

Algorithmes et structures de données Discussion :

un petit problème d'algo


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut un petit problème d'algo
    Bonjour, voilà je m'initie à la programmation et on me demande de réaliser en algo un petit programme mais je tourne en rond, alors si quelqu'un peut m'aider...
    voilà le sujet:
    il s'agit d'un tableau de 8 lignes par 6 colonnes. on veut que celui ci se remplisse d'une croix dans 1 case sur 2 en partant de la [1,1] jusqu'au bout.
    jusque là pas de problème.
    seulement, on me demande à ce que ce tableau se remplisse en spirale, c'est à dire une croix sur [1,1], [1,3], [1,5], [2,6], [4,6], .... jusque au centre...
    et là, je patauge alors, s'il vous plaît, aidez moi!!!

  2. #2
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 530
    Par défaut
    C'est pas très clair

    c'est un truc comme çà que tu veux ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [X]  [X]  [X] [X] [X] [X]
    [ ]  [ ]   [ ] [ ] [ ] [X]
    [X]  [X]  [X] [X] [  ] [X]
    [X]  [ ]   [  ] [X] [  ] [X]
    [X]  [X]  [  ] [X] [  ] [X]
    [X]  [X]  [X] [X] [  ] [X]
    [X]  [ ]   [  ] [  ] [  ] [X]
    [X]  [X]  [X] [X] [X] [X]

  3. #3
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 530
    Par défaut
    Mon dessin n'est pas très clair non plus
    Il montre quand même que dans la 1ère colonne, seule la 2ème ligne est vide. Dans la deuxième colonne, la 2ème et la 4ème et la 7ème sont vides etc...
    D'ailleurs si tu traces une diagonale entre [1,1] et [6,8] tu remarqueras une certaine symétrie ...

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut supertramp
    lol excuse moi c'est de ma faute j' ai pas été bien clair voilà ce que je voudrais:

    [ ][1][2][3 ][4][5][6]
    [1][X][ ][X][ ][X][ ]
    [2][ ][X][ ][X][ ][X]
    [3][X][ ][X][ ][X][ ]
    [4][ ][X][ ][X][ ][X]
    [5][X][ ][X][ ][X][ ]
    [6][ ][X][ ][X][ ][X]
    [7][X][ ][X][ ][X][ ]
    [8][ ][X][ ][X][ ][X]

    Et le tout rempli en spirale de [1.1] jusqu'au centre...
    j'éspère que c'est plus clair..

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut
    voilà c'est à peu près et il faut que, quand on lance le programme,
    [1][X][ ][X][ ][X][ ]
    [2][ ][X][ ][X][ ][X]
    [3][X][ ][X][ ][X][ ]
    [4][ ][X][ ][X][ ][X]
    [5][X][ ][X][ ][X][ ]
    [6][ ][X][ ][X][ ][X]
    [7][X][ ][X][ ][X][ ]
    [8][ ][X][ ][X][ ][X]

    ça se déclenche en spirale genre droite bas gauche haut droit bas gauche....

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Pour chaque colonne
      Pour chaque ligne
        Si (((ColonneImpaire) && (LigneImpaire)) OU ((ColonnePaire) && (LignePaire)))
               Faire_Croix(X,Y)
        FinSi
      FinPour
    FinPour

  7. #7
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Ce que j'ai compris de "en spirale" est ceci:

    En espérant que mon dessin sera plus clair.

    Le problème mérite réflexion.

  8. #8
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut supertramp
    pour scarabee C'est jouable mais le problème c'est que ça ne me le rempli pas en spiral...

  9. #9
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut supertramp
    Oui c'est exactement ca zazaraignée sauf que ça va au bout du tableau, merci beaucoup pour ton dessin il est vraiment plus clair

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut supertramp
    c'est pas facile

  11. #11
    Membre éprouvé Avatar de PINGOUIN_GEANT
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 149
    Par défaut
    je vois bien un truc en utilisant des repères pour chaque coin qui se rapprocheraient un peu plus du bord après chaque passage, mais cela ferait du code un peu moche avec plein de if pour gérer suivant le coin.
    à toi de voir.

  12. #12
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut supertramp to PINGOUIN_GEANT
    oui je pense aussi que c'est un truc dans le genre avec des si et tant que...
    mais c'est chaud je trouve rien qui marche j'arrive à faire le tableau avec une croix sur 2 avec des "pour" et en posant une valeur indicative 0 et 1 pour dire paire et impaire.
    mais la spirale c'est une autre paire de manches...
    à mon avis il faut programmer des carrés de plus en plus petit...

  13. #13
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut
    voilà l'algo sans spirale, elle marche pour un tableau de n'importe quelle taille :o


    Algo tableau

    var tab [1..6,1..8]:chaîne
    indicateur, l, c:entiers

    Début

    indic <-- 0
    pour l <-- 1 jusqu'a 6
    pour c <-- 1 jusqu'a (8-indic) pas de 2
    tab [l,c+indic] <-- "X"
    Fpour
    Si indic <-- 0 alors
    indic <-- 1
    Sinon
    indic <--0
    Fsi
    Fpour
    FIN

  14. #14
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut supertramp
    alors, personne ne trouve??
    c'est déséspérant j'y arriverai jamais

  15. #15
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Si on oublie les histoires de spirales : tu mets X si row+col est impair, ca a l'air de bien marcher (pour moi row est compris entre 1 et 8 et col entre 1 et 6).


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  16. #16
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut supertramp
    merci laly, ta solution fonctionne à merveille.
    c'était la solution d définir un indicateur pour le pair et l'impair.
    on avance, maintenant il ne nous reste plus qu'à le remplir en spirale ce p**** de tableau!! :o

  17. #17
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Désolé, j'avais pas vu le post de scarabee, c'est la même chose.

    Pourquoi tu veux le remplir en spirale ? Tu ne peux pas faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    pour row=1 to 8
       pour col = 1 to 6
          if mod(row+col, 2) = 1 then "X"
       fpour
    fpour
    ?

    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  18. #18
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 530
    Par défaut
    Regarde du coté des modulos:
    (colonne + 1) modulo 6 te donne un numéro de colonne entre 1 et 6
    (idem pour les lignes mais modulo 8 )
    Sinon, l'idéal serait peut-être d'avoir un sens:
    tant que la colonne est inférieur à 6 on fait colonne =colonne+2
    quand on arrive à 6, on fait ligne =ligne+2 jusqu'à ligne=8 puis
    on repart dans l'autre sens colonne=colonne-2 tant que la colonne est supérieure à 1
    là on fait ligne=ligne -2 jusquà ligne=1+(nb de fois qu'on a changé)

  19. #19
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 12
    Par défaut supertramp
    Citation Envoyé par lalystar
    Désolé, j'avais pas vu le post de scarabee, c'est la même chose.

    Pourquoi tu veux le remplir en spirale ? Tu ne peux pas faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    pour row=1 to 8
       pour col = 1 to 6
          if mod(row+col, 2) = 1 then "X"
       fpour
    fpour
    ?

    Laly.
    c'est malheuresement un exercice imposé....

    higgins je sais pas ce qu'est un modulos mais à ce que je comprends je crois que c'est pas mal y a de l'idée

  20. #20
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    X modulo d, noté X mod[d] ou encore X [d], représente le reste de la division de X par d. Exemples:

    5 [2]=1,
    12 [7]=5,
    4 [6]=4.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Petit problème d'algo sur les entiers
    Par Bebuck dans le forum Débuter avec Java
    Réponses: 13
    Dernier message: 21/09/2011, 22h04
  2. Un petit problème dans un petit algo!
    Par Pierre-Hakim dans le forum Général Python
    Réponses: 3
    Dernier message: 29/10/2008, 23h29
  3. Petit problème d'algo
    Par RodEpsi dans le forum Delphi
    Réponses: 5
    Dernier message: 01/08/2006, 15h30
  4. petit problème premier plan, arrière plan
    Par gros bob dans le forum OpenGL
    Réponses: 4
    Dernier message: 19/04/2004, 12h00
  5. [jointure] Petit problème sur le type de jointure...
    Par SteelBox dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/02/2004, 18h55

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