un petit problème d'algo

un petit problème d'algo - Algo - Programmation

Marsh Posté le 12-10-2004 à 09:44:03    

:jap:  
bonjour à tous.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:  
http://pages.globetrotter.net/ouebdiza/developpez/tableau.gif
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  :pt1cable:  
alors, s'il vous plaît, aidez moi!!!

Reply

Marsh Posté le 12-10-2004 à 09:44:03   

Reply

Marsh Posté le 12-10-2004 à 10:01:14    

Teste l'algo suivant rédigé à l'arrache :

Code :
  1. tableau[,] := faux
  2. y_inf := 1
  3. y_sup := 8   -- 8 lignes
  4. x_inf := 1
  5. x_sup := 6   -- 6 colonnes
  6. y := 1       -- en haut
  7. x := 1       -- à gauche
  8. delta_x := 2 -- on se déplace vers la droite
  9. delta_y := 0
  10. tant que (x_inf < x_sup) et (y_inf < y_sup) faire
  11.    tableau[x,y] := vrai
  12.    si x + delta_x > x_sup alors
  13.       delta_x := 0
  14.       delta_y := 2  -- on se déplace vers le bas
  15.       y_inf := y_inf + 1
  16.    fin si
  17.    si x + delta_x < x_inf alors
  18.       delta_x := 0
  19.       delta_y := -2 -- on se déplace vers le haut
  20.       y_sup := y_sup - 1
  21.    fin si
  22.    si y + delta_y > y_sup alors
  23.       delta_x := -2 -- on se déplace vers la gauche
  24.       delta_y := 0
  25.       x_sup := x_sup - 1
  26.    fin si
  27.    si y + delta_y < y_inf alors
  28.       delta_x := 2  -- on se déplace vers la droite
  29.       delta_y := 0
  30.       x_inf := x_inf + 1
  31.    fin si
  32.    x := x + delta_x
  33.    y := y + delta_y
  34. fin tant que


Message édité par pains-aux-raisins le 12-10-2004 à 10:19:13
Reply

Marsh Posté le 12-10-2004 à 10:08:56    

bravo pains au raisin je crois que c'est ça je l'ai déroulé à la main ça a l'air de marcher...
merci mec

Reply

Marsh Posté le 12-10-2004 à 10:11:50    

de rien ;)
 
ps : il manque l'initialisation du delta_x et du delta_y que tu as déjà corrigé j'imagine.

Reply

Marsh Posté le 12-10-2004 à 10:22:25    

Pains-aux-raisins, donner la solution toute faite ne fait pas partie des usages de ce forum.
 
C'est tout à ton honneur de l'aider de la sorte, mais je ne pense pas que ce soit la bonne chose à faire.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-10-2004 à 10:40:06    

c'est vrai :jap:
j'ai été pris dans un moment de précipitation.

Reply

Marsh Posté le 12-10-2004 à 10:42:22    

Pas grave. De toute façon, le gars n'a RIEN gagné ni appris, à part une satisfaction temporaire de l'exo résolu.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-10-2004 à 10:42:55    

Ouais  [:airforceone]

Reply

Marsh Posté le 12-10-2004 à 11:27:12    

c'est exactement ce que je voulais, une satisfaction rapide et sûre.
huuuuuuuum

Reply

Marsh Posté le 12-10-2004 à 15:45:55    

Ne compte pas trop trouver ce genre de soluce toute faite la prochaine fois. Tu seras malvenu avec cette attitude. T'as eu du "bol". Enfin, je sais bien que non mais ce qui compte, c'est l'illusion que tu t'en fais.
 


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-10-2004 à 15:45:55   

Reply

Marsh Posté le 12-10-2004 à 15:55:06    

non t'inquiètes pas sircam je plaisantais juste.
il est vrai que pains aux raisins m'avait bien aiguillé mais, ça va, j'avais bien avancé tout seul, j'avais réglé la moitié du problème, et il me manquait un élément fondamental qui me génait, qu'on m'a servi, c'est vrai, sur un plateau mais qui m'a permis de comprendre et de mener à bout ma réfléxion.
merci de t'inquiéter!
bonne journée
ceci dit je comprends tout à fais ton point de vue

Reply

Marsh Posté le 12-10-2004 à 16:13:20    

madame mim a écrit :

qu'on m'a servi, c'est vrai, sur un plateau mais qui m'a permis de comprendre et de mener à bout ma réfléxion.
(...)
ceci dit je comprends tout à fais ton point de vue


1°- Justement... C'est toujours facile de comprendre l'algo quand on l'a sous les yeux.
2°- Pour la résolution d'exo, ce n'est pas un point de vue, c'est une règle de ce forum.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-10-2004 à 16:28:36    

OUI CHEF

Reply

Marsh Posté le 12-10-2004 à 16:33:16    


 
en tout cas toi tu m'as beaucoup aidé tu as changé monn point de vue sur la vie et l'algo.  
merci de tout coeur :sleep:

Reply

Marsh Posté le 12-10-2004 à 17:32:06    

Tes commentaires ironiques, tu te les gardes, merci.
 
T'as pompé ton exo, tu t'es sans doute inscrit il y a qq jour dans ce but parce les cours commencent, maintenant tu peux dégager.
 
De toute façon, le pseudo-code n'est pas correct, alors, tes bobards comme quoi ça t'a "permis de comprendre et de mener à bout ta réfléxion", tu peux te les garder aussi.
 
[:aline2003]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-10-2004 à 17:44:57    

pains-aux-raisins a écrit :

de rien ;)
 
ps : il manque l'initialisation du delta_x et du delta_y que tu as déjà corrigé j'imagine.


hum, les gens qui filent des soluces toutes faites sont passibles de sanctions aussi, non? :gratgrat:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 12-10-2004 à 17:46:13    

Citation :

hum, les gens qui filent des soluces toutes faites sont passibles de sanctions aussi, non?

Surtout quand la soluce est fausse comme ça :D

Reply

Marsh Posté le 12-10-2004 à 17:48:06    

Ouais bon, on va jeter la pierre à pain-aux-raisins. Il pensait bien faire et a été distrait et s'en est rendu compte.
 
Par contre, les parasites, faut leur foutre un coup de pied au derrière.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-10-2004 à 17:48:56    

c'est quasiment juste. je trouvais juste que ma solution était un peu longue.
pour toi, sircam le moraliste:
description grille  
   maxligne  
   maxcol  
 
description d'une case  
   numligne,  
   numcol  
   visitee  
   marquee  
 
variables globales utilisées  
direction  (4 valeurs droite, gauche, haut bas)  
numligne  (varie entre 1 et maxligne)  
numcol    (varie entre 1 et maxcol)  
 
 
variables locales à la procédure principale  
flagecrire : booléen, vrai on maruqe faux on ne marque pas, change à chaque étape  
 
debut  
  flagecrire <- vrai  
  numligne <- 1  
  numcol <- 1  
  direction <- droite  
  faire  
    si flagecrire alors  
    debut  
      marquer la case  
    fin  
    flagecrire <- non gflagecrire  
  tant que avancerdunecase est vrai  
fin  
 
// c'est la fonction avancer d'une case qui fait tout  
// elle regarde suivant la direction si on peut avancer  
// et si on ne peut pas, elle change la direction  
// au bout de 4 essai, on revient au point de départ, donc si on y arrive c'est qu'on ne peut plus bouger, le parcours est termine  
 
fonction avancerdunecase  
retourn vrai/faux  
debut  
  // on effectue au maximum 4 tests puisqu'il y a 4 directions  
  si testecaselibre(numligne, numcol, direction) = faux alors  
  debut  
     direction <- directionsuivante(direction)  
     si testecaselibre(numligne, numcol, direction) = faux alors  
     debut  
        direction <- directionsuivante(direction)  
        si testecaselibre(numligne, numcol, direction) = faux alors  
        debut  
          direction <- directionsuivante(direction)  
          si testecaselibre(numligne, numcol, direction) = faux alors  
            retourner faux  
        fin  
     fin  
   fin  
   marquerla case numligne, numcol comme visitee  
   retourner vrai  
fin  
     
fonction directionsuivante  
argument dir direction  
retour direction  
debut  
   si direction = droite alors  
      retourner bas  
   si direction = bas alors  
      retourner gauche  
   si direction = gauche alors  
      retourner haut  
   si direction = haut alors  
      retourner droite  
fin  
 
 
// test si la case proche suivant la direction indiquée est visitable  
// (dans la grille et non visitée)  
// Si elle l'est les coordonnées de la case sont modifiées (influence du C)  
 
fonction testecaselibre  
arguments modifiés numeroligne, numerocolonne,  
argument non modifie direction  
retourne vrai/faux  
debut        
  si direction = droite alors  
    si numerocolonne < maxcol et si la case située en numeroligne, numerocolonne+1 n'a pas été visitée  
      debut  
        numerocolonne <- numerocolonne + 1  
        retourner vrai  
      fin  
    sinon  
      retourner faux  
 
  si direction = bas alors  
    si numeroligne < maxlig - 1 et si la cas située en en numeroligne + 1, numerocolonne n'a pas été visitée  
      debut  
         numeroligne <- numeroligne + 1  
        retourner vrai  
      fin  
    sinon  
      retourner faux  
 
   si direction = gauche alors  
    si maxcol > 1 et si la cas située en en numeroligne, numerocolonne -1 n'a pas été visitée  
      debut  
        numerocolonne <- numerocolonne - 1  
        retourner vrai  
      fin  
    sinon  
      retourner faux  
 
   si direction = hautalors  
    si maxlig > 1 et si la cas située en en numeroligne-1, numerocolonne n'a pas été visitée  
      debut  
        numeroligne <- numeroligne - 1  
        retourner vrai  
      fin  
 
    sinon  
      retourner faux  
fin  
il marche.

Reply

Marsh Posté le 12-10-2004 à 17:51:58    

t'as raison mec un coup de pied aux fesses des parasites, je suis bien d'accord.
au fait, l'algo toi t'en es capable??
Comme tu l'as dit, on comprend toujours mieux en lisant.
c'est beaucoup plus facile de voir que c'est faux et de dénigrer le travail des autres.
bouffon

Reply

Marsh Posté le 12-10-2004 à 17:55:01    

madame mim a écrit :

t'as raison mec un coup de pied aux fesses des parasites, je suis bien d'accord.
au fait, l'algo toi t'en es capable??
Comme tu l'as dit, on comprend toujours mieux en lisant.
c'est beaucoup plus facile de voir que c'est faux et de dénigrer le travail des autres.
bouffon


chépas si t'as remarqué que le parasite dans l'affaire, c'est toi :o
j'oserais pas revenir demander une deuxième fois la même chose ici si j'étais toi, car tu pourrais bien recevoir des cailloux :o (si ce n'est déjà cette fois ci).  Bref, lis la charte, ça t'éviterait des désagréments.  Je ne commenterai même pas ton pseudo racoleur [:nul]


Message édité par drasche le 12-10-2004 à 17:55:23

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 12-10-2004 à 17:55:39    

En attendant, il y a une façon plus efficace de savoir si la case doit être marquée ou pas. Et ça te sera nécessaire si tu souhaites adapter l'algo de pains aux raisins pour qu'il fonctionne.
 
Maintenant, la prochaine fois, essaye de présenter ton travail à l'avance, afin de ne pas te donner "un mauvais genre".

Reply

Marsh Posté le 12-10-2004 à 18:03:24    

drasche a écrit :

chépas si t'as remarqué que le parasite dans l'affaire, c'est toi :o
j'oserais pas revenir demander une deuxième fois la même chose ici si j'étais toi, car tu pourrais bien recevoir des cailloux :o (si ce n'est déjà cette fois ci).  Bref, lis la charte, ça t'éviterait des désagréments.  Je ne commenterai même pas ton pseudo racoleur [:nul]


 
tu ne trouves plus sur quoi m'attaquer, mais tu suis quand même ton copain pour faire comme lui?!?
C'est gentil. :sweat:  
 
merci lam's je viens de m'en rendre compte...

Reply

Marsh Posté le 12-10-2004 à 18:31:15    

Bon, mim, la plaisanterie a assez duré.
 
Quand on vient juste de s'inscrire pour pomper et qu'on ne connait pas le habitués du forum, on s'abstient de commentaires déplacés sur leur compte.
 
Tu n'as vraiment rien compris.
 
En temps normal, c-à-d hors parasitage de ta part, j'aurais exposé l'erreur à pain-aux-raisins, tout comme il l'aurait fait si j'avais proposé un algo erroné. On en aurait discuté avec plaisir car c'est qqn de bien.
 
Ta suffisance ("oui chef" suivit de "tu as changé monn point de vue sur la vie et l'algo" ) avant de me taxer de moralisateur parce que je rappelle une règle de cette section est totalement déplacée.
 
Tu crois que je vais seulement lire le torchon sous "pour toi sircam le moraliste" que tu proposes alors que la solution de p-a-raisins est quasi-bonne et bien plus élégante ? Pour qui te prends-tu ?
 
"l'algo toi t'en es capable??" -> Certainement mieux que toi; j'ai terminé mes études et je les ai faites sans pomper et avec plus d'humilité que toi.
 
Alors se faire traiter de bouffon par un jeune blanc bec prétentieux, c'est franchement à côté de la plaque.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-10-2004 à 18:48:15    

madame mim a écrit :

tu ne trouves plus sur quoi m'attaquer, mais tu suis quand même ton copain pour faire comme lui?!?
C'est gentil. :sweat:  
 
merci lam's je viens de m'en rendre compte...


Si tu n'insultais pas les gens, j'aurais eu des propos plus retenus. Et je ne "suis" personne, je suis moi et c'est déjà pas mal.

Reply

Marsh Posté le 12-10-2004 à 18:48:39    

Putain c'est dingue la horde de vieux bouffons qui pollue ce forum. :sleep:
Il demande de l'aide pour son exo d'algo; manque de chance qqun lui donne la solution. [:spasafote]
 
Après il a le malheur de ne pas encore maîtriser à la perfection votre second degré forumesque à dix francs et vous lui taillez un short même Chantal13 elle le trouverai trop court :/
 
A mort les pètes-couilles moralisateurs [:youpi]
La pusso-force dans le slip, le Gsnalf-newbie crew en avant! :o

Reply

Marsh Posté le 12-10-2004 à 18:50:31    

ta gueule toi :o
et je faisais pas de second degré :o


Message édité par drasche le 12-10-2004 à 18:50:48
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed