Ancien Responsable Matière Linou Posted March 2, 2021 Ancien Responsable Matière Posted March 2, 2021 Bonsoir, j'ai beaucoup de mal à comprendre la manière dont fonctionne le sommet d'une pile, par exemple ici : https://image.noelshack.com/fichiers/2021/09/2/1614725042-pile.png Je trouve cette liste dans données : [ e , a , c , d , b Donc j'ai données(2) qui vaut a du coup... Alors que python affiche B Merci beaucoup ! Il en va de même ici : Je trouve sommet qui vaut 1 Merci à la personne qui aura la patience ! Quote
Ancien du Bureau Solution Sans-Visage Posted March 3, 2021 Ancien du Bureau Solution Posted March 3, 2021 Helloo !! On va faire le truc entièrement : À chaque itération, on prend la lettre suivante de la liste "mot" Ensuite, on regarde si sommet est supérieur à 0 : si il ne l'est pas, on lui rajoute 1 et on stocke la lettre à l'indice dans la listé "donnée", si il l'est et que la lettre précédente dans données est la même que celle à laquelle on s'intéresse, on retire 1 à sommet. mot = abbabab Lettre = a sommet = 1 Donnees = A 0 0 0 0 0 0 0 0 0 mot = abbabab Lettre = B sommet = 2 Donnees = A B 0 0 0 0 0 0 0 0 mot = abbabab Lettre = B sommet = 1 Donnees = A B 0 0 0 0 0 0 0 0 mot = abbabab Lettre = A sommet = 0 Donnees = A B 0 0 0 0 0 0 0 0 mot = abbabab Lettre = B sommet = 1 Donnees = B B 0 0 0 0 0 0 0 0 mot = abbabab Lettre = A sommet = 2 Donnees = B A 0 0 0 0 0 0 0 0 mot = abbabab Lettre = B sommet = 3 Donnees = B A B 0 0 0 0 0 0 0 Légende : a ou b : c'est la lettre que l'on compare sommet : sommet < 0 A ou B : c'est la lettre dans la liste à laquelle on compare notre lettre d'intérêt Bon je suite désolé le programme est un peu long est chargé, j'espère que ça va t'aider, et si c'est toujours pas clair, hésite pas ! <33 LOUTRE, Gathou, Lluis and 4 others 1 1 2 3 Quote
Ancien Responsable Matière Linou Posted March 3, 2021 Author Ancien Responsable Matière Posted March 3, 2021 Je regarde tout ça ce soir, merci énormément !!! Vraiment merci pour ta patience et ta gentillesse ! @DuTACKauTac il y a 55 minutes, DuTACKauTac a dit : Bon je suite désolé le programme est un peu long est chargé, j'espère que ça va t'aider, et si c'est toujours pas clair, hésite pas ! <33 Okkk j'ai ciblé le soucis en fait, je considère que les indices de ma liste sont : 0 puis 1 puis 2 jusqu'à 9 (pour moi c'était comme pos in range je sais pas si c'est clair?) Du coup quand dans une liste on attribue a par exemple au sommet = 1 dans données, la première valeur de la liste (données) est a ? en gros je la mettais pour sommet = 0, donc toute ma liste est décalée ? il y a 58 minutes, DuTACKauTac a dit : mot = abbabab Lettre = a sommet = 1 Donnees = A 0 0 0 0 0 0 0 0 0 Pourquoi ici ton sommet = 1 ? Il n'a pas été encore incrémenter pourtant ? Quote
Ancien du Bureau Sans-Visage Posted March 3, 2021 Ancien du Bureau Posted March 3, 2021 il y a 10 minutes, Alpassino a dit : il y a une heure, DuTACKauTac a dit : Bon je suite désolé le programme est un peu long est chargé, j'espère que ça va t'aider, et si c'est toujours pas clair, hésite pas ! <33 Okkk j'ai ciblé le soucis en fait, je considère que les indices de ma liste sont : 0 puis 1 puis 2 jusqu'à 9 (pour moi c'était comme pos in range je sais pas si c'est clair?) Du coup quand dans une liste on attribue a par exemple au sommet = 1 dans données, la première valeur de la liste (données) est a ? en gros je la mettais pour sommet = 0, donc toute ma liste est décalée ? il y a une heure, DuTACKauTac a dit : mot = abbabab Lettre = a sommet = 1 Donnees = A 0 0 0 0 0 0 0 0 0 Pourquoi ici ton sommet = 1 ? Il n'a pas été encore incrémenter pourtant ? Non tu as raison, la liste est bien numérotée en partant de 0 ! En fait j'ai juste pas décomposé, mais dans sommet je mets le calcul déjà fait ! Mais en gros ici, on aurait Sommet = 0, donc sommet devient 0+1 (=1, j'ai sauté l'étape "initiale" dans tout le développement), et a va se mettre dans la liste à l'indice sommet, donc à l'indice 0 Je suis désolé j'ai fait beaucoup de raccourci, je peux redévelopper un peu plus si besoin Linou 1 Quote
juliette5 Posted March 4, 2021 Posted March 4, 2021 Re @DuTACKauTac! désolé mais je comprend pas du tout Il y a 21 heures, DuTACKauTac a dit : mot = abbabab Lettre = A sommet = 0 Donnees = A B 0 0 0 0 0 0 0 0 notamment ici, pourquoi le sommet devient égal à 0 alors que A est différent de B ? Quote
Ancien du Bureau Sans-Visage Posted March 4, 2021 Ancien du Bureau Posted March 4, 2021 il y a 1 minute, juliette5 a dit : Re @DuTACKauTac! désolé mais je comprend pas du tout notamment ici, pourquoi le sommet devient égal à 0 alors que A est différent de B ? À l'étape précédente, on avait sommet == 2 et B == B (donnees[sommet-1]), donc on a sommet -=1 Sommet est donc = à 1, et on a encore une fois A == donnees[sommet-1| ( == sommet [0] == A ) C'est mieux ? Quote
juliette5 Posted March 4, 2021 Posted March 4, 2021 il y a 5 minutes, DuTACKauTac a dit : Sommet est donc = à 1, et on a encore une fois A == donnees[sommet-1| ( == sommet [0] == A ) et du coup vu qu'on sommet = 1 et A=A on enlève 1 à A et il passe à 0 ? C'est sommet =1 qui appelle sommet =0 ? (je suis désolé je suis perdue ahah) Quote
Ancien du Bureau Sans-Visage Posted March 4, 2021 Ancien du Bureau Posted March 4, 2021 il y a 5 minutes, juliette5 a dit : et du coup vu qu'on sommet = 1 et A=A on enlève 1 à A et il passe à 0 ? C'est sommet =1 qui appelle sommet =0 ? C'est ça t'as compris ! Comme sommet > 0 et A == donnees[sommet-1], on fait la condition du haut, c'est à dire sommet-=1 Quote
juliette5 Posted March 4, 2021 Posted March 4, 2021 (edited) wow mieux vaut tard que jamais mdrr, merci beaucoup en tout cas (je sais pas ce que je ferai sans toi!) Edited March 4, 2021 by juliette5 Quote
Ancien du Bureau Sans-Visage Posted March 4, 2021 Ancien du Bureau Posted March 4, 2021 il y a 30 minutes, juliette5 a dit : wow mieux vaut tard que jamais mdrr, merci beaucoup en tout cas (je sais pas ce que je ferai sans toi!) La récursivité c'est un truc assez dur à comprendre je trouve, faut beaucoup s'entrainer !! ;)) Et c'est avec plaisir haha, vraiment! juliette5 1 Quote
reyerika Posted March 17, 2021 Posted March 17, 2021 (edited) Le 04/03/2021 à 10:51, DuTACKauTac a dit : La récursivité c'est un truc assez dur à comprendre je trouve, faut beaucoup s'entrainer !! ;)) Et c'est avec plaisir haha, vraiment! Salut! Déjà un grand merci pour tes explications ^^ il y a quelque chose que je n'ai pas bien compris c'est la façon dont les lettres sont mises dans "donnees", en fait je ne comprends pas pourquoi au début on a AB et puis BB dans donnes tout ça, je ne sais pas si j'ai été claire ^^ (je ne comprends pourquoi pour le deuxième A du mot par exemple on ajoute pas un A après AB) Edited March 17, 2021 by reyerika précision Quote
reyerika Posted March 17, 2021 Posted March 17, 2021 Le 04/03/2021 à 10:51, DuTACKauTac a dit : La récursivité c'est un truc assez dur à comprendre je trouve, faut beaucoup s'entrainer !! ;)) Et c'est avec plaisir haha, vraiment! Autant pour moi j'ai compris!!! ^^ Sans-Visage 1 Quote
Loupiotte Posted March 21, 2021 Posted March 21, 2021 Coucou ! Je déterre un p'tit peu ce sujet (désolé il me paraissait à l'abandon, j'ai eu pitié de lui ! ) J'avais une question quand à la dernière étape (si proche du but, quelle tristesse) : Le 03/03/2021 à 12:17, DuTACKauTac a dit : mot = abbabab Lettre = B sommet = 3 Donnees = B A B 0 0 0 0 0 0 0 Je ne comprends pas très bien pourquoi on fait ça Voilà comment je conçois la chose : lettre->B -if sommet>0 : on est ok parce que sommet = 2 - if lettre==donnees[sommet-1] : on est ok parce que sommet=2 donc donnees[sommet-1]=donnees[1]=B tiens tiens c'est la même lettre que celle qu'on analyse DONC nos deux conditions du "if" sont réunies DONC on peut exécuter "sommet-=1", donc on print "2" Mais apparemment, c'est pas ça qu'il faut trouver... il faut réaliser la boucle "else" pour au final exécuter "sommet+=1" qui nous donnerait sommet=3 (et ça serait juste, et fantastique car dans le programme du prof le programme affiche bien 3 !!!) J'ai sûrement du zapper un p'tit détail, ou fait une erreur de calcul de tête de merde (bah oui c'est dur quand même d'additionner des chiffres entre 1, 2 et 3 mdr) Mais je relis relis et relis sans trouver ce qui ne va pas... Quelqu'un pourrait-il me réexpliquer la démarche à suivre ? Quote
Ancien du Bureau Sans-Visage Posted March 21, 2021 Ancien du Bureau Posted March 21, 2021 il y a une heure, Loupiotte a dit : donnees[sommet-1]=donnees[1]=B donnees[1]=A Les listes sont numérotées à partir de 0 Loupiotte 1 Quote
Loupiotte Posted March 21, 2021 Posted March 21, 2021 Aaaah ! (tout s'explique) Oui j'avais zappé qu'on commençait à compter à 0, les joies de l'informatique aha Merci infiniment @DuTACKauTac (aka le prof d'informatique officieux <33, bien plus clair que l'officiel) Sans-Visage 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.