Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme angle orienté

Posté par
Thorch
19-02-18 à 17:28

Bonjour, j'ai un exercice à faire, mais je n'y comprends rien en algorithmique, voici le sujet, merci d'avance à toute personne qui m'aidera...

1) a) Expliquer pourquoi on peut distinguer 3 cas quand on calcule la mesure principale d'un angle orienté.
     b) L'un de ces cas est très simple à gérer. Pourquoi ?
2) Recopier et compléter l'algorithme ci-dessous afin qu'il donne la mesure principale d'un angle orienté dont une mesure est x.

Variables : x, un nombre réel

Entrée :       Saisir x

Traitement et sortie :
Si x > ....
     |            Alors Tant que x > ....
     |                   |          x prend la valeur ....
     |                 Fin tant que
     |                 Afficher x
     |             Sinon si x inférieur ou égal à ....
     |                    |       Alors tant que x inférieur ou égal à ....
     |                    |               |            x prend la valeur ....
     |                    |             Fin tant que
     |                    |             Afficher x
     |                    |       Sinon afficher x
     |                    Fin si
Fin si

3) En pratique cet algorithme n'est pas facile à utiliser car on connaît le plus souvent la mesure d'un angle orienté sous la forme x = a/b Pi. Ecrire un nouvel algorithme qui demande à l'utilisateur les deux nombres a et b, et qui affiche la mesure principale sous la forme c/d Pi

Merci et bonne soirée

Posté par
fm_31
re : Algorithme angle orienté 19-02-18 à 17:33

Bonjour ,

si on sait ce qu'est la mesure principale d'un angle orienté , il n'y a rien de compliqué à comprendre .
Le mieux serait que tu dises ce que tu ne comprends pas

Cordialement

Posté par
Thorch
re : Algorithme angle orienté 19-02-18 à 17:50

C'est la seule mesure de alpha dans [-Pi ; Pi ] mais alors que sont les 3 cas, les trois cas particulier ?  angle nul, angle plat et angle droit ?

Pour l'algorithme, je ne sais pas comment faire, par où commencer, que mettre dans les trous

Pour le 3), je ne sais spas faire un algorithme, comment ça fonctionne..

Posté par
fm_31
re : Algorithme angle orienté 19-02-18 à 18:29

Les 3 cas sont   x=0 , x>0  et  x<0

Posté par
fm_31
re : Algorithme angle orienté 19-02-18 à 18:31

Pour compléter l'algorithme , il suffit de savoir comment tu ferais pour ramener un angle à sa valeur principale .

Posté par
Thorch
re : Algorithme angle orienté 19-02-18 à 18:42

Pour l'algorithme on obtient donc ceci ?

Si x > 0
     |            Alors Tant que x > Pi
     |                   |          x prend la valeur x-2 Pi
     |                 Fin tant que
     |                 Afficher x
     |             Sinon si x inférieur ou égal à -Pi
     |                    |       Alors tant que x inférieur ou égal à -Pi
     |                    |               |            x prend la valeur x+2 Pi
     |                    |             Fin tant que
     |                    |             Afficher x
     |                    |       Sinon afficher x
     |                    Fin si
Fin si

Et pour le 3 ? je ne sais pas comment faire...

Posté par
fm_31
re : Algorithme angle orienté 19-02-18 à 18:49

Tu vois que ce ne n'était pas très compliqué .
Pour le 3 , comment ferais-tu s'il fallait trouver la mesure principale de  29 /3  par exemple

Posté par
Thorch
re : Algorithme angle orienté 19-02-18 à 19:31

D'après ce que j'ai compris, on peut faire 29 - 2*3 ? jusqu'à que  a<b ?

Posté par
fm_31
re : Algorithme angle orienté 19-02-18 à 19:46

Là , tu es sur la bonne voie .

Posté par
Thorch
re : Algorithme angle orienté 19-02-18 à 19:49

Donc si a/b > 0 on fait a-2b jusqu'à ce que a<b mais pour a/b <0 ?

Posté par
fm_31
re : Algorithme angle orienté 19-02-18 à 20:15

si  a/b est négatif , il faut déterminer si c'est a qui est négatif ou si c'est b .
dans ce dernier cas , on se ramène à  a négatif  (en inversant les signes de a et de b) et on ajoute  2 b   jusqu'à   a<-b

Posté par
Thorch
re : Algorithme angle orienté 19-02-18 à 20:31

On peut aussi faire une valeur absolue ?
Si a/b supérieur ou égal à 0
Tant que |a/b|>0
Alors a prend a+2b
Ou si a/b inférieur ou égal à 0
TAnt que |a/b|>0
Alors a prend a-2b ?

Posté par
fm_31
re : Algorithme angle orienté 19-02-18 à 22:08

C'est peut-être possible . Tu peux (tu devrais) vérifier cela avec  prolab  par exemple ou ta calculatrice éventuellement ou pourquoi pas python .

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 16:04

Je ne vois pas comment faire le programme j'ai essayé mais aucun résultat...

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 17:04

Montre ce que tu as essayé .

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 17:30

"A="?->A
"B="?->B
If A/B>=0
Then
While Abs (A/B)>0
Do
A-2*B->C
WhileEnd
Afficher C
Afficher B
Else
While Abs (A/B)>0
Do
A+2*B->D
WhileEnd
IfEnd
Afficher D
Afficher B

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 18:52

tes boucles  While Abs (A/B)>0  sont des boucles sans fin puisque A et B ne changent pas de valeur dans la boucle . Donc la condition est toujours vraie

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 18:57

Donc comment la faire changer de valeur ? JE ne suis pas sûr d'avoir très bien compris.

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 19:22

tu peux faire  C = A   et  D = B    et   While Abs (C/D)>0

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 19:30

Mais il faut de j'obtienne une fraction avec c et d ?
Excuse moi, mais je ne comprends rien à ce que je dois mettre ou enlever...

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 19:54

Ce que tu as commencé à faire allait dans le bon sens . Il faut travailler (test et modifications)  sur C et D qu'on affichera à la fin .

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 20:07

Il faut donc que je modifie les boucles While ?

"A="?->A
"B="?->B
A=C
B=D
If A/B>=0
Then
While Abs (A/B)>0
Do
A-2*B->E
WhileEnd
Afficher E
Afficher B
Else
While Abs (C/D)>0
Do
A+2*D->F
WhileEnd
IfEnd
Afficher F
Afficher C

C'est ça ?

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 20:13

Pourquoi introduire d'autres variable (E)  
Ensuite tu affiches  C  sans lui avoir donné aucune valeur .

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 20:16

Pour les deux formules :
A-2*B->A
et
C+2*D->C ?

A la fin je fais afficher C et D du coup ?

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 20:30

Oui le résultat doit être dans C et D

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 20:36

J'ai recopié le programme comme ceci :

"A="?->A
"B="?->B
A=C
B=D
If A/B>=0
Then
While Abs (A/B)>0
Do
A-2*B->A
WhileEnd
Afficher A
Afficher B
Else
While Abs (C/D)>0
Do
C+2*D->C
WhileEnd
IfEnd
Afficher C
Afficher D

MAlheureusement j'ai un problème de syntaxe ici

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 20:48

Pour la syntaxe , je ne peux pas t'aider car je ne connais pas ce langage très peu lisible (pas d'indentation)

Voila une version prolab (algobox) perfectible

VARIABLES
A EST_DU_TYPE NOMBRE
B EST_DU_TYPE NOMBRE
C EST_DU_TYPE NOMBRE
D EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE A
LIRE B

SI ((A*B>0)) ALORS   // meme signe
DEBUT_SI
    C PREND_LA_VALEUR abs(A)
    D PREND_LA_VALEUR abs(B)
TANT_QUE (C>D) FAIRE
DEBUT_TANT_QUE
C PREND_LA_VALEUR C-2*D
FIN_TANT_QUE
FIN_SI

SI ((A<0) ET (B>0)) ALORS
DEBUT_SI
    C PREND_LA_VALEUR A
    D PREND_LA_VALEUR B
TANT_QUE (abs(C)>D) FAIRE
DEBUT_TANT_QUE
C PREND_LA_VALEUR C+2*D
FIN_TANT_QUE
FIN_SI

SI ((A>0) ET (B<0)) ALORS
DEBUT_SI
    C PREND_LA_VALEUR -A
    D PREND_LA_VALEUR -B
TANT_QUE (abs(C)>D) FAIRE
DEBUT_TANT_QUE
C PREND_LA_VALEUR C+2*D
FIN_TANT_QUE
FIN_SI


SI (C==D) ALORS
DEBUT_SI
AFFICHER A
        AFFICHER " pi / "
        AFFICHER B
        AFFICHER " = "
        AFFICHER " pi / "

FIN_SI
SINON
DEBUT_SINON
                AFFICHER A
            AFFICHER " pi / "
            AFFICHER B
            AFFICHER " = "
            AFFICHER C
            AFFICHER " pi / "
            AFFICHER D
FIN_SINON
FIN_ALGORITHME

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 21:01

Tout ceci devient de plus en plus compliqué...Je me pers.
Ton logiciel peut-il convertir ceci en langage casio ? Cela faciliterait la compréhension...

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 21:07

La conversion dans le sens algobox casio ne demande que de connaitre le langage casio (ce qui n'est pas mon cas , je n'ai même pas de calculatrice)
On distingue 3 cas suivant les signes de A et B . Commence par coder le premier cas (mêmes signes)
voici en plus lisible  la partie hors affichages qui ne sont pas super en algobox

Algorithme angle orienté

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 21:12

Pourquoi demande-t-on les valeurs C et D ? Je souhaite juste demander les deux nombres A et B et afficher la mesure principale sous la forme C/D Pi

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 21:20

De plus, cet algorithme me semble très compliqué pour mon niveau.
Ne penses-tu pas que l'on puisse faire quelque chose de beaucoup plus court ?

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 21:23

Je ne demande que A et B  (LIRE A  et  LIRE B)
Ce qui précède n'est que la déclaration des variables que le programme utilise . Il semble que en casio  , ces déclarations ne soient pas nécessaires .

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 21:27

le programme parait long mais les 3 blocs sont très semblables . Une fois le premier bloc  (A et B de même signe) testé , un simple copie/collé me donne les 2 autres blocs dans lesquels je modifie peu de choses . Tu peux simplifier l'affichage final en n'affichant que C et D .

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 21:28

Tu n'aurais pas une façon plus rapide de trouver ce résultat ? Je suis totalement perdu là..

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 21:38

Chacun des 3 trois blocs fait 4 lignes . Je ne vois pas comment on pourrait faire plus simple .

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 21:41

Comment traduire  ((A<0) ET (B>0)) ?
Il n'y a pas de commande And

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 21:52

tu peux faire 2 si
si A<0
   si B>0
      ...

Mais je suis surpris qu'il n'y ait pas  ET  et  OU  en casio
Voir

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 21:57

JE viens de trouver, malheureusement j'ai toujours un problème au niveau du WhileEnd mais je ne sais pas comment le résoudre..

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 22:07

Voila ce que j'ai trouvé sur internet .
Voie ces quelques lignes car il se peut que l'erreur signalée sur WhileEnd  vienne d'ailleurs entre While et WhileEnd  . Par exemple le Do que tu as mis juste après While .

Algorithme angle orienté

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 22:19

Il semblerait que ton programme fonctionne, il fait exactement ce que je veux.
DE plus, dans la question 1, les trois cas sont donc x>0, x=0 et x<0, quel est le plus simple à gérer ?  x=0 ?

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 22:26

Il se pourrait que les 3 cas soient    

-pi < x <= pi     cas le plus simple car il n'y a rien à faire
x > pi
x <= -pi

Posté par
Thorch
re : Algorithme angle orienté 20-02-18 à 22:29

D'accord, j'ai compris !
JE te remercie pour ton aide et j'espère ne pas t'avoir trop embêté.
Sur ce je te souhaite une bonne soirée !

Posté par
fm_31
re : Algorithme angle orienté 20-02-18 à 22:32

Merci et bonne continuation .



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !