D'un
carré de carton de 10 cm de côté, on
enlève dans chaque coin
un petit carré de x cm de
côté afin de réaliser le patron
d'une boîte
parallélépipédique sans couvercle. On
note V(x)
le volume en \(cm^3\) de la boîte ainsi obtenue.
On souhaite trouver, à 1 mm près, la valeur de x pour laquelle la boite a
le plus grand volume possible.
Dans l'animation ci-dessous, le point bleu peut être
déplacé.
17 Décembre 2013, Créé avec GeoGebra |
On souhaite dans un premier temps construire à l'aide du module turtle de Python le programme qui permet lorsque son utilisateur saisie une valeur de x d'obtenir le dessin du patron de la boite correspondante.
Pour cela, on prendra comme unité : 1mm=1px.
On pourra utiliser l'aide suivante dans laquelle les principales structures algorithmiques sont programmées en Python et en Scratch. En Python le symbole # devant une ligne permet d'écrire un commentaire qui ne sera pas lu par Python. Veillez à respecter l'indentation de votre code à l'aide de la touche Tabulation du clacier ou de 4 espaces.
Python | Scratch |
---|---|
#Pour affecter 5 à la variable i : i=5 |
|
#Pour permettre la saisie d'une chaîne de caractères : x=input('Entrez une valeur de x\n') |
|
#Pour convertir la chaîne de caractère x en un entier n : n=int(x) #Pour convertir la chaîne de caractère x en ... #... un float f (un nombre réel f) f=float(x) |
Cela se fait automatiquement en Scratch |
Boucle bornée | |
#Lorsqu'on veut répéter 4 fois une suite d'instructions : for i in range(4): Instructions |
|
Boucle non bornée | |
#Lorsqu'on veut répéter une suite d'instructions... #... tant que x est inférieur ou égal à 4 : while x<=4: Instructions |
|
Structure conditionnelle | |
if condition: Instruction si vrai else: Instruction si faux |
Dans un fichier OpenOffice, copiez votre code Python puis construisez un tableau dans lequel, figureront 5 patrons correspondant à 5 valeurs de x différentes. On prendra soin d'indiquer les différentes valeurs de x.Correction
On veut maintenant construire un nouveau programme qui permet à son utilisateur d'obtenir
le volume de la boite lorsque celui-ci saisie une valeur de x.
Pour cela, appropriez vous le code ci-dessous qui décrit la création d'une fonction sous Python.
La fonction construite sera appelée Volume.
#Création de la fonction qui permet de multiplier deux nombres : def multiplication(a,b): return a*b #Utilisation de la fonction : multiplication(2,3)
Dans le tableau de votre document de synthèse, ajoutez une colonne dans laquelle vous indiquerez les volumes des 5 boites, obtenus pour les 5 valeurs de x choisies dans la partie A. Imprimez puis collez cette feuille.
Sur une feuille de papier millimétré, construisez le nuage de points de pas 1mm de la fonction Volume. Collez cette feuille puis répondez au problème posé en début d'activité.
Appropriez vous le code ci-dessous en commentant chacune des instructions.
from pylab import * #représentation du point de coordonnées (3;2) xlabel("axe des abscisses") ylabel("axe des ordonnées") xlim(0, 6) ylim(0, 5) plot(2,3,'ro') show()
En utilisant le Code 2, modifiez votre programme, de manière à afficher le nuage de points, de pas 1 mm, de la fonction Volume.
On rappelle l'échelle : 1 mm = 1px.
Pour cela on utilisera successivement les deux méthodes suivantes :
Méthode 1 En utilisant une structure Pour (on commencera par compter le nombre de points à dessiner).
Méthode 2 En utilisant une structure Tant Que.
Copiez les deux codes précédents ainsi que le nuage de points obtenu sur une page OpenOffice puis imprimez et collez le document ainsi créé.
Dans cette partie, nous souhaitons construire un programme qui va nous permettre d'obtenir, au millimètre près, la valeur de x pour laquelle le volume est maximal ainsi que la valeur du volume correspondant.
Sur un document OpenOffice, copiez le code Python construit pour répondre au problème et donnez les valeurs obtenues.
Sont-elles cohérentes graphiquement ?