TP python

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
Avatar de l’utilisateur
pierrelouisbourgeois
Membre Relatif
Messages: 192
Enregistré le: 19 Avr 2018, 12:06

TP python

par pierrelouisbourgeois » 23 Oct 2019, 19:19

Bonsoir à tous :) ,

Je dois réaliser un TP sur python ;

Image

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! ;)



Avatar de l’utilisateur
pierrelouisbourgeois
Membre Relatif
Messages: 192
Enregistré le: 19 Avr 2018, 12:06

Re: TP python

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

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: TP python

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

Re: TP python

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.

Avatar de l’utilisateur
pierrelouisbourgeois
Membre Relatif
Messages: 192
Enregistré le: 19 Avr 2018, 12:06

Re: TP python

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))

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: TP python

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 :)

Avatar de l’utilisateur
pierrelouisbourgeois
Membre Relatif
Messages: 192
Enregistré le: 19 Avr 2018, 12:06

Re: TP python

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 :]

Avatar de l’utilisateur
pierrelouisbourgeois
Membre Relatif
Messages: 192
Enregistré le: 19 Avr 2018, 12:06

Re: TP python

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)

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: TP python

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 :)

Avatar de l’utilisateur
pierrelouisbourgeois
Membre Relatif
Messages: 192
Enregistré le: 19 Avr 2018, 12:06

Re: TP python

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?

Avatar de l’utilisateur
pierrelouisbourgeois
Membre Relatif
Messages: 192
Enregistré le: 19 Avr 2018, 12:06

Re: TP python

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

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: TP python

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 :)

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 61 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite