Problème D'Algorithme.

Salut à tous ! Je suis en Première STL (Science et Technologie de Laboratoire) option SPCL (Science Physique Chimie Laboratoire). J'ai un prof de math qui nous a donné un algorithme à faire sur algobox : L'énoncé :

Écrire un programme dont l'entrée est une mesure en radian et dont la sortie est la mesure principale.

Cela fait deux jours que j'essai ... je pète les plombs ! (Inutiles de venir poster si ce n'est pas pour apporter une réponse constructive)

(algobox est un logiciel libre et en téléchargement gratuit. Dernière version : 0.6)

Merci d'avance du coup de main ! Je m'y remet !

Bonne soirée.

14 réponses

  1. Merci pour tout, j'ai enfin réussi, je suis en train d'essayer pour le nombre de tour.

    ça avance doucement mais surement.

    à bientot !
    1. bonjour

      - pour le décompte du nombre de tours, il te suffit de déclarer une nouvelle variable T (par exemple) qui va être
      1. initailisée à 0
      2. mise à jour chaque fois que tu ajoutes/enlève un tour dans les boucles TANTQUE

      - pour la première question, c'est un brin plus compliqué, tu ne dois plus entrer X comme un nombre décimal, mais comme une fraction de PI, et ça ce n'est possible qu'en séparant le numérateur et le dénominateur de X (par exemple pour entrer X=17*PI/5 tu dois (oublier X) entrer séparément N=17 et D = 5, et travailler uniquement avec N et D

      bon courage
      1. Dans algobox, quand tu lances l'algorithme, il te demande X. C'est la ligne lire X.

        Je lui donne une valeur en PI, par exemple : 32*Math.PI/3

        il me ressort une valeur décimale mais je veux une valeur de la forme n*Math.Pi/3. (n ici est la variable).

        Par la suite dans mon exercice je dois ajouter des conditions pour savoir combien de tours il y a eu en plus, ou en moins.

        Merci d'avance.
        1. je ne comprends toujours pas ta question

          - si tu mets en entrée 3*PI/2 l'algorithme renvoie -PI/2 (c'est la mesure principale)

          - si tu veux 3*PI/2 en sortie, ce n'est plus la mesure principale mais la plus petite mesure positive dans ce cas, il faut 2 valeurs en sortie (la mp et la ppmp) et ajouter un test sur Y pour avoir la ppmp lorsque la mp est négative

          ou alors tu veux dire autre chose ....

          bon courage
          1. Le probleme est que je ne sais pas coder ce bout qu'il me manque.

            Il faudrait en sortie, donc avant d'afficher y, un autre traitement; Il me faut une valeur dans le genre 3Math.PI/2. (Par exemple)

            Seulement, pour le moment nous n'avons eu qu'une séance sur PC ...

            Merci de l'aide que vous m'apportez, vous immaginez pas combien j'en ai test.
            Environ 8 algo, une heure par algo a se demander ce qu'il ne va pas ... x)

            Et ce n'est pas fini ... Mais ca avance ! Donc merci =D
            1. je ne comprends pas ta question, le pb est il - au niveau
              - des entrées
              - du traitement
              - de la sortie
              essaies d'illustrer par un exemple d'exécution
              1. bonjour

                tu vais simplement (un peu) mélangé les variables X et Y

                VARIABLES
                X EST_DU_TYPE NOMBRE
                Y EST_DU_TYPE NOMBRE
                DEBUT_ALGORITHME
                LIRE X
                Y PREND_LA_VALEUR X
                SI (Y<-Math.PI) ALORS
                DEBUT_SI
                TANT_QUE (Y<=-Math.PI) FAIRE
                DEBUT_TANT_QUE
                Y PREND_LA_VALEUR Y+(2*Math.PI)
                FIN_TANT_QUE
                FIN_SI
                SINON
                DEBUT_SINON
                SI (Y>Math.PI) ALORS
                DEBUT_SI
                TANT_QUE (Y>Math.PI) FAIRE
                DEBUT_TANT_QUE
                Y PREND_LA_VALEUR Y-(2*Math.PI)
                FIN_TANT_QUE
                FIN_SI
                FIN_SINON
                AFFICHER Y

                RQ. En fait on pourrait supprimer la variable Y et travailler uniquement sur X (mais sa valeur initiale sera alors perdue)

                bonne suite
                1. pour le premier SI il faut lire
                  SI Y<=-Math.PI ALORS
                2. L'algo en lui même marche, merci beaucoup ^^' Seulement maintenant il faudrait trouver un moyen pour repasser la valeur en PI ^^
              2. Merci pour ce lien, il va falloir que je lise de haut en bas, j'espère trouver mon bonheur ^^'
                1. Merci pour l'ébauche, j'avais déjà, mais dépassement des boucles ... j'essai de vous mettre un de mes algo.

                  VARIABLES
                  X EST_DU_TYPE NOMBRE
                  Y EST_DU_TYPE NOMBRE
                  DEBUT_ALGORITHME
                  LIRE X
                  Y PREND_LA_VALEUR X
                  SI (Y<-Math.PI) ALORS
                  DEBUT_SI
                  TANT_QUE (X<-Math.PI) FAIRE
                  DEBUT_TANT_QUE
                  Y PREND_LA_VALEUR Y+(2*Math.PI)
                  FIN_TANT_QUE
                  FIN_SI
                  SINON
                  DEBUT_SINON
                  SI (X>Math.PI) ALORS
                  DEBUT_SI
                  TANT_QUE (X>Math.PI) FAIRE
                  DEBUT_TANT_QUE
                  Y PREND_LA_VALEUR Y-(2*Math.PI)
                  FIN_TANT_QUE
                  FIN_SI
                  FIN_SINON
                  AFFICHER Y

                  FIN_ALGORITHME

                  voila ce que j'ai fais, mais trop de boucles.
                  1. bonjour

                    pour une ébauche d'algorithme

                    lire r
                    si r < 0
                    alors 
                      tant que abs(r) > pi
                        r = r+2*pi
                      fin tant que
                    sinon
                      tant que r > pi
                        r = r-2*pi
                      fin tant que
                    fin si
                    afficher r


                    reste à régler
                    1. quelques cas particuliers
                    2. l'utilisation d'algobox

                    bonne suite
                    1. ton sujet était dans droit/informatique :)

                      pour le "programme" je parlais de l'algo et ensuite j'ai souligné que le programme algobox avais l'air compliqué ^^

                      et a part ca pour l'algo:

                      il faut d'abord déclarer autant de variable que nécessaire, pour ca il faut que tu identifie chaque valeur de ton calcul mesure radian->mesure principale

                      est ce que tu as eu un cour sur l'utilisation du logiciel algobox ?
                      je suppose qu'il dois y avoir une fonction qui calcul tout seul ce que tu cherche non ?
                      1. Alors oui pour le calcul à la main, et le programme ce n'est pas un programme, juste un algo. (C'était déjà dans Droit/Programmation je crois)
                        1. et donc... tu peux écrire les étapes que tu fais ? en gros ce sera l'algo !
                      2. bon, je te le dis tout de suite, je ne te ferais pas le programme (surtout parce que le programme a l'air compliqué...)
                        par contre je peux t'aider pour faire ton algo (après a toi de voir quoi utiliser dans le programme pour reproduire ce que je te donnerais.

                        dans un premier temps, est ce que tu sais calculer la mesure principale a partir d'une mesure en radian ?

                        ps: j'ai signalé le sujet pour qu'il soit déplacé dans programmation