\documentclass[a4paper,11pt]{article}
\textheight 23 cm
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{latexsym}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphics}
\usepackage{pstricks}
\usepackage{times}
%\usepackage[pdftex]{hyperref}
\title{La tortue et la sym\'etrie orthogonale par rapport \`a une droite}
\makeindex
\author{Ren\'ee De Graeve}

\begin{document}
%\maketitle
\begin{center}{\bf La tortue et la sym\'etrie orthogonale par rapport \`a une droite}\end{center}

\section{Exercice I}
Voici les dessins d'un drapeau, d'un k\'epi, d'une casserole :\\
\noindent
\psset{unit=1.2000cm}
\psset{linewidth=.5pt}
\psset{arrowsize=2pt 4}
\pspicture*(-5.0000,-3.0000)(5.0000,3.0000)
\psset{linecolor=black}
\psset{linecolor=black}
\psline(-4.0000,-1.0000)(-4.0000,0.0000)
\psset{linecolor=black}
\psline(    -4.000000,     0.000000)(    -3.000000,     0.000000)(    -3.000000,     2.000000)(    -4.000000,     2.000000)(    -4.000000,     0.000000)
\psset{linecolor=black}
\psline(    -2.000000,     0.000000)(     0.000000,     0.000000)(     0.000000,     1.000000)(    -2.000000,     1.000000)(    -2.000000,     0.000000)
\psset{linecolor=black}
\psline(0.0000,0.0000)(1.0000,0.0000)
\psset{linecolor=black}
\psline(2.0000,0.0000)(3.0000,0.0000)
\psset{linecolor=black}
\psline(     3.000000,     0.000000)(     5.000000,     0.000000)(     5.000000,    -1.000000)(     3.000000,    -1.000000)(     3.000000,     0.000000)
\endpspicture 

1/ \'Ecrire une proc\'edure {\tt objet} qui r\'ealise l'un de ces dessins : on 
prendra soin de noter sur le dessin la position choisie pour
le d\'epart et l'arriv\'ee de la tortue.

2/ On veut dessiner l'image de {\tt objet} dans un miroir, pour cela :
\begin{itemize}
\item Dessiner une droite qui symbolise un miroir : le miroir doit avoir une position quelconque,
\item Dessiner l'objet ci-dessus : l'objet doit avoir une position quelconque 
par rapport au miroir,
\item Dessiner l'image de l'objet  cr\'ee par le miroir. 
\end{itemize}

\section{Exercice II}
1/ Refaire l'exercice pr\'ec\'edent en \'ecrivant les proc\'edures suivantes :
\begin{itemize}
\item {\tt miroir} qui trace une droite, 
\item {\tt place\_miroir} qui place et oriente le miroir,
\item {\tt objet} qui dessine l'objet de votre choix, 
\item {\tt place\_objet} qui place et oriente l'objet par rapport au miroir,
%\item {\tt replace\_tortue} qui replace et r\'eoriente la tortue selon sa position avant d'avoir fait {\tt place\_objet}
\item {\tt objetsym} qui dessine l'objet sym\'etrique par rapport au miroir,
\item {\tt place\_objetsym} qui place et oriente {\tt objetsym} selon le
 sym\'etrique de {\tt objet} par rapport au miroir,
\end{itemize}
2/ Comment peut-on \'ecrire de fa\c{c}on automatique la proc\'edure 
{\tt objetsym} \`a partir de la proc\'edure {\tt objet} ?\\
Comment peut-on \'ecrire de fa\c{c}on automatique la proc\'edure 
{\tt place\_objetsym} \`a partir de la proc\'edure {\tt place\_objet} ?\\
\newpage
\begin{center}{\bf Corrections}\end{center}
Une solution pour l'exercice I peut \^etre :
\begin{verbatim}
objet(a):={
avance(a);
repete(2,avance(2*a),tourne_droite,avance(a),tourne_droite);
recule(a);
};
objetsym(a):={
avance(a);
repete(2,avance(2*a),tourne_gauche,avance(a),tourne_gauche);
recule(a);
};
exo1():={
pas_de_cote(-200);
objet(40);
pas_de_cote(100);
tourne_droite(20);
avance(200);
recule(400);
avance(200);
tourne_droite(110);
saute(100);
tourne_gauche;
objetsym(40);
}
\end{verbatim}
Les proc\'edures de l'exercice II :
\begin{verbatim}
miroir():={
avance(200);
recule(400);
avance(200);
};
place_miroir(d):={
pas_de_cote(-100);
tourne_gauche(d);
miroir();
}
\end{verbatim}
Le param\`etre {\tt d} repr\'esente l'angle du miroir avec l'horizontale.\\
Le param\`etre {\tt b} repr\'esente la distance du d\'epart de l'objet avec le 
miroir et le param\`etre {\tt c} repr\'esente son inclinaison par rapport au 
miroir.
\begin{verbatim}
place_objet(b,c):={
pas_de_cote(b);
tourne_gauche(c);
};
replace_tortue(b,c):={
tourne_droite(c);
pas_de_cote(-b);
};
place_objetsym(b,c):={
pas_de_cote(-b);
tourne_droite(c);
}
\end{verbatim}
On remarque que la proc\'edure {\tt place\_objetsym} est inutile puisque :\\
{\tt place\_objetsym(b,c)=place\_objet(-b,-c)}.\\
\`A la fin pour remettre la tortue sur le miroir on utilisera
{\tt replace\_tortue(-b,-c)}
On peut aussi \'ecrire la proc\'edure {\tt objet2} qui r\'ealise 
{\tt objet} (resp {\tt objetsym}) quand la valeur du deuxi\`eme param\`etre 
est 1 (resp -1).
\begin{verbatim}
objet2(a,s):={
avance(a);
repete(2,avance(2*a),tourne_droite s*90,avance(a),tourne_droite s*90);
recule(a);
}
\end{verbatim}
et alors 
{\tt objet(a):=objet2(a,1)}
 et {\tt objetsym(a):=objet2(a,-1)}

On \'ecrit alors :
\begin{verbatim}
exo2(a,b,c,d):={
place_miroir(d);
miroir();
place_objet(b,c);
objet(a);
replace_tortue(b,c);
place_objetsym(b,c)
objetsym(a);
replace_tortue(-b,-c);
}
\end{verbatim}
ou encore, si on suppose que le miroir est dessin\'e et que la tortue est sur 
le miroir, on peut utiliser la proc\'edure suivante :
\begin{verbatim}
finexo2(a,b,c):={
place_objet(b,c);
objet2(a,1);
replace_tortue(b,c);
place_objet(-b,-c)
objet2(a,-1);
replace_tortue(-b,-c);
};
exo2(a,b,c,d):={
place_miroir(d);
miroir();
finexo2(a,b,c);
}
\end{verbatim}
On tape par exemple :\\
{\tt exo2(40,100,20,-10)}
{\tt finexo2(-20,40,30)}
{\tt finexo2(...)}
\newpage
\begin{center}{\bf La famille des sapins et la proportionnalit\'e}\end{center}
{\bf 1-i\`ere s\'eance}\\
On dessine un triangle rectangle isoc\`ele plein avec comme position de 
d\'epart et d'arriv\'ee de la tortue le milieu de l'hypot\'enuse et le cap est dirig\'e selon la hauteur.
\begin{verbatim}
tri(a):={
triangle_plein(a,a);
tourne_droite;
triangle_plein(a,a);
tourne_gauche;
}
\end{verbatim}
On dessine un sapin form\'e de 2 triangles {\tt tri} de dimensions 50 et 40 
avec comme position de d\'epart et d'arriv\'ee de la tortue le milieu de l'hypot\'enuse et le cap est dirig\'e selon la hauteur de {\tt tri(50)}.

% Generated by xcas
\noindent
\psset{unit=1.2000cm}
\psset{linewidth=.5pt}
\psset{arrowsize=2pt 4}
\pspicture*(-5.0000,-1.0000)(5.0000,2.0000)
\psset{linecolor=black}
\psset{linecolor=black}
\psline(     0.000000,     0.000000)(     0.100000,     0.000000)(     0.000000,     0.200000)(     0.000000,     0.000000)
\psset{linecolor=black}
\psline(     0.000000,     0.000000)(     0.000000,     0.200000)(    -0.100000,     0.000000)(     0.000000,     0.000000)
\psset{linecolor=black}
\psline(     0.000000,     0.000000)(     1.000000,     0.000000)(     0.000000,     1.000000)(     0.000000,     0.000000)
\psset{linecolor=black}
\psline(     0.000000,     0.000000)(     0.000000,     1.000000)(    -1.000000,     0.000000)(     0.000000,     0.000000)
\psset{linecolor=black}
\psline(     0.000000,     0.800000)(     0.800000,     0.800000)(     0.000000,     1.600000)(     0.000000,     0.800000)
\psset{linecolor=black}
\psline(     0.000000,     0.800000)(     0.000000,     1.600000)(    -0.800000,     0.800000)(     0.000000,     0.800000)
\psset{linecolor=green}
\psdots[dotstyle=*](-0.5000,-0.5000)
\uput{0.0833}[45.0000](-0.5000,-0.5000){sapin(50,40)}
\psset{linecolor=black}
\psline(    -3.000000,     0.000000)(    -2.000000,     0.000000)(    -3.000000,     1.000000)(    -3.000000,     0.000000)
\psset{linecolor=black}
\psline(    -3.000000,     0.000000)(    -3.000000,     1.000000)(    -4.000000,     0.000000)(    -3.000000,     0.000000)
\psset{linecolor=black}
\psline(     0.000000,     0.000000)(     0.100000,     0.000000)(     0.000000,     0.170000)(     0.000000,     0.000000)
\psset{linecolor=black}
\psline(     0.000000,     0.000000)(     0.000000,     0.170000)(    -0.100000,     0.000000)(     0.000000,     0.000000)
\psset{linecolor=black}
\psline(    -3.000000,     0.000000)(    -2.900000,     0.000000)(    -3.000000,     0.200000)(    -3.000000,     0.000000)
\psset{linecolor=black}
\psline(    -3.000000,     0.000000)(    -3.000000,     0.200000)(    -3.100000,     0.000000)(    -3.000000,     0.000000)
\psset{linecolor=green}
\psdots[dotstyle=*](-3.5000,-0.5000)
\uput{0.0833}[45.0000](-3.5000,-0.5000){tri(50)}
\endpspicture 

On \'ecrit la proc\'edure {\tt sapin}
\begin{verbatim}
sapin():={
tri(50);
avance(40);
tri(40);
recule(40);
}
\end{verbatim}

{\bf 2-i\`eme s\'eance}\\
On demande d'\'ecrire \`a partir de sapin une proc\'edure param\'etr\'ee avec 
2 param\`etres {\tt a}  et {\tt b} : {\tt a} pour {\tt 50} et {\tt b} pour {\tt 40}.\\
On \'ecrit en classe en expliquant : 
\begin{verbatim}
sapin(a,b):={
tri(a);
avance(b);
tri(b);
recule(b);
}
\end{verbatim}
On a donc fait dessiner la derni\`ere fois {\tt sapin(50,40)}.\\
On demande maintenant de dessiner les sapins de la famille du   
{\tt sapin(50,40)},
c'est \`a dire ceux qui ont la m\^eme forme 
que lui \`a un agrandissement ou \`a une r\'educion pr\`es.\\
On demande aux enfants de remplir le tableau suivant :\\
\begin{tabular}{|l|l|}
\hline
a &b\\
\hline
5& \\
10& \\
15& \\
20& \\
25& \\
30& \\
35& \\
40& \\
45& \\
50&40 \\
55& \\
60& \\
70& \\
80& \\
90& \\
100& \\
\hline
\end{tabular}

Les enfants remplissent tous le tableau au d\'ebut en se servant syst\'ematiquement de l'addition ils \'ecrivent :\\
\begin{tabular}{|l|l|}
\hline
a &b\\
\hline
15& 5\\
20& 10\\
25& 15\\
30& 20\\
35& 25\\
40& 30\\
45& 35\\
50& 40 \\
\hline
\end{tabular}

Mais lorsqu'il testent {\tt sapin(20,10)} ils n'obtiennent qu'un seul triangle
et s'apercoivent que'il y a une erreur....et ils sont alors oblig\'es de 
proc\'eder par essais et erreurs ...mais cela est quequefois difficile car il
 n'y a gu\'ere de diff\'erence entre  {\tt sapin(45,35)} {\tt sapin(45,36)}.\\
Il faut donc demander :\\
si {\tt a=100} que vaut {\tt b} ?\\
si {\tt a=25} que vaut {\tt b} ?\\
si {\tt a=5} que vaut {\tt b} ?\\
si {\tt a=10} que vaut {\tt b} ?\\
si {\tt a=20} que vaut {\tt b} ?\\
Comment \'ecrire cette famille avec un seul param\`etre ?
On veut arriver  \`a l'\'ecriture de la proc\'edure :
\begin{verbatim}
famille_sapin(k):={
sapin(5*k,4*k);
}
\end{verbatim}
Ainsi le {\tt sapin(50,40)} est le m\^eme que {\tt famille\_sapin(10)}.
\end{document}
