Clemmellian Posté(e) le 18 février 2021 Signaler Posté(e) le 18 février 2021 Bonjour à tous, j'ai ce tp python à faire (voir pj). Est ce que dans le tableau le D correspond à la somme (cumulé) c'est à dire, 3+10+... ? Merci d'avanceDoc11.odt Citer
E-Bahut pzorba75 Posté(e) le 18 février 2021 E-Bahut Signaler Posté(e) le 18 février 2021 OUI, à toi de le remplir en faisant tourner la fonction pyramide(2), puis pyramide(3) et ainsi de suite pour conjecturer et ensuite démontrer. Ce sujet est déjà passé sur ce forum, fouine un peu et tu trouveras toutes les réponses. C'est plus pénible avec les pièces jointes, mais ce sujet a été traité il y a quelques semaines. Citer
Clemmellian Posté(e) le 18 février 2021 Auteur Signaler Posté(e) le 18 février 2021 Merci beaucoup Citer
E-Bahut PAVE Posté(e) le 18 février 2021 E-Bahut Signaler Posté(e) le 18 février 2021 Bonjour, Maintenant que tu es une "pro" de Python 😀, saisir le script et le faire "tourner" est pour toi un jeu d'enfant. Dis nous ce que tu as trouvé, si tu veux que l'on vérifie tes résultats... Citation Est ce que dans le tableau le D correspond Expand Pas vu de D dans le tableau..... même en grossissant le tableau 🧐 Citer
Clemmellian Posté(e) le 18 février 2021 Auteur Signaler Posté(e) le 18 février 2021 Je voulais dire le S Ca ne marche pas Citer
E-Bahut PAVE Posté(e) le 18 février 2021 E-Bahut Signaler Posté(e) le 18 février 2021 Fais nous un copié/collé de ton script (place le dans ton message entre entre les balises codes <>) et surtout enlève le "s" à maths 🤓 Citer
Clemmellian Posté(e) le 18 février 2021 Auteur Signaler Posté(e) le 18 février 2021 from math import* def pyramide(n): a=3 S=3 for i in range (2,n+1): a=a+4 S=S+a return S Citer
E-Bahut PAVE Posté(e) le 18 février 2021 E-Bahut Signaler Posté(e) le 18 février 2021 Donc sans ce "s" malencontreux, le script est opérationnel. Oui ? Donc tu peux remplir ton tableau.... Citer
E-Bahut PAVE Posté(e) le 18 février 2021 E-Bahut Signaler Posté(e) le 18 février 2021 Tu te souviens que la fonction effectue un calcul et mémorise le résultat (ou des éléments) de ce calcul quand on exécute cette fonction. Cependant (et cela est très déroutant au début), le (ou les) résultats produits par la fonction ne sont pas affichés... tant qu'un programme ne sollicite pas l'affichage !! Il suffit de compléter la définition de la fonction en créant un rudimentaire programme demandant l'affichage de la valeur... retournée . exple : print(pyramide(10)) (on peut aussi demander cet affichage directement dans la console). Citer
Clemmellian Posté(e) le 18 février 2021 Auteur Signaler Posté(e) le 18 février 2021 Comme ceci from math import* def pyramide(n): a=3 S=3 for i in range (2,n+1): a=a+4 S=S+a return S print(pyramide(10)) Citer
E-Bahut julesx Posté(e) le 18 février 2021 E-Bahut Signaler Posté(e) le 18 février 2021 C'est ça. Citer
E-Bahut PAVE Posté(e) le 18 février 2021 E-Bahut Signaler Posté(e) le 18 février 2021 "au cours de l'exécution de l'instruction pyramide(3)" dit l'énoncé. Si tu exécutes pyramide(3), tu ne vois apparaitre qu'une seule valeur : Tu peux bien sûr remplir ton tableau, sans faire tourner ton script dès lors que tu as identifié les variables... je pense que c'est ce qu'attend le concepteur de cet exercice. Toutefois, on peut adapter un peu le script pour faire AFFICHER les valeurs de i, de a et de S à chaque "tour de boucle". Vois tu comment faire (c'est très simple) ? Citer
Clemmellian Posté(e) le 19 février 2021 Auteur Signaler Posté(e) le 19 février 2021 Les différentes valeurs prises par la valeur a représentent le nombre d'allumettes formant le première étage de chaque pyramide, je ne suis pas sûre du tout Citer
E-Bahut julesx Posté(e) le 19 février 2021 E-Bahut Signaler Posté(e) le 19 février 2021 Non, a priori, c'est le nombre d'allumettes supplémentaires qu'il faut utiliser pour créer un nouvel étage. Mais cela représente effectivement aussi le nombre d’allumettes du premier étage. Citer
Clemmellian Posté(e) le 19 février 2021 Auteur Signaler Posté(e) le 19 février 2021 Mais donc le tableau ne se construit pas comme ça ? Citer
E-Bahut julesx Posté(e) le 19 février 2021 E-Bahut Signaler Posté(e) le 19 février 2021 Si, ton tableau correspond aussi bien à ton interprétation qu'à la mienne. Citer
Clemmellian Posté(e) le 19 février 2021 Auteur Signaler Posté(e) le 19 février 2021 Donc, il est correct Ensuite , pour la question 2 j'ai commencé à remplir: def nb_etages(N): n=2 while pyramide(n)<N: n=n+1 if pytamide(n)==N: return n-1 else: return Citer
E-Bahut julesx Posté(e) le 19 février 2021 E-Bahut Signaler Posté(e) le 19 février 2021 Un détail, petite faute de frappe, if pytramide(n)==N: mais ce n'est pas n-1 qu'il faut retourner ici. En fait, on envisage les deux cas * si N correspond au nombre exact d'allumettes qu'il faut pour créer une pyramide de n étages : vu que la condition est while pyramide(n)<N cette condition n'est vérifiée qu'au tour suivant de n=n+1, donc pour la bonne valeur de n il faut donc retourner n. On pourrait utiliser pyramide(n)<=N, mais cela peut poser un problème suivant la façon dont on gère la partie "allumettes restantes". Je te laisse essayer quand tu auras conçu le script complet. * si N est supérieur au nombre exact d'allumettes qu'il faut pour créer une pyramide de n étages : la condition n'est toujours vérifiée qu'au tour suivant, mais avec n=n+1, on dépasse le bon nombre d'étages, et c'est là qu'il faut retourner n-1. Citer
Clemmellian Posté(e) le 19 février 2021 Auteur Signaler Posté(e) le 19 février 2021 def nb_etages(N): n=2 while pyramide(n)<N: n=n+1 if pyramide(n)==N: return n else: return n-1 Citer
E-Bahut julesx Posté(e) le 19 février 2021 E-Bahut Signaler Posté(e) le 19 février 2021 Oui, maintenant à toi de voir comment tu veux gérer cela dans l'optique de l'énoncé. Mais, pour commencer teste déjà ce script avec différentes valeurs, du genre 55, 57, 105, 135, etc.. Citer
Clemmellian Posté(e) le 19 février 2021 Auteur Signaler Posté(e) le 19 février 2021 Il faut que j'écrive quoi sur ma console ? Citer
E-Bahut PAVE Posté(e) le 20 février 2021 E-Bahut Signaler Posté(e) le 20 février 2021 On va te retourner ta question 🤔. 1) Sur ton écran, dans la partie "éditeur", qu'est ce qu'il y a d'écrit ? un copié/collé COMPLET de ton script serait le bienvenu, pour qu'on en juge. 2) Ensuite, il faut que tu comprennes bien -si tu ne l'as pas encore réalisé- que pour tester une fonction (ou un ensemble de fonctions), il y a 2 possibilités au moins : a) soit tu exécutes la fonction dans la console en saisissant par exemple : nb_etages(105) et en validant. Tu peux ensuite exécuter cette fonction autant de fois que tu le souhaites en changeant toujours dans la console, l'argument de la fonction.... la commande devient par exemples nb_etages(59), nb_etages(1085) etc. b) soit tu crées un mini programme qui appelle et lance l'exécution de la fonction.... Dans l'éditeur, il te suffit d'écrire sous le script définissant la (ou les) fonction(s), une ligne de programme telle que par exemple : print(nb_etages(105)) ; puis tu lances le programme... qui va afficher la valeur de nb_etages(105)... dans la console. L'intérêt de cette deuxième méthode est que tu peux améliorer, développer ce programme minimaliste ! Mais c'est une autre histoire. Citer
Clemmellian Posté(e) le 20 février 2021 Auteur Signaler Posté(e) le 20 février 2021 Mais lorque je mets ça : nb_etages(105), ça ne marche pas Citer
E-Bahut julesx Posté(e) le 20 février 2021 E-Bahut Signaler Posté(e) le 20 février 2021 Il faut que tu apprennes à décoder les messages d'erreur ! pyramide n'est pas défini. Il faut laisser en tête le def correspondant, celui que tu as écrit au départ. Citer
Clemmellian Posté(e) le 20 février 2021 Auteur Signaler Posté(e) le 20 février 2021 D'accord, merci Mais je mets tout le programme ou bien juste le def pyramide(n) Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.