Algorithmique

Bonjour j'ai un dm d'algo à faire en utilisant le langage PYTHON.
Mais vraiment après avoir réfléchi et fait quelque chose au brouillon rien ne passe, si quelqu'un peut m'aider. Ci-dessous vous trouverez mes recherches ainsi que le sujet.
voici l'énoncé.

D'après un arrêté du 4 juin 2009, une marge d'erreur doit être déduite de la vitesse enregistrée sur un radar. Sont déduits, lors d'un contrôle de vitesse :
- 5 km.h-1 pour un radar à poste fixe jusqu'à 100 km.h-1
- 5% de la vitesse au delà.
Questions.
a) Écrire un algorithme qui affiche la vitesse retenue après avoir saisi en entrée la vitesse enregistrée pas le radar.
b) Améliorer l'algorithme précédent de façon à ce qu'il indique s'il y a infraction ou non au code de la route après avoir saisi la vitesse maximale autorisée.

Merci d'avance.
Voilà le début de mes recherches.
A) Variable: X: réel 
Début : 
      Saisir X    
      Si X<=100 alors 
                   X prend la valeur X-5 
      Sinon X prend la valeur X-(1/20)X 
  FinSi 
   Afficher X 
Fin

C'est un début d'algo mais qui n'est pas du langage python !
«13

Réponses

  • L'algorithme écrit correspond bien à ce qui est demandé.

    Est-ce justement le script en langage Python que tu demandes ?
    Là, comme ce n'est pas explicite dans ta demande, je m'interroge.

    Si c'est le cas, des intervenants vont arriver :-)
  • Bonjour,

    1) Que fait ceci dans le forum de géométrie ?
    2) Quel est ton problème en Python ?

    Cordialement,

    Rescassol
  • bonjour mon problème c'est que je suis en seconde et que je n'ai jamais utilisé python du coup je ne sais pas comment faire cet algorithme.
    je ne connais rien des scripts etc...
  • si quelqu'un peut m' aider avec le langage python svp
  • Bonsoir,

    Peut-être que tu as eu quelques cours en seconde ?

    Rappel: ici on peut aider, mais on ne fait pas le boulot à la place des gens.
    Donc, montre tes débuts de recherche.

    Cordialement,

    Rescassol
  • mes débuts de recherches sont juste en haut.
    mais ils sont ci dessous aussi:
    question A:
    A) Variable: X: réel 
    Début : 
          Saisir X    
          Si X<=100 alors 
                       X prend la valeur X-5 
          Sinon X prend la valeur X-(1/20)X 
      FinSi 
       Afficher X 
    Fin
    
  • Bonsoir,

    Ce que tu as écrit est du pseudo-code, pas du Python. Le langage Python en version 3, c'est-à-dire la dernière, ressemble à ceci :
    rép = input("Plllllease!.. ")
    a = int(rép) # Conversion chaîne de caractères vers entier
    
    if a >= 2:
        print("Cas 1")
    elif a == 0:
        print("Cas 2")
    else:
        print("Cas 3")
    

    Voir par exemple le tutoriel Python 3 officiel. Vous avez sans doute fait des choses comme ça en cours.

    Joyeux Noël !
  • nous il faut resoudre cet exercice avec le logiciel edupython
  • je ne sais pas si on trouve ce langage python avec le logiciel edupython
  • D'après ce que je lis sur edupython.tuxfamily.org, EduPython contient un interpréteur Python 3, un éditeur (pour écrire le code Python) et des modules pour les élèves, tels que le module 'lycee' (avec des noms de fonctions en français, hum hum...). Donc tout indique que la réponse à ta question est oui. Quand on clique sur l'onglet Présentation de edupython.tuxfamily.org, il y a des exemples dont un commence comme ceci :
    from lycee import *
    
    x = demande("Entrer un nombre")
    
    if x != 2:
        ...
    

    As-tu essayé ce genre de choses ? Évidemment, il faut — si cela n'a pas déjà été fait — télécharger et installer EduPython si tu veux l'utiliser (voir Téléchargement sur edupython.tuxfamily.org) : ce n'est pas une application en ligne.
  • donc cela veut dire que la réponse A est juste ?
    rép = input("Plllllease!.. ")
    a = int(rép) # Conversion chaîne de caractères vers entier
    
    if a >= 2:
        print("Cas 1")
    elif a == 0:
        print("Cas 2")
    else:
        print("Cas 3")
    
  • Ta réponse A n’est pas compréhensible par un interpréteur de Python donc je doute qu’elle soit juste. :-D
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • et ben je ne comprends pas
  • Penses-tu que ceci soit un script Python ?
    Variable: X: réel 
    Début : 
          Saisir X    
          Si X<=100 alors 
                       X prend la valeur X-5 
          Sinon X prend la valeur X-(1/20)X 
      FinSi 
       Afficher X 
    Fin
    
    Ideone n’est pas d’accord.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • je vais essayer d'en refaire un...
  • si je comprends bien je dois traduire ce langage de base en langage edupython ?
  • je parlais de ce langage de base ;
    A) Variable: X: réel 
    Début : 
          Saisir X    
          Si X<=100 alors 
                       X prend la valeur X-5 
          Sinon X prend la valeur X-(1/20)X 
      FinSi 
       Afficher X 
    Fin
    
  • Voilà mon avancement sur edupython ;
    from math import*
    vitesse=x
    if x>=100:
    x=x-5
    else:
        x=x-(1/20)x
    print(x)
    
  • Essaie avec la balise code (Le rectangle entre les guillemets de citation et l’alignement à gauche), on verra mieux ton script.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • from math import*
    vitesse=x
    if x>=100:
        x=5-x
    else:
        x=x-(1/20)x
    print(x)
    
    Est-ce que cela est mieux ?
  • je ne comprends pas j'ai mis l'alignement à gauche sur edupython mais voila le résultat :-P
  • from math import*
    vitesse=x
    if x>=100:
           x=5-x
    else:
           x=x-(1/20)x
    print(x)
    
  • je ne trouve pas la balise code et nous avons jamais utilisé cette balise si vous pouvez m'expliquer
  • quand je tape mon algorithme sur le logiciel il me dit qu'il y a une erreur sur la ligne 4 ainsi que la 6 mais impossible de trouver cette erreur si vous pouvez m'aider
  • Voici la balise « code » et ce que cela donne quand on la clique.82876
  • d'accord ok mais à quoi sert cette balise code ?
  • from math import*
    vitesse=x
    if x>=100:
    x=5-x
    else:
    x=x-(1/20)x
    print(x)

    est ce que quelqu'un peut me dire ce qu'il ne va pas sur cet algorithme pour la question A
  • Ça sert à afficher le code littéralement, en conservant notamment les indentations qui sont indispensables en Python.
    from math import *
    vitesse=x
    if x>=100:
        x=5-x
    else:
        x=x-(1/20)x
    print(x) 
    
    Ce qui ne va pas, par dessus tout, c'est que tu confonds $x-5$ et $5-x$, alors que tu l'écrivais correctement dans tes premiers posts.
  • À quoi sert vitesse=x ?
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • la vitesse sert à controler un dépassement par exemple au-delà des 100 km/h donc celle ci est aussi enregistrée sur un radar.
  • Je me suis trompée c'est x-5 autant pour moi.
  • J'ai essayé d'améliorer l'algorithme A est-ce correct ?
    from math import*
    int(input("entrer la vitesse :"))
    if x>=100:
            [x=x-5]
    else:
           [ x= x-("1/20")-x]
    
    print(x)
    
    PS. J'ai rajouté un - à la 6e ligne.
  • Ta première ligne est syntaxiquement incorrecte.
    La variable x n’est pas définie.
    As-tu essayé ton code dans ideone.com ?
    Par ailleurs, tu devrais utiliser la balise code pour qu’on puisse corriger ton script.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • je suis désolée mais je n'arrive pas à utiliser cette balise code comment faire ?
    vous ne pouvez donc pas me corriger
  • voici une capture d'écran82880
  • voici le premier qui me parait plus juste82892
  • Non, ça ne va toujours pas.

    Tu fais des opérations sur une variable x mais cette variable n'est pas définie (note qu'avant, elle l'était mal, ça ne marchait pas). Tu demandes la vitesse à l'utilisateur, tu transforme sa réponse en entier et tu ne stockes pas le résultat. Comment le processeur pourrait-il deviner que tu veux appeler x cette quantité ? Il te faut revoir la syntaxe de l'instruction "input".

    Au passage, c'est une drôle d'idée de faire de la réponse un entier si tu veux la multiplier par 5 %, il vaudrait mieux en faire un flottant (float). Ce n'est pas important si tu travailles avec Python 3.

    Quand tu écris « x-("1/20")-x », tu essaies de faire des opérations impossibles : retrancher une chaîne de caractères ("1/20") d'un entier (x) au lieu d'un nombre flottant (ce que serait 1/20 sans guillemets, du moins si tu travailles en Python 3) ; ensuite, tu as perdu toute trace du produit.

    Au passage, plutôt que calculer $x-\frac1{20}x$, tu ne vois pas une expression plus simple avec deux opérations au lieu de trois et une seule occurrence de $x$ ?

    Il est impératif de mettre des indentations en Python et il serait beaucoup plus facile pour nous de lire si tu copiais-collais entre les balises [code ] et [/code ] (sans espaces avant les crochets fermants).
  • alors là je suis perdue...
  • tout est faux je ne comprends plus rien...
  • si quelqu'un veut bien tout m'expliquer en détails parce que chaque algorithme est faux :-S
  • est ce que c'est possible d'avoir la correction de l'algorithme A parce que meme avec toutes mes recherches cet après-midi impossible de trouver un algorithme correct...
    comme ça je pourrais faire la question 2 seule car sans aide pour la A impossible de faire la B
    merci
  • Es-tu capable d’expliquer chaque ligne de ton script ? C’est la première chose à faire.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Est-ce que tu lis les réponses qui te sont faites dans ce fil ? Par exemple les réponses ici et sur les balises « code » (que je complète ci-dessous par une capture d'écran de cette réponse) et ici sur ton algorithme A ?82896
  • re bonjour oui j'ai bien tout lu mais je ne comprends pas
  • Le probleme c'est que j'ai fait l'effort d'essayer de comprendre cet algorithme mais personne ne me dit quelles sont mes erreurs et si cet algorithme est juste ou pas meme si je sais qu'il est faux...
  • Bonjour,
    Je vous ai répondu hier par message privé.
    Bonne journée,
    Aline
  • if V>100
    V= 0.95*V
    else:
        V=V-5
    if V<Vmax
    print("OK pas d'infraction")
    else:
    print("vous êtes en infraction de")
    print(V-Vmax)
    print("km")
    
    Voici mon avancement.
  • Par exemple pour la 1° partie :
    #--- vitesse  ----------------------------------------------------
    #---                                                             -
    #---      controle de vitesse                                    -
    #-----------------------------------------------------------------
       
    v_radar = int(input("entrer la vitesse : ")) #-- saisie de la vitesse radar
    if v_radar <= 100 : #-- test de la vitesse 
            v_retenue = v_radar - 5
    else:
            v_retenue = v_radar * 95 / 100
    
    print(v_retenue)
    
  • Et version améliorée (1° partie) : permet de tester plusieurs vitesses sans relancer l'exécution du programme
    #--- vitesse  ----------------------------------------------------
    #---                                                             -
    #---      controle de vitesse                                    -
    #-----------------------------------------------------------------
     
    v_radar = int(input("entrer la vitesse (0 pour quitter : )"))
    
    while v_radar > 0 : #-- permet de tester plusieurs vitesses   
       if v_radar <= 100 : #-- test de la vitesse 
            v_retenue = v_radar - 5
       else:
            v_retenue = v_radar * 95 / 100
    
       print("vitesse retenue", v_retenue)
       v_radar = int(input("entrer la vitesse (0 pour quitter : )"))
    
Connectez-vous ou Inscrivez-vous pour répondre.