Hello,
J'ai un algorithme et on me demande d'un de créer un programme qui demande une valeur de n et trace la spirale M0;M1;M2... Mn et ensuite de le modifier pour qu'il affiche en plus la longueur de la ligne...
Voici l'algo :
Variables :
N est du type nombre
k est du type nombre
x est du type nombre
x0 est du type nombre
y est du type nombre
y0 est du type nombre
s est du type nombre
t est du type nombre
Début de l'algorithme
Tracer segment bleu (-1,1)-> (1,1)
Tracer segment bleu (1,1)-> (1,-1)
Tracer segment bleu (1,-1)-> (-1,-1)
Tracer segment bleu (-1,-1)-> (-1,1)
Tracer segment vert (-1,0)-> (1,0)
Tracer segment vert (0,1)-> (0,-1)
Tracer segment vert (-1,-1)-> (1,1)
Tracer segment vert (-1,1)-> (1,-1)
Pour t allant de 0 à 1000
Début pour
Tracer point vert (cos(t*2*Math.PI/1000),sin(t*2*Math.PI/1000))
Fin pour
//Initialisation
// n est le nombre de point souhaités
Lire n
//x0 et y0 sont les coordonnées de M0
x0 prend la valeur
yo prend la valeur
// k est le nombre de points " construits "
k prend la valeur
// s est la longueur de la spirale
s prend la valeur
//Traitement
..............
Fin algorithme
Pour moi c'est du chinois, si quelqu'un pouvait m'éclairer hihi !! Merci d'avance
Bonjour, on doit aussi de donner la définition des points M0;M1;M2... Mn ? on peut pas deviner.
sinon le squelette du programme n'est pas très difficile à comprendre.
au début on dessine un carré bleu et un carré vert (place les points comme indiqué pour te faire une opinion)
ensuite la boucle Pour t allant de 0 à 1000 dessine des points qui sont tous sur un cercle (puisqu'ils ont pour coordonnées (cos ... et sin ... avec un argument qui balaye tous les angles entre 0 et 2)
ensuite on initialise le point de départ M0 et on demande combien de points on veut
ensuite je ne sais pas comment sont construits les points M1;M2... Mn donc je ne peux pas te dire ce qu'il faut mettre.
il faut mettre les instructions qui dessinent les points et les relient par des segments.
s permet d'additionner à chaque nouveau calcul les distances entre les points. il faudra l'afficher à la fin.
OM0=1/4
OM1=1/2
OM2=2/3
OM3=3/4
OMn = n/n+1
C'est vraiment très gentil d'avoir répondu mais je comprends vraiment rien aux lectures de programmes :/ ....
c'est agaçant d'avoir l'énoncé par petits bouts. l'argument de quoi ? tu nous a jamais parlé de nombres complexes
ils tournent à chaque fois d'un angle de /4 je suppose plutôt ? (car sinon s'ils avaient tous un argument de
/4, ils seraient alignés et il n'y aurait pas de spirale)
il y a forcement une définition des points ou une relation de récurrence qui les relient qui soit plus claires que les bouts d'énoncé que tu donnes au compte goutte ?
Suite aux questions que nous disposions; arg(Zn+1)=argZn +/4 que donc arg Zn=0+n
/4
Ensuite j'en déduis Zn = n/n+1*( cosn/4 + isinn
/4)
Exact pour votre déduction de /4, toutes mes excuses...
oui, l'argument est donc n /4 donc ils tournent de 45° à chaque fois.
Bon et bien tu as tous les éléments pour calculer les positions des points, les dessiner ainsi que les segments.
lance toi, les algorithmes il faut se battre un peu avec pour progresser. ça ne servirait à rien que je le fasse pour toi.
je corrigerai ta syntaxe si tu fais des essais.
je ne sais même pas comment dessiner et tracer des trucs sur algobox :'( !!
Bon en tout cas c'est gentil d'avoir répondu !!
Bonne soirée !
tu l'a la syntaxe pour dessiner. tu n'as que deux instructions à connaître :
TRACER_SEGMENT_Bleu (•,•)->(•,•)
TRACER_POINT_Vert (•,•)->(•,•)
tu dois obtenir ça :
Bon, comme je vais quitter, je te fais un cadeau, je te donne le code :
(tu peux le copier/coller dans algobox en mode éditeur de texte, ou bien directement en ligne dans proglab )
VARIABLES
n EST_DU_TYPE NOMBRE
k EST_DU_TYPE NOMBRE
x EST_DU_TYPE NOMBRE
x0 EST_DU_TYPE NOMBRE
y EST_DU_TYPE NOMBRE
y0 EST_DU_TYPE NOMBRE
s EST_DU_TYPE NOMBRE
t EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
TRACER_SEGMENT_Bleu (-1,1)->(1,1)
TRACER_SEGMENT_Bleu (1,1)->(1,-1)
TRACER_SEGMENT_Bleu (1,-1)->(-1,-1)
TRACER_SEGMENT_Bleu (-1,-1)->(-1,1)
TRACER_SEGMENT_Bleu (-1,0)->(1,0)
TRACER_SEGMENT_Bleu (0,1)->(0,-1)
TRACER_SEGMENT_Bleu (-1,-1)->(1,1)
TRACER_SEGMENT_Bleu (-1,1)->(1,-1)
POUR t ALLANT_DE 0 A 1000
DEBUT_POUR
TRACER_POINT_Vert (cos(t*2*Math.PI/1000),sin(t*2*Math.PI/1000))
FIN_POUR
//Initialisation
// n est le nombre de point souhaités
LIRE n
//x0 et y0 sont les coordonnées de M0
x0 PREND_LA_VALEUR 0
y0 PREND_LA_VALEUR 0
// s est la longueur de la spirale
s PREND_LA_VALEUR 0
//Traitement
POUR k ALLANT_DE 1 A n
DEBUT_POUR
x PREND_LA_VALEUR k/(k+1)*cos(k*Math.PI/4)
y PREND_LA_VALEUR k/(k+1)*sin(k*Math.PI/4)
TRACER_SEGMENT_Rouge (x0,y0)->(x,y)
s PREND_LA_VALEUR s+sqrt(pow(x-x0,2)+pow(y-y0,2))
x0 PREND_LA_VALEUR x
y0 PREND_LA_VALEUR y
FIN_POUR
AFFICHER "longueur de la spirale : "
AFFICHER s
FIN_ALGORITHME
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :