TP python
Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
par pierrelouisbourgeois » 23 Oct 2019, 19:19
Bonsoir à tous
,
Je dois réaliser un TP sur python ;
J'ai mis en fichier joint ce que j'ai déjà fait ainsi que mon programme qui ne fonctionne malheureusement pas ; Je bloque sur la question 2...
- Code: Tout sélectionner
def pyramide(n):
a=3
S=0
for i in range(n):
S=S+a
a=a+4
return S
def nb_etages(N):
n=0
while pyramide(n) <= N - a:
n = n+1
retrun n
Bonne soirée à vous et merci pour votre aide!
par pierrelouisbourgeois » 23 Oct 2019, 19:30
Je ne parviens finalement pas à mettre le fichier en pièce jointe ; Je vous rapporte quand même mes réponses
1)a)
i /// 0 1 2
S 0 3 10 21
a 3 7 11 15
b) Les différentes valeurs prises par la variable a représentent le nombre d’allumettes formant le premier étage de chaque pyramide.
c) Le nombre renvoyé par pyramide(3) correspond au nombre d’allumettes formant la pyramide de 3 étages. S = 21.
NB: Il y a une petite erreur dans le programme à la fin c'est "return " mais cela ne change pas grand chose à mon problème
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 13:00
-
par fatal_error » 23 Oct 2019, 20:29
slt,
ya beaucoup de choses à dire sur la façon avec laquelle a été conçu cet exo...
mais pour aller droit au but:
- Code: Tout sélectionner
def nb_etages(N):
n=0
#pyramide(n) représente le nombre d'allumettes utilisees pour construire une pyramide de hauteur n
#donc on teste pour les hauteur successives jusqu'à ce que le nombre d'allumettes dépasse
#notre nombre maximal N autorisé
while pyramide(n) <= N:
n = n+1
#quand on est sorti du while, c'est qu'on a échoué pour le dernier n utilisé, donc on prend celui d'avant
return n-1
la vie est une fête
-
Yezu
- Membre Relatif
- Messages: 335
- Enregistré le: 14 Fév 2018, 13:29
-
par Yezu » 23 Oct 2019, 20:37
Salut,
représente plutôt le nombre d'allumettes sur le
-ème étage.
Voir @fatal_error pour le reste.
par pierrelouisbourgeois » 23 Oct 2019, 21:43
D'accord je crois comprendre, en fait, c'est l'histoire de "a" qui m'a embrouillé... Maintenant je comprends mais je ne trouve pas que ce soit vraiment évident ; Juste est-ce que le début est juste ?
Pour la dernière question je n'arrive pas à le marquer sous forme de programme mais je voudrais inscrire que :
reste = N - pyramide(nb_etages(N))
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 13:00
-
par fatal_error » 23 Oct 2019, 21:47
Juste est-ce que le début est juste ?
1)a)
i /// 0 1 2
S 0 3 10 21
a 3 7 11 15
ok
b) Les différentes valeurs prises par la variable a représentent le nombre d’allumettes formant le premier étage de chaque pyramide.
ok (tu devrais appeler ça la base pour éviter l'ambiguité si on compte les étages par en haut ou en dessous...)
c) Le nombre renvoyé par pyramide(3) correspond au nombre d’allumettes formant la pyramide de 3 étages. S = 21.
oui
reste = N - pyramide(nb_etages(N))
c'est l'idée. mais tu t'appèles à l'infini, c'est pas très bon lol
n-1 représente ton nombre d'étages...
la vie est une fête
par pierrelouisbourgeois » 23 Oct 2019, 21:48
Yezu a écrit:Salut,
représente plutôt le nombre d'allumettes sur le
-ème étage.
Voir @fatal_error pour le reste.
C'est noté merci, j'avais inversé et pensais que quand n=2 par exemple, cela signifiait que la pyramide mesurait non pas 2 mais 3 étages... C'est plus clair maintenant
par pierrelouisbourgeois » 23 Oct 2019, 21:53
c'est l'idée. mais tu t'appèles à l'infini, c'est pas très bon lol
Je ne comprends pas pourquoi tu dis ça ^^ (mais pour de vrai :p)
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 13:00
-
par fatal_error » 23 Oct 2019, 22:35
Ben si t'appèles nb_etages au sein de nb_etages et que ton seul return se trouve après, tu vas t'appeler en boucle
la vie est une fête
par pierrelouisbourgeois » 23 Oct 2019, 22:48
D'accord mais je ne vois pas vraiment comment faire ; est-ce qu'il faut que je refasse une nouvelle fonction?
par pierrelouisbourgeois » 23 Oct 2019, 23:15
- Code: Tout sélectionner
#pyramide(n) représente le nombre d'allumettes utilisees pour construire une pyramide de hauteur n
def pyramide(n):
a=3
S=0
for i in range(n):
S=S+a
a=a+4
return S
#nb_etages(N) représente le nombre d'étages max que l'on peut construire avec N allumettes
def nb_etages(N):
n=0
while pyramide(n) <= N:
n = n + 1
return (n-1,N - pyramide(n-1))
Voilà ce que j'ai trouvé finalement
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 13:00
-
par fatal_error » 23 Oct 2019, 23:40
Ca a l'air pas mal. On peut noter que la suite u_n=n(2n+1), donnait directement le nombre dallumettes pour pyramide(n)...ce qui permet egalement de trouver le nombre d'etages max en resolvant une eq de second degré!
la vie est une fête
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 61 invités