Inscription / Connexion Nouveau Sujet

1 2 3 +


Niveau première
Partager :

Exo maths python

Posté par
babahand
31-12-20 à 10:56

Bonjour
J ai un exo de maths sur python

La tortue Python démarre en (0;0)
1..Compléter le script pour que son exécution permette le tracé de la spirale ci contre

2.Jean-Baptiste a choisi une grande valeur de n et il annonce fièrement : « ma tortue a parcouru plus d?un million de pixels: le déplacement en spirale est devenu un automatisme ! » Combien d itérations a effectué la tortue de jean baptiste

3.PAPL: Qu?elles sont les coordonnés de la tortue de Jean Baptiste s il a choisi la plus petite valeur de n qui obligé la tortue a parcourir au moins un million de pixels ? Justifier

Merci d avance de votre aide

1.Pour le script je sais pas ce qu est L= ce qui me bloque pour faire le programme
Car je définis Sa(n)=0 et après je crée la liste avec for in range mais le L je sais pas quoi en faire
Exo maths python
** image tournée. merci de tenir le téléphone dans le bon sens **

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 11:07

Bonjour,
Il me semble que L est la longueur du segment à tracer.
Et n le nombre de segments.

Posté par
babahand
re : Exo maths python 31-12-20 à 11:14

Ah merci bcp je change Ducoup
Il y a 11 segments Sa(n):11
L=10
Car la première longueur est 10
For i in  range : c est ce qui permet de créer une liste ça ? Et le (.....) c est le nombre de fois que la liste sera exécuté ?

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 11:21

Je connais mal Python, mais
Def SA(n): tu ne dois pas y toucher
C'est lorsque tu feras appel à cette fonction que tu écriras par exemple quelque chose du genre: SA(11)

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 11:24

Pour la syntaxe de range, c'est dans ton cours.
Le (...) c'est le nombre de fois plus 1 me semble-t-il. Car ça commence à 0. Vérifie quand même

Posté par
babahand
re : Exo maths python 31-12-20 à 11:38

Le problème je n ai pas de cours ....
Oui je crois c est bien ça
L=10
Python ne comprend pas cela

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 11:43

Bonjour,
sanantonio312 : "Je connais mal Python, mais"

ce que tu dis est correct
je surveille en cas de besoin mais je te laisse poursuivre.

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 11:46

PS :
à défaut de cours il y a l'aide intégrée dans Python...
et des tas de tutoriels en ligne.
si tu cherches par exemple : range Python sur Internet tu auras toutes les infos voulues sur ce que ça fait et des exemples d'utilisation.

Posté par
babahand
re : Exo maths python 31-12-20 à 11:53

For i in  range
Dans les (....) il faut mettre 2 valeurs par exemple 2,4  et python exécutera les valeurs 2 et 3 mais 4 sera exclu

Posté par
babahand
re : Exo maths python 31-12-20 à 11:56

Et moi je veux qu il avance de 10 en 10 à chaque fois en partant de 10 et pour finir à 110

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 12:26

en l'absence de sanantonio312

sanantonio312 @ 31-12-2020 à 11:07

Bonjour,
Il me semble que L est la longueur du segment à tracer.
Et n le nombre de segments.

i c'est juste un compteur pour compter le nombre de boucles
et L les longueurs successives, variables, de chaque segment.
cette longueur progressera dans la ligne L= ... interne à la boucle.

dans le range(...) , les longueurs n'ont rien à y faire
c'est juste la définition du nombre de fois qu'on va faire la boucle, à savoir n fois
que faut il mettre dans le range(..) pour que ça fasse n valeurs de i ? (quelle que soit la valeur de n d'ailleurs, et quelles que soient les longueurs des segments)

Posté par
babahand
re : Exo maths python 31-12-20 à 12:50

La boucle c est juste 1 trait ou 2 traits ?

Posté par
babahand
re : Exo maths python 31-12-20 à 12:51

Je pense plus 2 traits car il y a forward et Left
Donc il faut faire la boucle 5 fois et demie

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 13:14

Merci mathafou, reste, je t'en prie
@babahand : La boucle est faite pour être exécutée autant de fois qu'il y a de segments
Ici, comme tu l'as remarqué, ça sera 11 fois

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 13:15

RTFM (Read The F... Manual)

forward avance
et left ne fait que tourner sur place sans rien tracer
chaque passage dans la boucle tracera un trait
et on veut donc tracer n traits (donc effectuer n boucles)
et n est une variable, qui prendra plus tard la valeur 11 quand on fera

Citation :
C'est lorsque tu feras appel à cette fonction que tu écriras par exemple quelque chose du genre: SA(11)
ou un autre jour qui prendra la valeur 247 ou n'importe quoi d'autre selon la longueur voulue de la spirale. (voir question 2)

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 13:22

sanantonio312 : messages croisés, je croyais que tu n'étais pas revenu
je reste mais ne te prives surtout pas d'intervenir !

Posté par
babahand
re : Exo maths python 31-12-20 à 13:24

Donc d après la vidéo que j ai regardé pour faire la boucle 11 fois je dois mettre (1,12) après range

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 13:27

Donc, pour faire cette boucle n fois, comment fais-tu?

Posté par
babahand
re : Exo maths python 31-12-20 à 13:30

For in range(1,12):
L=10+n*10
Car je veux que à chaque boucle la longueur augmente de 10

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 13:38

Si tu mets 12, tu feras toujours la boucle 11 fois et n ne sert à rien.
Si tu lis bien l'énoncé, tu as à appeler la fonction SA avec le nombre de boucles que tu veux.
SA(11) fera 11 boucles.
SA(6802) en fera 6801
Dans la fonction, tu dois donc utiliser n et pas 11.

Posté par
babahand
re : Exo maths python 31-12-20 à 13:46

C est à dire que pour for in range je dois mettre n ?

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 13:47

Oui

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 14:11

tout petit détail :
range(1,n) fera la boucle pour les valeurs de i : 1, 2, .. n-1
donc seulement n-1 fois
range(n) tout court (RTFM...!) la fera pour les valeurs de i : 0, 1, 2, ... n-1 c'est à dire n fois.

Posté par
babahand
re : Exo maths python 31-12-20 à 14:16

Python n est vraiment pas fait pour moi
Je comprend pas n-1  ce que ça veut dire

Posté par
babahand
re : Exo maths python 31-12-20 à 14:19

En mettant for i in range (n):
Sa suffit juste v

Posté par
babahand
re : Exo maths python 31-12-20 à 14:40

Voilà j ai trouvé ça c est pas juste encore

Exo maths python

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 15:11

oui pour range(n)
non pour le reste

# Créé le 31/12/2020 en Python 3.7
# ligne indispensable pour qu'il sache ce que sont les fonctions forward() et left() :
from turtle import * 

# définition d'une fonction traçant une spirale de n segments
def SA(n):
    L = 10 # faux
    for i in range(n): # pour faire n boucles, i de 0 à n-1 inclus
        L = 0 + 10*n # faux, ici  n est une  constante, tous les segments auraient la même longueur
        forward(10*n) # même erreur, et à quoi bon avoir calculé L alors ??
        left(90.0) # OK et je tourne à gauche de 90°
    # fin de la boucle
# et fin de la définition de la fonction SA(n)

# appel immédiat de la fonction pour lui faire tracer 11 segments
SA(11)

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:12

Citation :
Je comprend pas n-1  ce que ça veut dire
Si n=8, n-1=7

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:14

Heu ...

            L=0
c'était bon. Non?

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 15:22

L=0 oui, erreur de recopie
d'autant que ça ne sert à rien de la façon dont il a traité la suite.
j'étais resté à :

babahand @ 31-12-2020 à 11:38

...
L=10
...


(au lieu de copier coller son programme Python il en a pris une photo,
obligeant à recopier à la main, source d'erreurs)

Posté par
babahand
re : Exo maths python 31-12-20 à 15:22

je met L=0
pour les 2?

Posté par
babahand
re : Exo maths python 31-12-20 à 15:26

pourquoi python ne connait pas forward et left

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:29

Non, le "L=0" que tu avais mis est bon. C'est une initialisation de variable.
L'autre, ça doit être la longueur du segment à tracer. Il change à chaque boucle

Posté par
babahand
re : Exo maths python 31-12-20 à 15:31

mais pour qu'il change, a chaque boucle il doit prend +10

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:32

Pour forward et left, je ne peux rien pour toi.
Dans certains langages, il faut écrire des commandes du genre "Include " pour ajouter des fonctions.
C'est peut-être le cas de Python.
mathafou le sait certainement

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 15:35

pourquoi python ne connait pas forward et left

lire :

mathafou @ 31-12-2020 à 15:11

# Créé le 31/12/2020 en Python 3.7
# ligne indispensable pour qu'il sache ce que sont les fonctions forward() et left() :
from turtle import * 

# définition d'une fonction traçant une spirale de n segments
def SA(n):
...

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:35

Citation :
mais pour qu'il change, a chaque boucle il doit prend +10

Oui, à chaque passage, tu dois donner à L la valeur qu'il avait au passage précédent et lui ajouter 10.
En langage symbolique, on écrit ça: L\leftarrow L+10
En Python, ça s'écrit autrement, mais tu es supposé le savoir

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:36

Non seulement il le sait, mais il l'avait déjà dit!
Aïe, non, pas sur les doigts!

Posté par
babahand
re : Exo maths python 31-12-20 à 15:39

mais le probleme c est que sur ma feuille je dois me servir de forward et left

Posté par
babahand
re : Exo maths python 31-12-20 à 15:43

tout simplement L=L+10

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:43

Ça signifie que sur ta feuille, tu dois aussi écrire la ligne de code donnée par mathafou

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:44

Citation :
tout simplement L=L+10
Oui

Posté par
babahand
re : Exo maths python 31-12-20 à 15:44

Oui mais cette ligne je dois la mettre ou ?

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:46

Là ou mathafou l'a mise à 15h11

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 15:47

Les lignes commençant par # ne sont pas indispensable au fonctionnement
Ce sont des commentaires. Très utiles pour indiquer ce que l'on fait

Posté par
babahand
re : Exo maths python 31-12-20 à 15:47

euh il la mise au tout début du programme

Posté par
babahand
re : Exo maths python 31-12-20 à 15:48

ah oui sa marche

Posté par
babahand
re : Exo maths python 31-12-20 à 15:50

j ai tapé ceci mais rien ne s affiche
from turtle import *
def SA(n):
  L=0
  for i in range(n):
   L=L+10
   forward(10)
   left(90.0)
SA(11)

Posté par
sanantonio312
re : Exo maths python 31-12-20 à 17:06

Je pense que c'est ça, mais je ne peux pas t'aider plus.
Ne faut-il pas une commande d'affichage?

Posté par
mathafou Moderateur
re : Exo maths python 31-12-20 à 17:08

tu calcules bien L
mais tu n'en fais rien du tout.

forward (10) ?? non

ce qui s'affiche est le dessin de la spirale dans une autre fenêtre séparée qui se superpose en plus à toutes les autres fenêtres de l'écran du PC
si tu ne la vois pas, peut être est elle "derrière"...
rien ne s'affiche dans la console, c'est normal car il n'y a aucune donnée (numériques ou texte) à afficher
le but de ce programme est exclusivement de dessiner dans la fenêtre graphique "Python Turtle Graphics"

Exo maths python

cela peut se présenter différemment selon le Python utilisé (ici EduPython installé sur le PC) et le matériel (PC) et son système d'exploitation (Windows etc)

comme on le voit ici le programme "ne se termine jamais" (rien ne se passe dans la console après le lancement " *** Console de processus distant Réinitialisée *** "
alors que on devrait avoir de nouveau "la main" par >>>> :

*** Console de processus distant Réinitialisée *** (lancement du programme)
>>> (ici le programme s'est terminé, on peut taper de nouvelles elles commandes)

il faut fermer la fenêtre graphique de force pour terminer l'exécution et rendre la main.
et si on le fait dans le programme lui -même on n'aura pas le temps de contempler le "tableau"

pour que ça marche mieux j'ai écrit à la fin du programme :

# appel immédiat de la fonction pour lui faire tracer 11 segments
SA(11)

# fermera l'écran de la tortue quand on cliquera dessus (sinon il est bloqué)
exitonclick()

1 2 3 +




Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1689 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !