Algo

Résolu
Bonjour,
voila j'ai un soucie j'aimerais créer des programme en algo mais je ne sait comment faire alors voila je demande votrz aide comment faire

je voudrais créer un algo qui permettrais de déterminer le maximum de 4 nombre X Y Z et T et aussi un algo bien pratique pour me permettre de décomposé une somme d'argent en billet de 20 10 5 et en piece de 2 et 1 €

aider moi svp
Configuration: Windows Vista
Firefox 2.0.0.17

12 réponses

Résumé de la discussion

Un objectif est de concevoir un algorithme qui détermine le maximum de quatre nombres X, Y, Z et T et un algorithme de décomposition d'une somme en billets et pièces. Des propositions pratiques montrent comment calculer les quantités de chaque billet ou pièce en utilisant des divisions successives par 20, 10, 5, 2 et 1 et en conservant les restes. Certaines réponses mettent en avant un exemple étape par étape avec des variables NB20, NB10, NB5, NP2 et NP1 et illustrent aussi des approches de permutation entre X et Y. D'autres discussions évoquent des variantes liées à des permutations de deux variables et soulignent que des solutions partielles restent utiles même lorsque le but principal n'est pas encore totalement clarifié.

Bobot (l’IA à votre service)
  1. pour le premier j'arrive qu'a le commencer variable et afficher saisir pour le second j'ai déterminer qu'il me fallait dim et mod mais je ne sait pas comment faire?
    1. ok sinon pour une permutation de deux variable sa marche sa je sait pas trop si la forme et correcte mais j'aurais éssayer

      var

      X,Y,Z: réel

      début

      afficher ("entrer X")
      saisir (X)
      afficher ("entrer Y")
      saisir (Y)

      Z = x
      x = y
      y = Z

      afficher ("X :"; Y)

      afficher ("Y :"; x)

      fin
      1. NON PAS ENCORE

        pour les billet voila ce que j'ai fait

        var

        NB20, NB10, NB5, NP2, NP1, somme, reste : entier

        début

        afficher ("entrer somme")
        saisir (somme)

        NB20 (--- somme div 20
        reste (--- somme mod 20
        NB10 (--- somme div 10
        reste (--- somme mod 10
        NB5 (--- somme div 5
        reste (--- somme mod 5
        NP2 (--- somme div 2
        reste (--- somme mod 2
        NP1 (--- somme div 1
        reste (--- somme mod 1

        afficher ("vous aurais :"; somme)

        fin
        1. Modérateur
          Pour le max tu pourra pas boucler, t'as pas de tableau.
          L'idéal:
          _ Tu saisis X et tu fais max = X
          _ Tu saisis Y, si Y > max alors max = Y
          _ et ainsi de suite....
          1. il faut que je le fasse sans tableau sa doit étre possible de le finir sans mais je sait pas comment je vais éssayer de le faire
          2. Modérateur
            @etouiJe viens de te montrer que tu n'en avais pas besoin.
        2. Salut,

          t'es en BTS info ? tu sais pas faire ça ? arretes l'info ...

          1/

          VAR
          x,y,z,t :réels
          DEBUT
          AFFICHER("Valeur pour x :")
          SAISIR x
          AFFICHER("Valeur pour y :")
          SAISIR y
          AFFICHER("Valeur pour z :")
          SAISIR z
          AFFICHER("Valeur pour t :")
          SAISIR t

          SI (x<=y) ALORS
          x = y
          FIN SI

          SI (x<=z) ALORS
          x = z
          FIN SI

          SI (x<=t)ALORS
          x = t
          FIN SI

          AFFICHER ("Plus grande valeur : " + x)
          FIN

          2/

          VAR
          S : entier
          nbVingt,nbDix,nbCinq,nbDeux,nbUn : entiers
          reste : entier
          DEBUT

          nbVingt = 0
          nbDix = 0
          nbCinq = 0
          nbDeux = 0
          nbUn = 0
          reste = S

          AFFICHER("Somme :")
          SAISIR(S)

          SI(S/20<>0)ALORS
          nbVingt = S/20
          reste = S - nbVingt*20
          FSI

          SI(reste/10<>0)ALORS
          nbDix = reste/10
          reste = reste - nbDix*10
          FSI

          SI(reste/5<>0)ALORS
          nbCinq = reste/5
          reste = reste - nbCinq*5
          FSI

          SI(reste/2<>0)ALORS
          nbDeux = reste/2
          reste = reste - nbDeux*10
          FSI

          SI(reste<>0)ALORS
          nbUn = reste
          FSI

          Afficher("S = nbVingt*20+nbDix*10+nbCinq*5+nbDeux*2+nbUn*1")
          FIN

          tcho'
          1. Modérateur
            t'es en BTS info ? tu sais pas faire ça ? arretes l'info ...

            Heu....tu es né en sachant programmer? Tu a commencé tes études en sachant programmer?
          2. @kilian"Heu....tu es né en sachant programmer? Tu a commencé tes études en sachant programmer?"

            Je me dis simplement que celà fait 2 mois que les cours en BTS ont repris ... ce genre d'algo, c'est vu la première semaine ...

            Gardes la pêche ;)
          3. @kilianC'est sûr, pas en BTS Immobilier ...
        3. merci mais je voulais pas forcément les réponses ce que je demander se sont tous simplement des explications

          et non je ne suis pas en bts info mais en 1er stg j'apprends les algo
          1. Ok dans ce cas là, je te prie de m'excuser.

            Dis moi ce que tu n'as pas compris dans les algos que je t'ai fait, je vais t'expliquer.
          2. @Stephane39SURTOUT le premier que je n'ai pas compris le max des 4 nombre j'ai pas compris pourquoi tu fesait sa plus haut j'ai mis un éxo de permutation je ne sait pas si c'est le même principe??
          3. @etouia si je viens de le comprendre en fait c'est tout simple j'aurais pas su le faire sans ton aide mais now je serais le faire j'ai compris le principe merci bcp
          4. @etouiJe pense que c'est cette partie là que tu n'as pas compris ...

            SI (x<=y) ALORS // on teste si x inférieur ou égal à y
            x = y // si c'est le cas la valeur de x on s'en fout et on la remplace par celle de y
            FIN SI // si ce n'est pas le cas, on s'en fout de la valeur de y et x reste x

            // on sort du test avec la plus grande valeur des deux variables x et y, stockée dans x

            //MEME PRINCIPE avec la valeur de x récupérée avant
            SI (x<=z) ALORS
            x = z
            FIN SI

            //MEME PRINCIPE
            SI (x<=t)ALORS
            x = t
            FIN SI

            et donc tu affiches la plus grande valeur stockée dans la variable x
          5. @Stephane39j'ai un autre exo que j'avais fait il falliait placer dans X la plus petite des deux valeurs dans y la plus grande en gros ses deux exo était presque pareille sauf que dans celui que tu m'a expliquer il faut trouver la valeur la plus forte et l'afficher
        4. a en fait il faut que mon reste sont la somme du calcule de mon prochain nb

          en gros que le reste de NB20 ce retrouve en somme de nb10
          1. Stephane39 pour info je suis peut étre nul mais si j utilise les div c'est que je doit les utiliser
            1. SA MARCHE SA

              var

              NB20, NB10, NB5, NP2, NP1, somme, reste : entier

              début

              afficher ("entrer somme")
              saisir (somme)

              NB20 (--- somme div 20
              reste (--- somme mod 20
              NB10 (--- NB20 div 10
              reste (--- somme mod 10
              NB5 (--- NB10 div 5
              reste (--- somme mod 5
              NP2 (--- NB5 div 2
              reste (--- somme mod 2
              NP1 (--- NB2 div 1
              reste (--- somme mod 1

              afficher ("vous aurais :"; NB20+NB10+NB5+NB2+NB1)

              fin