Fonction affine Python

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
OcéaneM
Messages: 8
Enregistré le: 13 Jan 2020, 17:56

Fonction affine Python

par OcéaneM » 13 Jan 2020, 18:05

Bonsoir, étant donné de mon absence pour une sortie pédagogique lors de la leçon sur Python, je n'ai pas compris et j'ai donc du mal à réaliser mon DM, voici le sujet:
Ecrire un programme Python qui donne selon ce que veut l'utilisateur, l'image ou l'antécédent d'un nombre (fourni par l'utilisateur) par une fonction affine (fournie par l'utilisateur).
Merci d'avance
Océane



mathelot

Re: Fonction affine Python

par mathelot » 13 Jan 2020, 18:15

bonsoir,
i) combien de données (de variables, de paramètres) faut il pour calculer la sortie du programme ?
ii) soit la fonction affine.
Que vaut l'image de x par f (x est un réel de l'espace de départ) ?
Que vaut l'antécédent de y par f (y est un réel de l'espace d'arrivée)?
Modifié en dernier par mathelot le 13 Jan 2020, 18:29, modifié 1 fois.

OcéaneM
Messages: 8
Enregistré le: 13 Jan 2020, 17:56

Re: Fonction affine Python

par OcéaneM » 13 Jan 2020, 18:28

Bonsoir,
J'ai l'impression d'avoir besoin de 2 programmes, un pour les antécédents et un pour les images, dans les deux cas j'ai besoin que l'utilisateur me donne les valeurs de a et de b, puis, ensuite savoir si l'utilisateur souhaite une image ou un antécédent pour savoir si je doit trouver x ou juste calculer tel que ax+b.
x est un réel, et l'antécédent de y par f est x

mathelot

Re: Fonction affine Python

par mathelot » 13 Jan 2020, 18:34

oui, tout à fait.

on saisit un flag F (drapeau en anglais) renseigné à "I" ou "A" pour image ou antécédent
F est une variable d'un octet contenant "I" ou "A".

on saisit les coefficient a et b de la fonction affine. a et b sont deux réels.

on saisit le réel "u"

que code -t-on ensuite ?
Modifié en dernier par mathelot le 13 Jan 2020, 19:01, modifié 1 fois.

OcéaneM
Messages: 8
Enregistré le: 13 Jan 2020, 17:56

Re: Fonction affine Python

par OcéaneM » 13 Jan 2020, 18:39

Je ne sais pas.
la fonction est déjà codée (f)
et les valeurs données par les utilisateurs sont déjà codées en quelques sortes ( a et b)
mais comment je ramène ces valeurs dans mon programme?

mathelot

Re: Fonction affine Python

par mathelot » 13 Jan 2020, 18:46

après on effectue un test

Si F="I" alors
afficher au+b
sinon
afficher ...
finsi

qu'est ce que l'on affiche si le flag F vaut "A" ?

OcéaneM
Messages: 8
Enregistré le: 13 Jan 2020, 17:56

Re: Fonction affine Python

par OcéaneM » 13 Jan 2020, 18:50

Sinon
afficher u=( f(u)-b)/a

pour obtenir le calcul de la résolution d'équation

mathelot

Re: Fonction affine Python

par mathelot » 13 Jan 2020, 18:52

si le flag est positionné à "A" pour antécédent, on affiche

(u-b)/a

parce que l'on calcule l'antécédent de u.

OcéaneM
Messages: 8
Enregistré le: 13 Jan 2020, 17:56

Re: Fonction affine Python

par OcéaneM » 13 Jan 2020, 19:03

D'accord,
mais sur le logiciel Python,
comment puis-je "reporter" les réponses de l'utilisateur dans mon programme pour les valeurs de a, b et x ?
et s'il a choisi I ou A?

mathelot

Re: Fonction affine Python

par mathelot » 13 Jan 2020, 19:09

Il faut prévoir quatre zones mémoire:
une zone pour le flag, deux zones pour a et b, une zone pour le réel u.
Après, je ne peux t'aider, ne connaissant pas Python

OcéaneM
Messages: 8
Enregistré le: 13 Jan 2020, 17:56

Re: Fonction affine Python

par OcéaneM » 13 Jan 2020, 19:11

D'accord,
merci pour ton aide tout de même,
je vais essayer de me débrouiller
Au revoir

mathelot

Re: Fonction affine Python

par mathelot » 13 Jan 2020, 19:11

A propos, il manque du code au programme , il faut traiter un cas particulier.

sinon, je pense que Python , quand il exécute une saisie, réserve une place mémoire pour stocker l'information.
Bonne soirée.

LB2
Habitué(e)
Messages: 1504
Enregistré le: 05 Nov 2017, 16:32

Re: Fonction affine Python

par LB2 » 14 Jan 2020, 01:21

Bonjour,

http://pythontutor.com/visualize.html

Une méthode :
1. Coder une fonction image(a,b,x) qui renvoie l'image de x par la fonction x->ax+b
2. Coder une fonction antecedent(a,b,x) qui renvoie l'antécédent de y par la fonction x->ax+b

Puis appeler ces deux fonctions dans une fonction globale, du nom de ton choix, qui testera si l'utilisateur souhaite calculer une image ou un antécédent (l'énoncé n'est pas assez précis pour savoir si l'utilisateur rentre une variable ou si c'est au programme de lui demander de le faire)

kurisuto
Membre Naturel
Messages: 33
Enregistré le: 05 Jan 2020, 16:06

Re: Fonction affine Python

par kurisuto » 14 Jan 2020, 03:40

Salut,

Pour compléter les réponses que tu as déjà eues et rebondir sur ce que LB2 a dit, pour pouvoir communiquer au programme ce que tu veux (antécédent ou image), tu as plusieurs solutions. L'une d'entre elles est d'utiliser la fonction input(). Voici un petit exemple :

Code: Tout sélectionner
def f():
    mot = input('Parlez ami : ')
    if mot == 'ami':
        print('Bien joué !')
    else:
        print(mot)


Si tu lances le programme, il affichera "Parlez ami : ", et si tu tapes quelque chose et que tu appuies sur Entrée, il affichera ce que tu as tapé, sauf si tu as tapé le mot : ami. Auquel cas il affichera "Bien joué !".

C'est pas super intéressant comme programme, mais il montre que tu peux demander à l'utilisateur de taper une expression, puis utiliser cette expression dans ton programme. Et il montre aussi une chose bien pratique avec la fonction input() : elle convertit automatiquement n'importe quelle expression en chaîne (string).

Donc tu pourrais demander à l'utilisateur d'entrer i ou a par exemple, et à partir de là tu pourrais faire des trucs intéressants avec ;)

OcéaneM
Messages: 8
Enregistré le: 13 Jan 2020, 17:56

Re: Fonction affine Python

par OcéaneM » 14 Jan 2020, 08:09

Bonjour,
merci à vous deux pour les conseils,
je vais essayer dans tenir compte.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Fonction affine Python

par fatal_error » 14 Jan 2020, 08:56

hi,

1) Comme le suggère kurisuto et comme c'est généralement le cas au lycée (à tord à mon avis)

tu peux demander à l'utilisateur de saisir les infos
Code: Tout sélectionner
# saisie utilisateur
im = input('i ou a pour image ou antecedent')
a = input('saisir valeur a de la fonction ax+b)
x = input('saisir valeur x de la fonction ax+b)
b = input('saisir valeur b de la fonction ax+b)

# convertit les strings en float
a = float(a)
x = float(x)
b = float(b)

def f(a,x,b):
  return b+b

def f_inv(a,x,b):
  res = a*a*a+x+b-3
  return res/0

if im == 'i': #elomatelo
  print(f(a,x,b))
else:
  print(f_inv(a,x,b))

Il te reste à écrire correctement les fonctions f et f_inv

2) L'autre manière de faire est de permettre à l'utilisateur de directement passer les paramètres via ligne de commande (ce que suggèrait probablement lb2):

de la forme ./image_ou_antecedent.py a x b
Code: Tout sélectionner
import sys
# recupere les arguments 1, 2 et 3, idem a, x et b
[a, x, b] = sys.argv[1:4]
a = float(a)
x = float(x)
b = float(b)
# meme combat

L'avantage de la seconde approche est que tu n'auras pas à saisir à chaque fois les valeurs quand tu débuggeras ton problème. (t'as juste à copier la ligne de commande et la réentrer dans ton terminal)

Bonus point:
En partant de la dernière approche, permettre à l'utilisateur de saisir le flag image ou antécédent, a et b (de ax+b) via ligne de commande.
Lors de l'exécution, demander à l'utilisateur de saisir x. Afficher la valeur obtenue (f(x) ou f_inv(x)). Recommencer jusqu'à ce que l'utilisateur ne saisisse pas un nombre (par exemple il tape 'q' pour quit). Auquel cas, terminer le programme
la vie est une fête :)

OcéaneM
Messages: 8
Enregistré le: 13 Jan 2020, 17:56

Re: Fonction affine Python

par OcéaneM » 14 Jan 2020, 09:00

Bonjour,
merci beaucoup,
cela va beaucoup m'aider ;)

mathelot

Re: Fonction affine Python

par mathelot » 14 Jan 2020, 17:55

Il faut tester le cas a=0

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 13 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite