Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

DM sur Python exo 3

Posté par
Jycroisencore
22-10-19 à 11:29

Bonjour tout le monde,

Je suis nouvelle ici et je vous remercie par avance de l'aide que vous pourrez m'apporter.
J'ai bien lu toutes les instructions.
J'ai donc un DM a faire pour les vcances et ai quelques difficultés pour le finir en particularité sur l'exercice 3, les questions 2 et 3. Je ne suis pas convaincu des réponses que j'apporte et dans l'exercice 4 où là dans la question 2, je suis complètement perdue.
Je me suis permise d'indiquer toutes mes réponses en vert.
Je vous remercie donc encore une fois pour toute l'aide que vous m'accorderez.
Bien à vous



DM de maths : (en vert mes réponses)

Exercice N°1 :

*******
Exercice N°3 :
On considère le programme ci-dessous :
def allo() :
      n=1
while 1/(2*n)>0.99 :
      n=n+1
return (n)

1) Quel est la valeur renvoyée par ce programme.
La valeur renvoyée est 1
2) Comment pourrait-on modifier ce programme pour que l'utilisateur puisse choisir la valeur qu'il veut mettre à la place de 0,99 ?
Qu'il n'y ai pas de division mais je n'ai aucune certitude

*****

*** message dupliqué ***DM sur Python exo 3

Posté par
carita
re : DM sur Python exo 3 22-10-19 à 19:44

bonsoir

tu es bien sûr de cette ligne ? while 1/(2*n)>0.99 :

parce que la condition n'est jamais remplie.

pour n=1          1 /(2*1) = 0.5 < 0.99  
on n'entre pas dans la boucle, et pas d'incrémentation pour n

et donc le return(n) t'affiche 1

---

2) Comment pourrait-on modifier ce programme
pour que l'utilisateur puisse choisir la valeur qu'il veut mettre à la place de 0,99 ?
... en permettant justement à l'utilisateur de saisir un nombre

Posté par
carpediem
re : DM sur Python exo 3 22-10-19 à 19:45

salut

je parierai pour 1/(2**n) > 0,99

...

Posté par
Jycroisencore
re : DM sur Python exo 3 22-10-19 à 19:53

Bonsoir à vous,

Je vous confirme qu'il est bien noté:
def allo():
         n=1
         while 1/(2*n)>0.99:
         n=n+1
         return (n)

Posté par
carpediem
re : DM sur Python exo 3 22-10-19 à 19:57

dans ce cas la fonction allo() répond toujours c'est occupé

Citation :
2) Comment pourrait-on modifier ce programme pour que l'utilisateur puisse choisir la valeur qu'il veut mettre à la place de 0,99 ?
Qu'il n'y ai pas de division mais je n'ai aucune certitude
quel est le rapport entre la question et la réponse ?

Posté par
carita
re : DM sur Python exo 3 22-10-19 à 19:58

en admettant que ce soit "normal",
ça expliquerait la question 2) : pouvoir saisir la valeur que l'on veut.

Posté par
carita
re : DM sur Python exo 3 22-10-19 à 19:59

bonsoir carpediem
je laisse la main (je ne suis pas trop au point pour la syntaxe python...)

Posté par
Jycroisencore
re : DM sur Python exo 3 22-10-19 à 20:04

Bonsoir,

Je ne suis personne ... Je ne comprends rien du tout

Posté par
carpediem
re : DM sur Python exo 3 22-10-19 à 20:13

carita : tu peux rester ...

Posté par
carita
re : DM sur Python exo 3 22-10-19 à 20:35

Jycroisencore
qu'est-ce que tu ne comprends pas ?

si l'énoncé que tu as écrit est exactement celui qu'on t'a donné,
alors ta réponse à la question 1 est juste.

pour la 2) je t'ai dit ce qu'il faut faire : permettre  à l'utilisateur de saisir un nombre.
quelle instruction fait ça ?

Posté par
Jycroisencore
re : DM sur Python exo 3 22-10-19 à 20:56

Rajouter un a=un nombre ?

Posté par
carita
re : DM sur Python exo 3 22-10-19 à 21:12

oui, tu peux donner le nom "a" à la variable
mais quelle est l'instruction propre à python pour effectuer une entrée ?

Posté par
Jycroisencore
re : DM sur Python exo 3 22-10-19 à 21:19

imput ?

Posté par
carita
re : DM sur Python exo 3 22-10-19 à 21:22

input me semble-t-il, avec un "n"

Posté par
Jycroisencore
re : DM sur Python exo 3 22-10-19 à 21:42

oui pardon, input
*C'est une fonction que nous n'avons pas encore vu en cours ^^

Posté par
Jycroisencore
re : DM sur Python exo 3 22-10-19 à 23:42

J'essaye désespérément de vérifier cette modification mais n'arrive à rien :

n=1
a=int(imput("nouvelle valeur")) #je lui indique 9 pour exemple
while 1/(2*n)>a:
          n=n+1
print (n)
>>> 1
Rhaaa !

Posté par
carpediem
re : DM sur Python exo 3 23-10-19 à 00:44

ne rentre pas 9 !!! mais 0,05 par exemple ...

Posté par
Jycroisencore
re : DM sur Python exo 3 23-10-19 à 09:28

n=1
a=float(imput("nouvelle valeur")) #je lui indique 0.05 pour exemple
while 1/(2*n)>a:
          n=n+1
print (n)
>>>10

C'est magique ! Merci !

Puis-je dire que le rôle de ce programme serait que tant que je ne rajoute pas (input) une nouvelle valeur, le programme ne s'exécutera que sur la valeur de n ?

Posté par
carita
re : DM sur Python exo 3 23-10-19 à 09:46

non, on te demande le rôle de ce programme, c'est-à-dire à quoi il sert.
(cet algo est sorti d'un contexte d'énoncé particulier?)

---

"C'est magique !" désolée, mais pas de magie ici
n est un entier initialisé à 1,  donc 1/(2n) est initialisé à 1/2.

si tu donnes à a une valeur supérieure à 1/2,
on a donc 1/2 < a,
la condition du while n'est pas vérifiée, on n'entre pas dans la boucle,
et il s'affiche 1, imperturbablement (la valeur initiale de n).

le  a  saisi doit donc être < 1/2.

Posté par
Jycroisencore
re : DM sur Python exo 3 23-10-19 à 09:57

"cet algo est sorti d'un contexte d'énoncé particulier?"
Non, juste du programme inscrit dans l'exercice N°3.

Posté par
carita
re : DM sur Python exo 3 23-10-19 à 11:25

while 1/(2*n)> a

en choisissant a =0.05, tu trouves n=10 ----  d'accord.

calcule 1/(2n)  pour n=11 ,   la condition est-elle toujours vérifiée ?
pour n=12 ?

et  pour n=9 ?

donc ....?

Posté par
Jycroisencore
re : DM sur Python exo 3 23-10-19 à 19:04

La condition n'est pas toujours vérifiée :
Pour n=11, on obtient >>> 11
Pour n=12, on obtient >>> 12
Pour n=10, on obtient >>> 10
Pour n=9, on obtient >>> 10
Pour n=8, on obtient >>> 10

Donc, si n10, n=10 et si n11, n=n ?



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 1674 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 !