Bonjour
je sais faire un programme Python pour déterminer un seuil , à partir duquel u>4 par exemple
Mais je voudrais savoir comment déterminer le rang à partir duquel les termes un appartiennent à ]4-a;4+a[
je vais utiliser une fonction def intervalle(a)
voici ma suite u définie pour tout entier n
while u<4-a
mais ici la contrainte est double à cause de la borne supérieure de l'encadrement
peut on s'en sortir avec une boucle while?
merci
bonjour,
c'est le plus élégant !
mais aussi, histoire de répondre à "j'ai deux conditions dans mon while" (qui pourrait donc se généraliser à d'autres cas de figure)
pour utiliser un while, on veut faire :
while (tant que) "c'est faux" (tant que on est en dehors de l'intervalle)
quelle est la négation de "u_n > 4-a ET u_n < 4+a" ?
rappel : la négation de "A et B" est "non A ou non B"
(et python c'est en anglais : "and" pour "et" et "or" pour "ou")
Merci
J'ai revu le lien entre, intervalle, distance et valeur absolue.
Mathafou : la négation est :
Tant que u4-a
ET u4+a
On peut mettre deux conditions dans un programme tant que si j'ai bien compris
relis ce que j'ai écrit : la négation d'une proposition i "et" est le OU des négations
en dehors de l'intervale, c'est avant OU après.
n = 0
u = ...
while u <= 4-a or u >= 4+a :
n= n+1
u = ...
Merci
J'ai essayé ceci
from math import *
n=0
u=(4n+1)/(n+1)
while abs(u-4)<.1:
n=n+1
u=(4n+1)/(n+1)
print (n)
Mais j'ai le msg suivant :invalid syntax for integer with base 10
Ok merci j'ai corrigé
Il y avait une autre erreur
abs(u-4)>0.1
Le programme affiche 30
Par contre si je le teste avec e =. 000001
J'ai le message suivant : line 6
KeyboardInterrupt
La ligne 6 correspond à u=(4*n+1)/(n+1)
Bonjour,
Un peu hors sujet ... quoique.
"mais ici la contrainte est double à cause de la borne supérieure de l'encadrement "
Ecrire un programme (Python ou autre) ne doit pas empêcher de réfléchir avant de se lancer dans la rédaction de l'algo.
Dans le cas de l'exercice avec : u(n) = (4n+1)/(n+1), on a :
u(n) = (4n+4-3)/(n+1)
u(n) = 4 - 3/(n+1)
Et donc u(n) < 4 quelle que soit la valeur de n.
Il est donc inutile (durée de déroulement de l'algo, utilisation non nécessaire de mémoires, ...) de tester pour u(n) > 4.
Cela n'empêche pas de réfléchir dans un cadre plus général, où il serait impératif de tester pour les 2 "cotés" d'un intervalle ... mais ce n'est pas le cas (ou devrait ne pas être le cas) avec l'exemple proposé.
pour info
j'ai essayé de modifier le programme
from math import *
def seuil (a)
n=0
u=(4n+1)/(n+1)
while abs(u-4)>a
n=n+1
u=(4*n+1)/(n+1)
print (n)
j'ai le message suivant : invalid syntax
et si je tape seuil(30)
'seuil' is not defined
je reviens sur mon programme
n = 0
u = ...
while u <= 4-a or u >= 4+a :
n= n+1
u = ...
il faut au préalable demander à l'utilisateur de choisir une valeur de a
comment faire si je ne veux pas créer une fonction
j'ai essayé avec
a=input()
je n'arrive pas à utiliser cette fonction input même pour un programme tout simple
pouvez vous m'aider?
merci
ce que tu tapes en réponse à input est une suite de caractères
il faut dire que (convertir en) c'est un nombre en virgule flottante
a = float(input())
a = float(input())
n=0
u=2
while (u<a):
n=n+1
u=4*u
return n
j'ai encore le message "return outside function
j'ai pourtant les : après while
bein oui puisque tu n'as pas de fonction (def) !
si tu veux avoir le résultat ce n'est par return, c'est print(n)
lorsque j'exécute le programme je n'ai pas de message d'erreur
cependant il ne me demande pas d'entrer une valeur pour a.
et donc rien ne se passe
juste from seuil import
from seuil ???
avec rigoureusement rien d'autre que
a = float(input())
n=0
u=2
while (u < a):
n=n+1
u=4*u
print(n)
chaque fois que tu lances ce programme il te demande la valeur
avec un Python en ligne https://www.online-python.com/
il est en attente de valeur sans rien dire :
1000 <---- ce que j'ai tapé dans la fenetre d'interface
5 <--- ce qu'il a répondu
** Process exited - Return Code: 0 **
Press Enter to exit terminal
avec un autre Python (edu python sur mon PC)
il ouvre une fenètre :
mieux serait qu'il dise ce qu'il demande au lieu d'une demande "anonyme"
a = float(input("valeur de a ?"))
ce qui donne sur www.online-python.com :
valeur de a ?
1000 <--- ce que j'ai tapé
5
et sur edu python :
Le programme doit déterminer le rang à partir duquel les termes un appartiennent à ]4-a;4+a[
J'ai testé le programme avec a=0.1
Il affiche n=30
Or u30 =3,9.
Or l'intervalle est ouvert.
J'avais écrit dans mon programme
while (abs(u-4)a) :
n=n+1
u=(4*n+1)/(n+1)
Il devrait donc afficher n=31 !?
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :