Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

python

Posté par
Nelcar
28-02-21 à 11:06

bonjour,
dans un exercice j'ai
Etude d'un algorithme
on considère l'algorithme suivant
4<- 4
N<-0
Tant que    U>=10^-p
                   U<-U-ln(1+U)/(1+U)
                   N<-N+1
Fin tant que
Si on entre P=3, quelle est la valeur affichée en sortie par cet algorithme

J'ai rentré ces renseignements dans mon programme python mais je pense avoir fait des erreurs ça ne marche pas et je ne sais pas quoi écrire dans la console

MERCI

Posté par
carpediem
re : python 28-02-21 à 11:10

salut

ben montre ton script ... en utilisant la touche </> qui permet d'écrire un code propre !!

Posté par
Nelcar
re : python 28-02-21 à 11:15

et comment as-tu la liste de résultat que fais-tu ?
merci

Posté par
Nelcar
re : python 28-02-21 à 11:16

Bonjour carpediem
je me suis trompée pour le message
Je vais regarder pour te faire voir ce que j'ai fait

MERCI

Posté par
Nelcar
re : python 28-02-21 à 11:18

voici ce que j'ai fait

MERCI

python

Posté par
carpediem
re : python 28-02-21 à 11:33

à priori je ne vois pas d'erreur ...

qu'est-ce que ça affiche quand tu l'exécutes ?

et quelle est la définition de la récurrence pour ta suite ?

Posté par
mathafou Moderateur
re : python 28-02-21 à 11:43

Bonjour,

si. il y a une erreur
10-3 s'écrit 10**(-3) en Python

^ est le ou exclusif binaire et pas la mise en exposant

Posté par
mathafou Moderateur
re : python 28-02-21 à 11:46

>>> 10^-3
-9
>>> 10**-3
0.001
>>>

Posté par
Nelcar
re : python 28-02-21 à 11:48

bonjour mathoufou
je viens de corriger et je ne peux même pas excécuter. De plus je ne sais pas quoi mettre dans la console

carpediem : ma suite est décroissante et j'ai en u0=4   x[0;4]

MERCI

python

Posté par
Nelcar
re : python 28-02-21 à 11:50

mathoufou : je viens de supprimer les parenthèses  devant et derrière -3 mais aucun changement

MERCI

Posté par
mathafou Moderateur
re : python 28-02-21 à 11:59

ceci (une fois le module lancé) définit une fonction mais ne fait encore rien

pour l'exécuter, dans la console tu tapes U() :
>>> U()
et il t'affiche ce que renvoie (return) la fonction

nota : plutôt qu'une photo , copier coller le texte en le mettant entre les balises [ code ] (bouton < / >) évite aux intervenants de devoir tout retaper !

Posté par
ty59847
re : python 28-02-21 à 12:00

Là, tu as créé un outil, une fonction qui s'appelle suite.
Ton outil, il faut maintenant l'utiliser :

Il faut ajouter :
resultat = suite()
print(resultat)

Ces 2 instructions doivent être 'indentées' complètement à gauche : le premier caractère de ces 2 lignes doit être aligné avec le d de la ligne def suite():

Avec ça, tu devrais avoir ton affichage correct.
Mais ce n'est pas tout à fait ce qu'on te demande.
Une fonction, tu as déjà croisé des fonctions en cours de maths, c'est de la forme f(x) ... il y a une variable entre les parenthèses.
Ici, tu devrais avoir
def suite(p):
Et bien sûr, il y a du coup 1 ou 2 petits changements dans le reste.

Posté par
mathafou Moderateur
re : python 28-02-21 à 12:02

oups tu tapes suite()
(ta fonction s'appelle suite et pas U, confusion avec un autre exo semblable ailleurs)

Posté par
Nelcar
re : python 28-02-21 à 12:22

j'ai essayé ce que vous m'avez dit
je vais essayer de le mettre ici
le bouton </> ne va pas donc :

def suite():
    U=4
    N=0
    while U>=10**-3:
        U=U-(ln(1+U))/(1+U)
        N=N+1
    return(N)

resultat=suite()
print(resultat)

dans la console j'ai mis suite() et rien ne s'affiche. Ce qui me semble bizarre je n'ai pas le bouton en vert en haut

MERCI

Posté par
mathafou Moderateur
re : python 28-02-21 à 12:37

Bouton code ici
python
et tu colles ton code entre les deux balises [code] et [/code]
ça a pour but de préserver exactement les espaces et les alignements


def suite():
    U=4
    N=0
    while U>=10**-3:
        U=U-(ln(1+U))/(1+U)
        N=N+1
    return(N)

resultat=suite()
print(resultat)


et suffit OU l'un (print dans le module lui -même)
OU l'autre (appel en ligne de commande) des deux methodes pour utiliser la fonction.

copier coller de ton code marche très bien chez moi.

"je n'ai pas le bouton en vert en haut " ???
python

Posté par
Nelcar
re : python 28-02-21 à 12:45

ok, je verrai ça en fin de journée car là je vais manger chez mamy.

Bon appétit

MERCI

Posté par
carpediem
re : python 28-02-21 à 13:08

ha oui je n'avais pas vu pour la puissance ...

ty59847 : non on peut très bien créer une fonction sans argument (mais en général c'est un peu stupide) : ici comme tu le fait il est plus intéressant de passer l'exposant p en argument ... dans l'éventualité de tester plusieurs valeurs de p ...

mathafou : taper juste "suite()" ne suffit-il pas pour faire afficher le résultat ?

et enfin mon premier msg :

carpediem @ 28-02-2021 à 11:10

salut

ben montre ton script ... en utilisant la touche </> qui permet d'écrire un code propre !!
c'est à se demander s'il lisent ce qu'on écrit ...

Posté par
mathafou Moderateur
re : python 28-02-21 à 13:31

Citation :
taper juste "suite()" ne suffit-il pas pour faire afficher le résultat ?
si
c'est bien ce que j'avais proposé

mais il faut le faire en ligne de commande et pas dans le script, après avoir "lancé" le script (par le fameux bouton vert ...)

c'est ty59847 qui propose d'utiliser la fonction dans le script lui-même, et alors le print est nécessaire
écrire directement juste suite() dans le script ne fera rien du resultat de la fonction.
(d'ailleurs dans le script la ligne print(suite()) suffirait
pas besoin de variable intermédiaire)

proposition reprise par Nelcar et c'est pour ça que le copier coller de son code chez moi utilise cette méthode

bouton code :
si ! il a bien lu le message mais "le bouton < / > ne va pas"
(fausses manips dans Python , fausses manips dans le site ...)

Posté par
carpediem
re : python 28-02-21 à 13:37

ha oui c'est vrai : distinguer la console et la fenêtre d'écriture du script !! (comment s'appelle-t-elle d'ailleurs (si elle a un nom ?)

Posté par
mathafou Moderateur
re : python 28-02-21 à 14:34

en confondant la fenêtre et le programme qui la gère : l'éditeur
la fenêtre d'édition
ou tout simplement la fenêtre du script, le script
plus spécifiquement dans Python, on y met un module Python, donc "le module"
(en confondant la fenêtre et ce qu'on y met)

Posté par
carpediem
re : python 28-02-21 à 14:59

ha oui tout simplement ...

merci  

faut dire que je ne fais du python "que" sur la numworks !!

Posté par
Nelcar
re : python 28-02-21 à 17:41

je ne sais pas pourquoi mais la touche </> ne va pas c'est comme une fois sur deux j'ai la douche puissance. Bizarre
j'ai fait ça :
# Créé par Utilisateur, le 05/02/2021 avec EduPython
from lycee import *
def suite():
    U=4
    N=0
    while U>=10 **-3:
        U=U-(ln(1+U))/(1+U)
        N=N+1

resultat=suite()
print(resultat)

et en bas j'ai
...module lycee actif....
None
>>>

MERCI

Posté par
mathafou Moderateur
re : python 28-02-21 à 18:14

le code que tu avais mis à 12:22 marche très bien

celui ci de 17:41 ne marche évidemment pas puisque la fonction n'a pas de return
donc ne renvoie rien (none = rien en anglais)

pour le bouton code :
(... fausses manips dans le site ...) disais-je
on clique sur ce bouton
ça écrit [code][/code]
et le curseur est entre les ] [
là à cet endroit on colle le code copié de Python (copier coller) :

[code]
bla
bla
bla
...
[/code]

et quand on fera Aperçu et quand on postera, ça donnera :


bla
bla
bka
...


c'est comme tous les boutons de formatage de l'ile, mise en gras, mise en exposant, en indices, inclusion de code LateX etc etc
ils fonctionnent tous de la même façon :
on met le texte à formater entre les deux balises sans les modifier ni détruire en quoi que ce soit
et l'effet n'apparait que dans l'aperçu ou une fois le message posté.
évidemment si on détruit un crochet ou un bout des mots clés ça ne marche pas !!

Posté par
Nelcar
re : python 28-02-21 à 18:29

je viens de faire celui ci et ça marche aussi
[codefrom lycee import *
def suite():
    U=4
    N=0
    while U>=10**-3:
        U=U-(ln(1+U))/(1+U)
        N=N+1
    return(N)

print(suite)][/code]

et dans la console

>>> suite()
14


MERCI BEAUCOUP
(ici la touche a fonctionné mais ne fonctionne pas toujours)

Posté par
mathafou Moderateur
re : python 28-02-21 à 19:14

SANS DETRUiRE LES BALISES
le code ENTRE les balises !!!
après le ] de la première et avant le [ de la deuxième (relis comment j'ai montré caractère par caractère)
tu as détruit la balise [code] puisque tu as mis le code entre le mot clé "code" et le ] !!
pas étonnant que ça marche une fois sur deux si tu utilises ça de travers
c'est quasi impossible de placer un curseur entre deux caractères soi même sur un écran tactile ..
il faut laisser faire le logiciel :
d'abord cliquer et ensuite sans rien faire d'autre coller
le curseur est DEJA au bon endroit. si on essaie de le (re)mettre soi même au bon endroit c'est mission impossible avec les doigts sur l'écran, déja à la souris ce n'est pas facile...
autre méthode :
coller d'abord le texte, puis le sélectionner, et ensuite cliquer sur le bouton

bon, passons ...
revenons à l'exo.

print(suite) ne sert à rien et ne marche pas : la variable suite n'existe pas, c'est la fonction suite() qui existe

c'est print(suite())

mais encore une fois fois c'est :
OU BIEN ce print(suite()) dans le module
OU BIEN la commande suite() en ligne de commande
ça ne tient pas debout de faire les deux

enfin :

ty59847 @ 28-02-2021 à 12:00

...
Une fonction, tu as déjà croisé des fonctions en cours de maths, c'est de la forme f(x) ... il y a une variable entre les parenthèses.
Ici, tu devrais avoir
def suite(p):
Et bien sûr, il y a du coup 1 ou 2 petits changements dans le reste.


from lycee import *
def suite(p):
    U=4
    N=0
    while U>=10**-p:
        U=U-(ln(1+U))/(1+U)
        N=N+1
    return(N)


et l'appel :
pour avoir à 10-2 ou à 10-3 ou à 10-5 etc:

>>> suite(2)
13
>>> suite(3) (
14
>>> suite(5)
15

etc

Posté par
Nelcar
re : python 28-02-21 à 19:34

dans l'algorithme il y avait bien sur la ligne while p donc je crois que je vais opter pour cette solution comme réponse. Je ne savais pas ce que tu voulais dire par des fonctions croisées, j'ai déjà fait des tableaux à double entrées.

dans le dernier python que tu as mis
donc dans la console on met suite (puis le chiffre qui indique le nombre de zéro) c'est ça
comme ici on cherche pour 0,001 donc suite(3)

MERCI

Posté par
mathafou Moderateur
re : python 28-02-21 à 19:41

tu as deja croisé des fonctions
= tu as deja rencontré des fonctions ...

Posté par
Nelcar
re : python 01-03-21 à 09:35

Bonjour Mathafou,

non je ne sais même pas ce que ça veut dire (croisé ou rencontré des fonctions)

Merci de ton aide très précieuse car python je ne maîtrise pas.

MERCI BEAUCOUP

Posté par
mathafou Moderateur
re : python 01-03-21 à 10:33

tu ne comprends pas ce que veut dire rencontrer quelqu'un, croiser quelqu'un dans la rue etc
???
tu as un problème de langue française là !

Posté par
Nelcar
re : python 01-03-21 à 12:48

si mathafou, je sais quand même ce que c'est que rencontrer quelqu'un (malgré que je ne suis pas bonne en français)
mais je ne comprenais pas ce que tu voulais dire par croisé des fonctions.

MERCI
(petite question ce site est pour les maths, ne connais-tu pas un site pour la philo par hasard)



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 !