Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Programmation sur Edupyton 1re generale

Posté par
Tropicale
14-09-19 à 18:13

bonjour , je suis en 1re et j'ai un exercice a faire pour lundi j'aimerai de l'aide s'il vous plait et une explication claire .
Exercice:
je dois donner un algorithme (et le programmer en Python) pour résoudre le problème suivant :
Trouver le plus petit entier naturel x tel que f(x)=17 où f(x) = 205x+5 divisé par x au carré  +1

merci pour toutes les personnes qui m'aideront

Posté par
pgeod
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:22

x= 0 , f(0) = 5
ce n'est pas égal à 17, donc on continue
x = 1, f(1) = 105
ce n'est pas égal à 17, donc on continue
etc...

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:22

salut,
tu as probablement entendu parler de fonction en informatique l'an dernier ?

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:26

pgeod
BONJOUR OUI mais moi je veut de l'aide pour realiser un programme svtp

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:27

alb12, bonsoir oui un peu  mais j,'ai beaucoup de mal en programmation

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:31

peux tu ecrire la fonction PlusPetitEntier ?


def f(x):
    return (205*x+5)/(x*x+1)

def PlusPetitEntier():
    x=??
    while ??:
        ??
    return x

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:33

pgeod
bonsoir oui cela je sais faire mais c'est le faites de devoir  programmer qui me pose probleme  je ne sais pas par quoi commencer pour realiser mon programme

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:36

tant que tu n'auras pas essaye qqchose on ne pourra pas t'aider

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:36

alb12
donc en gros je met
def f(x):
    return (205*x+5)/(x*x+1)

def PlusPetitEntier(n):
    n=17
    x=1
    while ??:
        ??
    return x

je sais pas du tous comment faire (par quoi remplir les casses vides )

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:40

def f(x):
    return (205*x+5)/(x*x+1)

def PlusPetitEntier(n):
    x=15
    while ??:
        refaire
    return x
je sais que c'est quand x vaut 15 que je trouve un entier naturel >17

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:41

la fonction n'a pas d'argument donc rien dans ()
l'entier c'est x pas de n dans ce programme


tant que f(x) est different de 17 faire
        faire quoi ? 

A traduire en python

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:46

pgeod
pourrais tu m'aider afin de mettre cela en language pyton s'il te plait
merci d'avance

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:47

je ne suis pas d'accord c'est presque termine
essaie pour nous prouver que tu cherches

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:49

alb12 @ 14-09-2019 à 18:41

la fonction n'a pas d'argument donc rien dans ()
l'entier c'est x pas de n dans ce programme

tant que f(x) est different de 17 faire
        faire quoi ? 

A traduire en python

d'accord je comprends un peu mieux je pense que tant que f(x) n'est pas différent de 17 il faut répéter l'opération jusqu'à trouver  je crois que sa s'appelle (refaire une boucle )

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:52

je pense qu'il faut faire ;
    while f(x)>17:
           x=x+1

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:54

tant que f(x) est different de 17 faire (facile à traduire en python)
faire quoi ? (il faut repeter le calcul pour x=0 puis 1 puis 2 etc cad à chaque tour de boucle remplacer x par l'entier qui suit)

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:56

Tropicale @ 14-09-2019 à 18:52

je pense qu'il faut faire ;
    if f(x)>17:
           x=x+1

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 18:58

bon on y est presque (while pas if) mais different ne s'ecrit pas >

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:00

while f(x)>17
     x=x+1
    print(x)

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:00

alb12 @ 14-09-2019 à 18:58

bon on y est presque (while pas if) mais different ne s'ecrit pas >

attend je crois savoir

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:02

Tropicale @ 14-09-2019 à 19:00

while f(x)!=17
     x=x+1
    print(x)

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:03

bon je n'ai pas tout vu, on reprend
on demarre avec x à 0
tant que f(x) est different de 17 faire
remplacer x par x+1
retourner x

on essaie encore une fois ?

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:09

Tropicale @ 14-09-2019 à 19:02

Tropicale @ 14-09-2019 à 19:00

while f(x)!=17
     x=x+1
    print(x)

est ce juste cela ?

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:11

return x pas print

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:18

donc
def f(x):
    return (205*x+5)/(x*x+1)

def PlusPetitEntier():
    while f(x)!=17
        x=x+1
    return x

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:22

ok bon travail


def f(x):
    return (205*x+5)/(x*x+1)

def PlusPetitEntier():
    x=0
    while f(x)!=17:
        x+=1 # ou bien x=x+1
    return x


A tester sur ton logiciel favori.

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:25

merci en tous cas pour votre aide

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 14-09-19 à 19:40

alb12 @ 14-09-2019 à 19:22

ok bon travail

def f(x):
    return (205*x+5)/(x*x+1)

def PlusPetitEntier():
    x=0
    while f(x)!=17:
        x+=1 # ou bien x=x+1
    return x


A tester sur ton logiciel favori.



pourquoi cela ne fonction lorsque je copie ce programme pour le mettre sur edupyton lors ce que je clique sur executer le programme ca me met "SYNTAXE Error "

Posté par
mathafou Moderateur
re : Programmation sur Edupyton 1re generale 14-09-19 à 20:45

Bonjour,
pas de syntax error chez moi en copiant collant directement tel quel sans rien taper (source d'erreurs de recopie).
par contre pour le lancer ne pas oublier d'appeler la fonction avec PlusPetitEntier() en ligne de commande pour qu'elle s'exécute !
lancer juste le programme ne fait rien du tout tout à part juste définir deux fonctions sans les utiliser.

je voudrais signaler un loup grave

rien ne dit à priori que un tel entier existe (pour lequel f(n) serait égal exactement à 17)
il pourrait bien y avoir la succession de valeurs 5, 11, 13.4, 17.5 etc sans jamais obtenir exactement 17
il est donc nécessaire de poser un garde fou pour éviter le risque de boucle infinie parcourant désespérément l'ensemble des nombres entiers sans fin
donc un truc du genre
tant que f(x) ≠ 17 et x < une limite fixée
et tout à la fin si x ≥ cette limite cela veut dire que dans cet intervalle on n'a pas trouvé

ensuite cette valeur de 17 qui sort d'un chapeau , on pourrait avoir intérêt à la mettre en paramètre de la fonction PlusPetitEntier()

PlusPetitEntier(n) :
      ...
      while f(x)!=n ...
              ...


et l'appel ici par PlusPetitEntier(17)

la limitation de x au cas où f(x) ne serait jamais égal exactement à n en serait d'autant plus nécessaire ...

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 21:38

oui mais 17 est donne donc mettre n en argument ne s'impose pas ici.
quant à la boucle infinie c'est peut etre ce qui est prevu lors de la correction.
si Tropicale en fait trop, son prof va suspecter un gros coup de pouce
en tout cas ce serait mieux de demander aux eleves d'essayer avec 18 et de les laisser commenter ce qu'il se passe, il faudrait que la correction du code viennent des eleves pas du prof.

Posté par
alb12
re : Programmation sur Edupyton 1re generale 14-09-19 à 21:41

notons au passage que la resolution de f(x)=17 a peut etre ete faite.
Une erreur de syntaxe, laquelle ?

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 15-09-19 à 10:38

Bonjour le souci c'est que sa me sort aucun resultat du coup je comprend pas trop

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 15-09-19 à 10:41

SyntaxeError:invalidv syntaxe (line4,offset22): def Plus petit entier(17)

voila le message qui s'incrit lorsque je marque ce que tu m'as dit mathafou

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 15-09-19 à 10:44

normalement on devrais m'inscrire le resultat en bas en ecrivant x mais rien ne s'inscrit je suis assez décu :

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 15-09-19 à 10:46

Puis lorsque je clique sur verifier la sytaxe ca me met "syntaxe correcte " c'est seuleument quand j'ecris en bas x ca me met error

Posté par
mathafou Moderateur
re : Programmation sur Edupyton 1re generale 15-09-19 à 10:57

c'est faux tu n'as pas copié collé le programme d'ici dans Python
tu l'as retapé en faisant des erreurs de saisie

ce n'est pas
Plus petit entier
mais
PlusPetitEntier() en un seul mot sans espaces

et sans préjuger d'autres erreurs de saisie du même genre ...

Posté par
alb12
re : Programmation sur Edupyton 1re generale 15-09-19 à 12:16

Quel est ton pb ?

Programmation sur Edupyton 1re generale

Posté par
alb12
re : Programmation sur Edupyton 1re generale 15-09-19 à 14:02

je reviens sur l'idee d'un garde fou de mathafou
je verrais:
1/ montrer que si x>20 alors f(x)<11 (sans resoudre d'inequation, par majoration de f(x))
2/ completer le pgm suivant:


def f(x):
    return (205*x+5)/(x*x+1)

def PlusPetitEntier():
    for x in range(??):
        if f(x)==??:
            return x
    return "pas de solution" # ou mieux return []

Posté par
Tropicale
re : Programmation sur Edupyton 1re generale 15-09-19 à 14:44

Merci en tous cas pour votre aide

Posté par
alb12
re : Programmation sur Edupyton 1re generale 15-09-19 à 15:22

tu as reussi ?



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