Problème D'Algorithme.

chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   -  
chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   -
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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      pour le premier SI il faut lire
      SI Y<=-Math.PI ALORS
      0
    2. chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   6
       
      L'algo en lui même marche, merci beaucoup ^^' Seulement maintenant il faudrait trouver un moyen pour repasser la valeur en PI ^^
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  3. vordano Messages postés 1981 Statut Membre 316
     
    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
    0
  4. chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   6
     
    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)
    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      et donc... tu peux écrire les étapes que tu fais ? en gros ce sera l'algo !
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vordano Messages postés 1981 Statut Membre 316
     
    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 ?
    0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    0
  8. chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   6
     
    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.
    0
  9. chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   6
     
    Merci pour ce lien, il va falloir que je lise de haut en bas, j'espère trouver mon bonheur ^^'
    0
  10. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    0
  11. chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   6
     
    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
    0
  12. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    0
  13. chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   6
     
    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.
    0
  14. chyrla Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   6
     
    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 !
    0