Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

DM Programme Python

Posté par
Ausha
05-01-19 à 11:00

Bonjour, voici l'énoncé du problème :

On considère la fonction h définie pour tout réel x par :
h(x) = |x2+5x-3| + |2x+1|

   Écrire un programme en langage python qui permette de calculer l'image d'un réel :
le programme demande un nombre, et il l'affiche son image par h.
   (indication: x=float(input("Entrez la valeur du réel x"))
Pour ce programme, on n'utilisera pas la commande "abs" de python.

Voilà, donc je ne sais pas du tout par où commencer, je ne pense même pas comprendre le sujet. Merci.

Posté par
mathafou Moderateur
re : DM Programme Python 05-01-19 à 12:22

Bonjour,

la définition de valeur absolue est

si x ≥ 0 alors |x|=x
sinon |x| =-x

il suffit donc de traduire en langage Python mot à mot cette définition pour le calcul de f(x) avec des "si" (if ... else ...)
il en faudra plusieurs imbriqués

Posté par
mathafou Moderateur
re : DM Programme Python 05-01-19 à 12:22

de h(x)

Posté par
Ausha
re : DM Programme Python 05-01-19 à 18:58

D'accord, c'est un poil plus clair.
Mais pour le coup je suis toujours aussi perdu.

Posté par
Ausha
re : DM Programme Python 05-01-19 à 18:58

(Merci)

Posté par
mathafou Moderateur
re : DM Programme Python 05-01-19 à 19:15

au plus simple et pour éviter des imbrications de "if" (des if dans des if) et de calculer / écrire plusieurs fois la même chose :

h(x) = |x2+5x-3| + |2x+1| = |f(x)| + |g(x)|
en posant f(x) = x2+5x-3 et g(x) = 2x+1

le programme de calcul sera donc
calculer f(x)
en calculer la valeur absolue (c'est là qu'il va y a avoir le if ... )
calculer g(x)
en calculer la valeur absolue (idem, un deuxième if...)
faire la somme pour avoir h(x)

tout ceci se faisant dans des variables appelées tout simplement f, g et h

x=float(input("Entrez la valeur du réel x")) # (c'est dit dans l'énoncé)
# calculer f(x)
f = x*x+5*x-3
# en calculer la valeur absolue
if f ... :
f = ...
# calculer g(x)
...
...

Posté par
Ausha
re : DM Programme Python 05-01-19 à 20:16

Petit précision, je suis très nul en Python et je m'attaque à du nouveau et j'utilise IDLE (Python 3.6.4), désolé je ne pas l'avoir précisé...

Donc j'essaye :

x=float(input("Entrez la valeur du réel x"))
f = x*x+5*x-3
if  f ≥ 0:
x = x
else:
x = -x
g = x + x + 1
if g ≥ 0:
x = x
else:
x = -x

Voilà, donc je ne suis pas du tout sûr

Posté par
Ausha
re : DM Programme Python 05-01-19 à 20:16

Oups, j'ai oublié de faire la suite en plus...

Après je ne sais pas quoi faire.

Posté par
mathafou Moderateur
re : DM Programme Python 05-01-19 à 20:38

dans la définition générale de la valeur absolue "x" est une variable "muette" comme r dans la formule du périmètre d'un cercle etc etc
|x| est +x ou -x
|f| est +f ou -f
|u| est +u ou -u
etc

de plus le signe ≥ n'existe pas, ça s'écrit >=

une des bases fondamentales de Python est l'indentation

if f >= 0:
f = f

erreur de syntaxe

if f>=0:
f = f
else :
f=-f
suite du programme

oui

ceci serait correct (en corrigeant toutes les erreurs précédentes)
mais c'est particulièrement maladroit d'écrire explicitement que on remplace f par f (c'est à dire qu'on ne fait rien)


if f<0 :
f=-f
suite du programme sans aucun else
(sinon on ne fait rien = on laisse f inchangé)


g = x + x + 1 2*x+1 suffisait !!
pour x² je l'ai transformé en multiplication x*x pour éviter de se poser des questions sur la façon d'écrire "puissance"
mais la multiplication, tout de même ...

Posté par
Ausha
re : DM Programme Python 05-01-19 à 21:38

Oui désolé, je suis un peu maladroit pour le coup, j'ai écris ça sous la rapidité, donc je corrige en espérant faire peu de faute.
Donc il est inutile d'écrire le "else" si je comprends bien ?

x=float(input("Entrez la valeur du réel x"))
f = x*x+5*x-3
if f<0:
     f=-f
g = 2*x + 1
if g<0:
    g=-g

Après pour calculer l'image réelle que dois-je faire sous langage python ?

Posté par
mathafou Moderateur
re : DM Programme Python 05-01-19 à 21:43

c'est bon.

ensuite bein c'est quoi h ? ne serait-ce pas juste la somme de f+g ???
c'est aussi simple que que ça !
et pour l'afficher ce sera avec print()
(donc deux lignes de plus et c'est terminé, voire une seule même, juste le print)

Posté par
Ausha
re : DM Programme Python 05-01-19 à 22:24

print(f+g)

? C'est tout ?

Merci en tout cas ! C'est vrai que c'était relativement simple avec du recul, mais sans vous je n'y serais pas arrivé !

Posté par
mathafou Moderateur
re : DM Programme Python 05-01-19 à 22:35

oui
print(f+g) c'est bon

pour faire plus propre on peut écrire
h=f+g
print(h)

(du coup on a la variable h qui contient la valeur si jamais on en a besoin pour autre chose)

Posté par
Ausha
re : DM Programme Python 05-01-19 à 23:04

Merci pour tout ! Bonne soirée !
c'est bien plus clair, moi qui était mauvais en langage Python !
Merci encore !



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 !