	"ABCDEFGHIJKLMNOPQRSTUVWXYZ"Str1
	"abcdefghijklmnopqrstuvwxyz"Str2
Lbl 0
	Menu("   Vecteurs:    ","Init (O,I,J)",10,"Nouveau point",20,"Calcul",30,"Fin",90)
Lbl 10
	26dim(L):26dim(L)
	1L(9):1L(10)
	Goto 0
Lbl 20
	ClrHome
	Input "Nom du point ",Str0
	inString(Str1,Str0)C
	If C=0:Goto 20
	Menu("  Dfini par:   ","Coordonnes",21,"Milieu",22,"Intersection",23,"Translation",24,"Somme vecteurs",25,"Symtrie",28,"Retour",0)
Lbl 21
	sub(Str2,C,1)+"="Str3
	Disp "X"+Str3
	Input X:XL(C)
	Disp "Y"+Str3
	Input Y:YL(C)
	Goto 0
Lbl 22
	Input "Nom du segment ",Str3
	inString(Str1,sub(Str3,1,1))D
	inString(Str1,sub(Str3,2,1))E
	If DE=0:Goto 22
	(L(D)+L(E))/2X
	(L(D)+L(E))/2Y
	Goto 80
Lbl 23
	Input "Sur la droite ",Str3
	0Z:Goto 55
Lbl 56
	IH-LKA:H-KB:I-LW
	Input "et la droite ",Str3
	1Z:Goto 55
Lbl 57
	IH-LKM:H-KK:I-LL
	rref([[B,W,A][K,L,M]])[A]
	[A](1,3)X
	[A](2,3)Y
	Goto 80
Lbl 55
	inString(Str1,sub(Str3,1,1))D
	inString(Str1,sub(Str3,2,1))E
	If D=0:Goto 23
	If E0:Goto 50
	inString("/+",sub(Str3,2,1))E
	If E=0 or length(Str3)4:Goto 23
	inString(Str1,sub(Str3,3,1))L
	inString(Str1,sub(Str3,4,1))H
	If LH=0:Goto 23
	If E=1:Goto 52
	L(D)-L(L)+L(H)I
	L(D)+L(L)-L(H)K
	Goto 51
Lbl 52
	L(D)+L(L)-L(H)I
	L(D)+L(L)-L(H)K
	Goto 51
Lbl 50
	L(E)I:L(E)K
Lbl 51
	L(D)L:L(D)H
	If Z=0:Goto 56
	Goto 57
Lbl 24:0Z:Goto 26
Lbl 25:1Z
Lbl 26
	Input "Image de ",Str3
	inString(Str1,Str3)F:If F=0:Goto 26
	Input "par vecteur ",Str4
	inString(Str1,sub(Str4,1,1))D
	inString(Str1,sub(Str4,2,1))E
	If DE=0:Goto 26
	If Z=1:Goto 27
	L(E)-L(D)+L(F)X
	L(E)-L(D)+L(F)Y
	Goto 80
Lbl 27
	Input "plus vecteur ",Str4
	inString(Str1,sub(Str4,1,1))G
	inString(Str1,sub(Str4,2,1))H
	If DE=0:Goto 27
	L(E)-L(D)+L(H)-L(G)+L(F)X
	L(E)-L(D)+L(H)-L(G)+L(F)Y
	Goto 80
Lbl 28
	Input "Symtrique de ",Str3
	inString(Str1,Str3)D
	Input "par rapport  ",Str3
	inString(Str1,Str3)E
	If ED=0:Goto 28
	2L(E)-L(D)X:2L(E)-L(D)Y
Lbl 80
	ClrHome
	Disp "Nouveau point "+Str0
	sub(Str2,C,1)+"="Str3
	XL(C):YL(C)
Lbl 81
	Disp "X"+Str3,XFrac
	Disp "Y"+Str3,YFrac
	Pause 
	Goto 0
Lbl 30
	Menu("Calcul/Vrifier:","Vecteur",31,"Distance",32,"Parall/Perpend",33,"Retour",0)
Lbl 31
	ClrHome
	Input "Vecteur ",Str3
	inString(Str1,sub(Str3,1,1))D
	inString(Str1,sub(Str3,2,1))E
	If DE=0:Goto 31
	L(E)-L(D)X:L(E)-L(D)Y
	sub(Str2,D,1)+sub(Str2,E,1)+"="Str3
	Goto 81
Lbl 32
	ClrHome
	Input "Segment ",Str3
	inString(Str1,sub(Str3,1,1))D
	inString(Str1,sub(Str3,2,1))E
	If DE=0:Goto 32
	(L(E)-L(D))+(L(E)-L(D))E:(E)D
	If fPart(D)0:Disp "Racine carre de",EFrac
	Disp "Longueur",DFrac
	Pause :Goto 0
Lbl 33
	ClrHome
	Input "La droite ",Str3
	inString(Str1,sub(Str3,1,1))D
	inString(Str1,sub(Str3,2,1))E
	If DE=0:Goto 33
	Input "et la droite ",Str3
	inString(Str1,sub(Str3,1,1))F
	inString(Str1,sub(Str3,2,1))G
	If FG=0:Goto 33
	L(E)-L(D)X:L(E)-L(D)Y
	L(G)-L(F)A:L(G)-L(F)B
	"ne sont pas"Str5
	Str5Str4
	If AX+YB=0:"sont"Str4
	Disp Str4,"perpendiculaires"
	Str5Str4
	If XB-AY=0:"sont"Str4
	Disp Str4,"parallles."
	Pause :Goto 0
Lbl 90
	ClrHome:Stop