Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

algorithme

Posté par
wilder7112
15-03-15 à 15:50

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

Posté par
Glapion Moderateur
re : algorithme 15-03-15 à 16:01

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.

Posté par
wilder7112
re : algorithme 15-03-15 à 16:16

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 :/ ....

Posté par
Glapion Moderateur
re : algorithme 15-03-15 à 16:22

ça c'est les distances, mais ils sont où les points Mn ?

Posté par
wilder7112
re : algorithme 15-03-15 à 16:25

Leur argument c'est /4

Posté par
Glapion Moderateur
re : algorithme 15-03-15 à 16:34

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 ?

Posté par
wilder7112
re : algorithme 15-03-15 à 16:55

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...

Posté par
Glapion Moderateur
re : algorithme 15-03-15 à 17:05

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.

Posté par
wilder7112
re : algorithme 15-03-15 à 17:13

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 !

Posté par
Glapion Moderateur
re : algorithme 15-03-15 à 17:37

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 :
algorithme

Posté par
Glapion Moderateur
re : algorithme 15-03-15 à 17:59

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


n'oublie pas d'ajuster les dimensions de la fenêtre graphique entre -1 et =1 pour les x et les y

Posté par
wilder7112
re : algorithme 15-03-15 à 18:01

Oh mon dieu... Nan mais tu es un géni .... C'est tellement du chinois !

Merci beaucoup ... Désolée du dérangement !!

Passe une excellente soirée



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 1742 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 !