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.
A voir également:

14 réponses

ccm81 Messages postés 11033 Statut Membre 2 433
 
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
ccm81 Messages postés 11033 Statut Membre 2 433
 
pour le premier SI il faut lire
SI Y<=-Math.PI ALORS
0
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
ccm81 Messages postés 11033 Statut Membre 2 433
 
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
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
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
Pacorabanix Messages postés 3248 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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
ccm81 Messages postés 11033 Statut Membre 2 433
 
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
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
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
ccm81 Messages postés 11033 Statut Membre 2 433
 
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
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
ccm81 Messages postés 11033 Statut Membre 2 433
 
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
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
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