adrénalice Posted February 16, 2021 Posted February 16, 2021 Hellooo y'aurait-il des génies de l'informatique qui comprennent quelque chose à la semaine 7 ? J'ai l'impression que les corrections sont compliquées et qu'on pourrait faire plus simple (vous l'aurez compris j'ai pas encore trouvé comment) Exemple dans "compte à rebours 3 étoiles" voici mon programme : https://zupimages.net/viewer.php?id=21/07/wfic.png qui affiche les nombres tous en colonne : est ce que quelqu'un sait comment revenir à la ligne sans créer une autre variable "suite" ect, ect (j'ai absolument pas compris cette partie) Ou sinon je veux bien qu'on m'explique comment son programme à lui fait pour écrire les nombres en ligne : https://zupimages.net/viewer.php?id=21/07/r8v1.png Merciii et beaucoup de force à tout le monde pour demain Quote
Ancien du Bureau Vaiana Posted February 16, 2021 Ancien du Bureau Posted February 16, 2021 ptdr je vais vraiment dead avant la fin de la soirée @Herlock Herlock 1 Quote
Ancien Responsable Matière Herlock Posted February 16, 2021 Ancien Responsable Matière Posted February 16, 2021 il y a 1 minute, raravageuse_de_coeurs a dit : ptdr je vais vraiment dead avant la fin de la soirée @Herlock @raravageuse_de_coeursje vais passer ma soirée sur le forum mdr ! Quote
Ancien du Bureau Vaiana Posted February 16, 2021 Ancien du Bureau Posted February 16, 2021 à l’instant, Herlock a dit : @raravageuse_de_coeursje vais passer ma soirée sur le forum mdr ! Moi c'est ce son qui me remonte le moral en cette soirée Révélation Herlock 1 Quote
Ancien Responsable Matière Herlock Posted February 16, 2021 Ancien Responsable Matière Posted February 16, 2021 @jePASSparla Je crois qu'il faut faire appel au pro @TACKonquis_mon_coeur Nous en veut pas @jePASSparla mais je suis d'accord pour DYNAMITE !! Vaiana 1 Quote
Ancien du Bureau Sans-Visage Posted February 17, 2021 Ancien du Bureau Posted February 17, 2021 Il y a 8 heures, Herlock a dit : Je crois qu'il faut faire appel au pro @TACKonquis_mon_coeur Haha trop mims, je suis désolé mais moi j'ai pas encore attaqué la S7 du coup si personne te répond j'essaierai de re-regarder quand je m'y serai mis Herlock and adrénalice 1 1 Quote
Ancien du Bureau MrPouple Posted February 17, 2021 Ancien du Bureau Posted February 17, 2021 Salut ! Petite question vu que je n'ai pas accès à la console : est-ce qu'il y a des contraintes ? Vous devez utiliser une technique particulière ? La récursion ? Au plaisir Sans-Visage 1 Quote
adrénalice Posted February 17, 2021 Author Posted February 17, 2021 il y a 1 minute, MrPouple a dit : est-ce qu'il y a des contraintes ? Vous devez utiliser une technique particulière ? La récursion ? Saluut alors déjà merci d'aider des PASS en galère ahah Le résumé des mots clés interdits et autorisés : https://zupimages.net/viewer.php?id=21/07/gwaj.png La difficulté du thème c'est surtout d'avoir enlevé la possibilité de faire des boucles avec la fonction "for loop in range()" Quote
Ancien du Bureau MrPouple Posted February 17, 2021 Ancien du Bureau Posted February 17, 2021 il y a 3 minutes, jePASSparla a dit : Saluut alors déjà merci d'aider des PASS en galère ahah Ahah aucun problème, la programmation c'est quand vous voulez J'essaye de regarder souvent mais la plupart du temps il y a déjà une réponse. Ca marche je regarde si je trouve quelque chose de plus simple mais paradoxalement ta solution me parait etre déjà pas mal étant donné que les for loops sont interdites. Quote
adrénalice Posted February 17, 2021 Author Posted February 17, 2021 il y a 44 minutes, MrPouple a dit : ta solution me parait etre déjà pas mal étant donné que les for loops sont interdites. C'est la solution qui est proposée dans la vidéo de correction qui fonctionne mais je ne comprends pas ce qu'on fait (la deuxième photo dans le message d'origine) Je n'arrive pas à comprendre le rôle de la fonction "str" ni pourquoi on crée "suite" il y a 46 minutes, MrPouple a dit : Ahah aucun problème, la programmation c'est quand vous voulez Quote
Ancien du Bureau Solution MrPouple Posted February 18, 2021 Ancien du Bureau Solution Posted February 18, 2021 La fonction 'str' transforme son argument en chaine de caractères, en string. Elle est utilisée ici parce que départ est une variable de type int. Pour pouvoir utiliser l'opérateur d'addition ici (le "+"), il faut que les variables (ici les trois) soient du même type. str(depart) est donc bien un str, "" est également un str et par extension suite en est aussi un (j'y reviens par la suite). from printer import * # Ce programme utilise le principe de récusion, à savoir appeler une fonction à l'intérieur de cette même fonction. def ligneRebours(depart): ''' Concrètement, lorsque l'on appelle cette fonction (mettons avec le chiffre 3, voilà ce qu'il se passe): 1 - la condition est fausse (3 > 0) 2 - On arrive à la ligne suite = ligneRebours(depart - 1) 3 - Cette ligne appelle la fonction dans laquelle nous sommes mais cette fois-ci avec le chiffre 2 (3 - 1) 4 - 2 n'est toujours pas supérieur à 0 5 - On recommence, appelle avec le chiffre 1 6 - On recommence, appelle avec le chiffre 0 7 - On recommence appelle avec le chiffre -1 8 - A ce moment là, la conditon départ < 0 est vérifiée, donc la fonction retourne "" 9 - Etant donné que la fonction a renvoyé quelque chose, la ligne suite = ligneRebours(départ - 1) peut enfin se traduire par suite = "" (départ était égal à 0) 10 - Du coup pour la première fois, on fini la fonction et on retourne str(départ) + "" + suite qui vaut à ce moment là "0". 11 - L'appelle de cette fonction étant complété, on peut maintenant assigné une valeur à la ligne suite =) ligneRebours(depart -1) (depart est égal à 1 ici). Suite vaut donc le retour de la fonction plus haut soir "0" 12 - on finit cette fonction et on retroune str(depart) + "" + suite soit 1 0 13 - Etc jusqu'à ce que tous les appels de fonction soient complétés. ''' if depart < 0: return "" suite = ligneRebours(départ - 1) return str(depart) + " " + suite def rebours(depart): if depart < 0: return "" print(ligneRebours(depart)) rebours(depart - 1) nombreLu = int(input()) rebours(nombreLu) La récursion c'est un concept qui peut être parfois dur à s'imaginer. La clé ici c'est de ne pas oublier toutes les fonctions que l'on appelle et qui sont "en attente" d'une réponse. Une fois que la condition est remplie (depart > 0) on peut alors répondre à toutes les fonction en suspens et remonter la chaine. Tu peux essayer de faire l'algorithme à la main avec un petit nombre (genre 2) et voir à quel moment tu butes dans la compréhension. On peut appliquer le même principe (en moins complexe) à la fonction rebours. J'ai un peu cherché, je pense qu'il y a une solution alternative qui n'utilise qu'une fonction avec deux variables de récursion mais l'algorithme est plus complexe que celui-là donc il n'a pas vraiment d'intérêt. Dans tous les cas n'hésitez pas si il y a besoin que je précise ces explications où si vous ne comprenez pas un point !! Au plaisir adrénalice, Sarapproche and Sans-Visage 1 2 Quote
adrénalice Posted February 18, 2021 Author Posted February 18, 2021 Il y a 10 heures, MrPouple a dit : La récursion c'est un concept qui peut être parfois dur à s'imaginer. La clé ici c'est de ne pas oublier toutes les fonctions que l'on appelle et qui sont "en attente" d'une réponse. Une fois que la condition est remplie (depart > 0) on peut alors répondre à toutes les fonction en suspens et remonter la chaine. Tu peux essayer de faire l'algorithme à la main avec un petit nombre (genre 2) et voir à quel moment tu butes dans la compréhension. J'ai à peu près compris il faut encore que je me familiarise un peu plus avec le principe Merci beaucoup pour ton aide! 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.