Rédiger un algorithme


  • V

    Bonsoir à tous

    Un cinéma propose 3 modes de paiement des séances :
    Formule 1 : on paie 10€ la séance
    Formule 2 : on paie une carte de réduction de 30€ qui permet d'acheter les places au tarif réduit de 5€ la place
    Formule 3 : on achète une carte pass de 90€ qui permet d'assister à toutes les séances pendant 1 an

    Je dois rédiger un algorithme affichant la formule la plus avantageuse et son montant lorsque l'on saisit le nombre annuel de séances.

    Je commence à peine les algo et je n'y comprends rien

    pouvez vous m'aider
    merci à vous


  • Zorro

    Bonjour,

    Avant de commencer à essayer de faire un algorithme, comment ferais tu à la main ?

    Quel serait le prix P1 de x places avec la formule 1 ?

    Quel serait le prix P2 de x places avec la formule 2 ?

    Quel serait le prix P3 de x places avec la formule 3 ?


  • V

    Formule 1 : 10€* 365 jours = 3650 € pour 1 an
    Formule 2 : 5€ *365 jours + 30 = 1855 € pour 1 an
    Formule 3 = 90 €


  • Zorro

    La personne ne va pas tous les jours au cinéma !

    Elle y a va x fois !


  • V

    Prix pour la formule 1 = 10x
    Prix pour la formule 2 = 5
    x+30
    Prix pour la formule 3 = 90


  • Zorro

    Oui P1 = 10x
    P2 = 5
    x + 30
    P3 = 90

    Donc maintenant on essaye de comprendre comment fonctionne un algorithme

    On va demander à une machine de nous dire quelle formule est la plus avantageuse pour x séances , le nombre x étant précisé à la machine qui doit nous aider !

    Un algorithme à une structure générale :

    Déclaration des variables nécessaires à sa résolution

    Saisie de(s) donnée(s) nécessaire(s) à son déroulement

    Traitement (calculs , tests , boucles etc ....)

    Affichage du résultat.

    Avec ce que tu as vu en cours aurais-tu une idée à proposer ?


  • Zorro

    Au fait les réponses sur P1 ,P2 et P3 tu les avais eues sur 2 autres forums : l'île et Futura Forums !

    Alors me donner Formule 1 : 10€* 365 jours = 3650 € pour 1 an
    Formule 2 : 5€ *365 jours + 30 = 1855 € pour 1 an
    Formule 3 = 90 € ??????


  • V

    Variables
    F pour Formules
    M pour montant

    Entrées
    Saisir F et M

    Traitement


  • Zorro

    Les formules ne sont pas à saisir !

    Elles sont connues et en plus ce ne sont pas nombres mais des phrases avec lesquelles la machine ne peut rien faire ?

    Et tu crois qu'un seul montant sera suffisant pour trouver le prix le plus avantageux ?

    Comment ferais tu à la main ?


  • Zorro

    de plus le montant à payer doit être calculé par la machine pas par la personne qui utilise l'algorithme ! Sinon pourquoi utiliser une machine ?


  • V

    Variables : N entier P prix
    Entrée : saisir N
    Traitement :
    Si N sup 10*x
    alors


  • Zorro

    Au lieu d'essayer n'importe quoi tu pourrais au moins essayer d'être cohérent !

    Dans ton algo , N représente quoi pour toi ?

    Pour quoi il y a 10*x plus loin ?

    Tu quoi vraiment qu'il faut qu'une variable P pour calculer les 3 prix payés ?

    La machine sait faire des calculs du genre Y reçoit la valeur 10*x quand elle connait x !

    Et elle sait comparer des valeurs ......

    Si MACHIN > BIDUL alors ..........


  • V

    Franchement j'essaie de regarder le peu que j'ai commencé en classe mais rien à voir

    j'essaie autre chose :

    Variables
    A,B,C,N : nombre

    Début
    Afficher le nombre de séances

    A prend la valeur 10N
    B prend la valeur 5
    N+30
    C prend la valeur 90

    Si A inf B
    Afficher la formule la plus avantageuse est la formule A

    Si A sup B
    Afficher la formule la plus avantageuse est la formule B


  • Zorro

    Il ne faut pas afficher le nombre de séances, il faut le saisir !

    Et ensuite après les avoir calculés il faut comparer les nombres A avec B et C

    Si A < B et A < C , alors la formule la plus avantageuse est la formule 1

    Si B < A et B < C , alors ........

    Tu continues !


  • V

    Je ne comprends pas comment doit on écrire exactement l'algorihtme

    Variables
    A,B,C, N : nombre

    Début
    Saisir le nombre de séances
    Lire N

    A prend la valeur 10N
    B prend la valeur 5
    N +30
    C prend la valeur 90

    Si A inf B et A inf C
    Alors la formule la plus avantageuse est le formule 1

    Si B INF A et B inf C
    Alors la formule la plus avantageuse est le formule 2

    Si C inf A et C inf B
    Alors la formule la plus avantageuse est la formule 3


  • Zorro

    Il serait préférable d'écrire :

    .....Alors Afficher "la formule est la plus avantageuse est la formule ...."

    Un détail on n'a traité que les cas où A < B et A < C etc ....

    On pourrait raffiner en regardant en cas d'égalité ! Mais bon c'est un bon début pour un début de cours sur les algorithmes !

    Afficher "la formule est la plus avantageuse est la formule ." écrit ce qui est entre "" ""

    Afficher A , afficherait le contenu de la variable A

    Tu vois la différence ?

    Bonne continuation pour la découverte de nouveaux algorithmes ! 😄


  • V

    ai je bon sur le début de mon algo de "Variables à C prend la valeur 90"?


  • Zorro

    Je n'ai pas dit que tu avais fait un erreur sur cette partie !


  • V

    Un détail on n'a traité que les cas où A < B et A < C etc ....
    On pourrait raffiner en regardant en cas d'égalité

    Là je bloque

    je ne sais plus quoi écrire


  • Zorro

    Un détail on n'a traité que les cas où A < B et A < C etc ....

    On pourrait raffiner en regardant en cas d'égalité ! Mais bon c'est un bon début pour un début de cours sur les algorithmes !

    Il ne faut quand même pas demander à un élève d'être un expert en algo lors de son premier cours sue les algorithmes ! 😉


  • V

    Merci à vous pour m'avoir apporté votre aide


  • mtschoon

    Bonjour,

    Un petit complément au besoin.

    Evidemment, ce serait très bien de compléter avec les cas d'égalité, car avec ce programme, si l'utilisateur donne une valeur de x correspondant à une égalité, le programme ne fonctionnera pas.

    Sans rien faire de plus, on peut déjà remplacer les "<" par "≤" .
    Ce ne sera pas parfait car en cas d'égalité le programme donnera qu'une seule bonne réponse, mais il fonctionnera.

    Pour que ce programme "tourne", sur un logiciel de programmation ou une calculette, il faut utiliser les bouclesSi...alors..Sinon... (au lieu des "Si" successifs).

    A toute fin utile, je joins un programme fait avec Algobox (logiciel gratuit à télécharger, souvent utilisé dans l'Education Nationale)

    fichier math

    Bon travail.


Se connecter pour répondre