@ccueil Colles

Source LaTeX icone Activite-Programmation-graphique-Astroide-Sieprinski



Fichier
Type: Cours
File type: Latex, tex (source)
Télécharger le document pdf compilé pdficon
Description
Algorithme et programmation: glissement contre les échelons d'une échelle et triangle de Sierpiński
Niveau
-
Table des matières
  • Glissement le long d'une échelle
  • Triangle de Sierpiński
Mots clé
algorithme, programmation, graphique, astroide, triangle de Sierpinski, fractale de Siepinski, TI, python, Libxy, graphique
Voir aussi:

Documentation sur LaTeX
pdficon
Source LaTex icone
Télécharger le fichier source pdficon

\documentclass[12pt]{article}
\usepackage{amsfonts}\usepackage{amssymb}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage{calc}
\usepackage{enumerate}
\usepackage{array}
\usepackage{pst-all}
\usepackage{pstricks-add}

\usepackage{hyperref}
\hypersetup{
    pdfauthor={Yoann Morel},
    pdfsubject={Algorithmique et programmation},
    pdftitle={Algorithmique et programmation},
    pdfkeywords={Mathématiques, algorithmique, programmation, 
      lycée, 2nde, seconde, 1S, 
      première, S, 1èreS, 1ère S, terminale, terminale S, 
      TI, python}
}
\hypersetup{
    colorlinks = true,
    linkcolor = red,
    anchorcolor = red,
    citecolor = blue,
    filecolor = red,
    urlcolor = red
}
\voffset=-1.cm
% Raccourcis diverses:
\newcommand{\nwc}{\newcommand}
\nwc{\dsp}{\displaystyle}
\nwc{\ct}{\centerline}
\nwc{\bge}{\begin{equation}}\nwc{\ene}{\end{equation}}
\nwc{\bgar}{\begin{array}}\nwc{\enar}{\end{array}}
\nwc{\bgit}{\begin{itemize}}\nwc{\enit}{\end{itemize}}
\nwc{\bgen}{\begin{enumerate}}\nwc{\enen}{\end{enumerate}}

\nwc{\la}{\left\{}\nwc{\ra}{\right\}}
\nwc{\lp}{\left(}\nwc{\rp}{\right)}
\nwc{\lb}{\left[}\nwc{\rb}{\right]}

\nwc{\bgsk}{\bigskip}
\nwc{\vsp}{\vspace{0.1cm}}
\nwc{\vspd}{\vspace{0.2cm}}
\nwc{\vspt}{\vspace{0.3cm}}
\nwc{\vspq}{\vspace{0.4cm}}

\def\N{{\rm I\kern-.1567em N}}
\def\D{{\rm I\kern-.1567em D}}
\def\No{\N_0}
\def\R{{\rm I\kern-.1567em R}}
\def\C{{\rm C\kern-4.7pt 
\vrule height 7.7pt width 0.4pt depth -0.5pt \phantom {.}}}
\def\Q{\mathbb{Q}}
\def\Z{{\sf Z\kern-4.5pt Z}}


\nwc{\tm}{\times}
\nwc{\V}[1]{\overrightarrow{#1}}

\nwc{\zb}{\mbox{$0\hspace{-0.67em}\mid$}}
\nwc{\db}{\mbox{$\hspace{0.1em}|\hspace{-0.67em}\mid$}}

\nwc{\ul}[1]{\underline{#1}}

\newcounter{nex}%[section]
\setcounter{nex}{0}
\newenvironment{EX}{%
\stepcounter{nex}
\bgsk{\noindent {\bf Exercice }\arabic{nex}}\hspace{0.2cm}
}{}

\nwc{\bgex}{\begin{EX}}\nwc{\enex}{\end{EX}}

\nwc{\bgmp}{\begin{minipage}}\nwc{\enmp}{\end{minipage}}

\headheight=0cm
\textheight=26.2cm
\topmargin=-1.8cm
\footskip=0.8cm
\textwidth=18.6cm
\oddsidemargin=-1.3cm
\parindent=0.2cm

% Concernant la mise en page des algo:
\definecolor{grayp}{gray}{0.8}
\definecolor{graypc}{gray}{0.65}
\newlength{\ProgIndent}
\setlength{\ProgIndent}{0.6cm}

\nwc{\PI}{\hspace*{\ProgIndent}}
\nwc{\DPI}{\hspace*{2\ProgIndent}}
\nwc{\TPI}{\hspace*{3\ProgIndent}}
\nwc{\QPI}{\hspace*{4\ProgIndent}}

\newlength{\lgcoin}\setlength{\lgcoin}{3ex}
\newlength{\lgshadow}\setlength{\lgshadow}{0.5ex}
\newlength{\phgn}\newlength{\phgnp}
\newlength{\phgng}
\newlength{\plgn}\newlength{\plgng}
\newlength{\phgtq}\newlength{\phgtqg}
\newlength{\plgtq}\newlength{\plgtqg}
\newlength{\plgcoin}\setlength{\plgcoin}{3ex}
\newlength{\plgshadow}\setlength{\plgshadow}{0.5ex}
\nwc{\Prog}[3]{%
  %\par\vspd%
  \bgmp[t]{#2+0.5cm}%\linewidth}
  \hspace*{-0.3pt}\hspace*{-\parindent}\hspace*{-1ex}%
  \psframebox[fillstyle=solid,fillcolor=graypc]{
    \emph{\textcolor{white}{\!\!#1}}} \\
  \vspace*{-0.5ex}\\
  \bgmp{#2}
  %\setlength{\fboxrule}{0.1pt}
  \settototalheight{\phgn}{\phantom{\bgmp{#2}#3\enmp}}
  \setlength{\phgn}{\phgn-2ex}
  \setlength{\plgn}{\linewidth}
  \setlength{\phgtq}{-\phgn}%\addtolength{\hgtq}{-3ex}
  \setlength{\phgtqg}{\phgtq}\addtolength{\phgtqg}{-\lgshadow}
  \setlength{\plgng}{\plgn}\addtolength{\plgng}{\lgshadow}
  \setlength{\plgtq}{\plgn}\addtolength{\plgtq}{-\lgcoin}
  \setlength{\plgtqg}{\plgtq}\addtolength{\plgtqg}{\lgshadow}
  \setlength{\phgnp}{\phgn}\addtolength{\phgnp}{\lgcoin}
  \setlength{\phgng}{\phgnp}\addtolength{\phgng}{\lgshadow}
  \pspolygon[linecolor=white,fillstyle=solid,fillcolor=grayp]%
  (-1ex,-\phgnp)(-1ex,1ex)(\plgn,1ex)(\plgng,0)%
  (\plgng,\phgtqg)(\plgtqg,-\phgng)(-0.5ex,-\phgng)
  \pspolygon[linewidth=0.6pt,linecolor=graypc,fillstyle=solid,fillcolor=graypc]%
  (\plgn,\phgtq)(\plgtq,\phgtq)(\plgtq,-\phgnp)
  \pspolygon[fillstyle=solid,fillcolor=white]%
  (-1ex,-\phgnp)(-1ex,1ex)(\plgn,1ex)%
  (\plgn,\phgtq)(\plgtq,\phgtq)(\plgtq,-\phgnp)
  \par
  \bgmp{\linewidth}#3\enmp
  \enmp\enmp%
}

% et pour les progs casio:
\nwc{\return}{
  \psset{unit=1cm,arrowsize=4pt}
  \psline{<-}(0,0.1)(0.3,0.1)(0.3,0.25)}
\nwc{\disp}{\pspolygon[fillstyle=solid,fillcolor=black](0,0)(0.2,0)(0.2,0.15)}



% Bandeau en bas de page
\newcommand{\TITLE}{Algorithmique et programmation}
\author{Y. Morel}
\date{}

\usepackage{fancyhdr}

\pagestyle{fancyplain}
\setlength{\headheight}{0cm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.1pt}
\lhead{}\chead{}\rhead{}

\lfoot{Y. Morel - \url{xymaths.free.fr}}
\rfoot{\TITLE\ - Constructions géométriques - \thepage/\pageref{LastPage}}
\cfoot{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\vspace*{-0.4cm}


\ct{\LARGE\bf \TITLE}
\medskip
\ct{\Large\bf Constructions géométriques}
\bigskip

\noindent
\paragraph{\Large Glissement le long d'une échelle}

Ue poutre de 10m de haut est appuyée contre une échelle verticale. 
Elle est initialement verticale, puis glisse sur le sol 
et tombe d'échelon en échelon jusqu'à se retrouver complètement 
à l'horizontal sur le sol. 

\bgmp{13.5cm}
On note $A$ et $B$ les points aux extrémités de la poutre. 
\medskip

\hspace*{-1.2em}\bgmp{14.3cm}
\bgen
\item Donner les coordonnées de $A$ et de $B$ lorsque la poutre 
  est verticale. 
\item Donner les coordonnées de $A$ et de $B$ lorsque la poutre 
  a glissé d'un échelon. 
\item Donner les coordonnées de $B$ lorsque l'ordonnée de $A$ est $y$. 
\item \'Ecrire un algorithme et un programme qui trace toutes les positions 
  successives de la poutre, échelon après échelon, 
  depuis sa position verticale jusqu'à sa position finale horizontale. 

  \medskip
  Avec les calculatrices TI, dans le menu \texttt{dessin}, la commande 
  \texttt{Ligne$\lp x_A,y_A,x_B,y_B\rp$} permet de tracer le segment 
  $[AB]$

  En Python, avec \texttt{Libxy}, les commandes 
  $A=\lp x_A,y_A\rp$, $B=\lp x_B,y_B\rp$ puis 
  \texttt{Ligne(A,B)} permettent de tracer le segment $[AB]$. 

\item Donner, en fonction des coordonnées de $B$, celles de $B'$ 
  symétrique de $B$ par rapport à l'axe des ordonnées. 
  Tracer alors aussi les segments $[AB']$. 
\item Donner, en fonction des coordonnées de $A$, celles de $A'$ 
  symétrique de $A$ par rapport à l'axe des ascisses. 
  Tracer alors aussi les segments $[A'B]$ et $[A'B']$. 

  On obtient une \textbf{astro\"ide}.

  On peut obtenir une figure plus détaillée en utilisant des échelons 
  écartés de 50\,cm seulement (au lieu de 1\,m), ou encore de 10\,cm\dots
\enen
\enmp
\enmp
\hfill
\bgmp{6cm}
\[\psset{unit=.5cm,arrowsize=7pt}
\begin{pspicture}(-3,-1)(12,12)
\psline(-1.5,0)(9,0)
\psline[linewidth=3pt](0,0)(0,12)
\nwc{\f}[1]{#1 1 add}
\multido{\i=-2+1}{11}{\psline(\i,-1.2)(!\f{\i} \space 0)}
\multido{\i=1+1}{10}{\psline[linewidth=1pt]{-*}(0,\i)(0.1,\i)}
\psline[linewidth=1pt](0.15,9.4)(4.4,0)
\psline{->}(0.7,7.6)(0.7,6.)
\end{pspicture}\]

\[\psset{unit=.35cm,arrowsize=7pt}
\begin{pspicture}(-3,-1)(12,10)
\psline(-1.5,0)(10.8,0)
\psline(0,-2)(0,12)
\psline[linewidth=1.5pt]{->}(0,0)(2,0)
\psline[linewidth=1.5pt]{->}(0,0)(0,2)
\rput(-.5,-.6){$O$}
\rput(-.7,1){$\vec{i}$}
\rput(1,-.6){$\vec{j}$}
\psline[linewidth=1pt](0,9)(4.4,0)
\rput(-.5,9){$A$}
\rput(4.4,-.7){$B$}
\end{pspicture}\]

\enmp

\bigskip
\paragraph{\Large Triangle de Sierpi\'nski} - 
Construction géométrique \textit{a priori} aléatoire. 

\medskip\noindent
On considère dans le plan repéré, le triangle $ABC$ 
dont les sommets sont les points 
$A(0;0)$, $B(0;1)$ et $C(1;0)$. 

Soit de plus le point $M(0,5;0,5)$. 

On va construire un ensemble de points dans le triangle $ABC$ 
de la fa\c con suivante. 
\bgen 
\item On désigne au hasard un des trois sommets $A$, $B$ ou $C$. 
\item On construit et affiche le milieu du point $M$ précédent 
  et de ce sommet. 
\item Le point calculé précédemment devient le point $M$, 
  et on recommence à l'étape 1. 
\enen

\medskip\noindent
Construire 100 points suivant cette méthode 
\textit{(puis 200, 500, 1000\dots)}. \\
Que peut-on dire de l'effet de \textit{l'aléatoire} dans cette construction.

\medskip
\textbf{Indications de programmation}
\begin{description}
\item[TI:] Dans le menu \texttt{math}, puis probabilités (\texttt{PROB}), 
  la fonction \texttt{nbrAléatEnt(1,3)} permet de tirer un nombre entier 
  au hasard entre 1 et 3. 
\item[Python] Il faut charger la fonction \texttt{randint} 
  depuis une bibliothèque de fonctions mathématiques: 
  \mbox{\texttt{from random import randint}} , en tout début de programme; 
  ensuite la commande \texttt{randint(1,3)} permet de tirer un 
  nombre entier entre 1 et 3 au hasard. 
\end{description}

\clearpage
\vspace*{-0.4cm}
\setcounter{page}{1}

\ct{\LARGE\bf \TITLE}
\medskip
\ct{\Large\bf Constructions géométriques}
\bigskip

\noindent
\paragraph{\Large Glissement le long d'une échelle}

Ue poutre de 10m de haut est appuyée contre une échelle verticale. 
Elle est initialement verticale, puis glisse sur le sol 
et tombe d'échelon en échelon jusqu'à se retrouver complètement 
à l'horizontal sur le sol. 

\bgmp{13.5cm}
On note $A$ et $B$ les points aux extrémités de la poutre. 
\medskip

\hspace*{-1.2em}\bgmp{14.3cm}
\bgen
\item Donner les coordonnées de $A$ et de $B$ lorsque la poutre 
  est verticale. 
\item Donner les coordonnées de $A$ et de $B$ lorsque la poutre 
  a glissé d'un échelon. 
\item Donner les coordonnées de $B$ lorsque l'ordonnée de $A$ est $y$. 
\item \'Ecrire un algorithme et un programme qui trace toutes les positions 
  successives de la poutre, échelon après échelon, 
  depuis sa position verticale jusqu'à sa position finale horizontale. 

  \medskip
  Avec les calculatrices TI, dans le menu \texttt{dessin}, la commande 
  \texttt{Ligne$\lp x_A,y_A,x_B,y_B\rp$} permet de tracer le segment 
  $[AB]$

  En Python, avec \texttt{Libxy}, les commandes 
  $A=\lp x_A,y_A\rp$, $B=\lp x_B,y_B\rp$ puis 
  \texttt{Ligne(A,B)} permettent de tracer le segment $[AB]$. 

\item Donner, en fonction des coordonnées de $B$, celles de $B'$ 
  symétrique de $B$ par rapport à l'axe des ordonnées. 
  Tracer alors aussi les segments $[AB']$. 
\item Donner, en fonction des coordonnées de $A$, celles de $A'$ 
  symétrique de $A$ par rapport à l'axe des ascisses. 
  Tracer alors aussi les segments $[A'B]$ et $[A'B']$. 

  On obtient une \textbf{astro\"ide}.

  On peut obtenir une figure plus détaillée en utilisant des échelons 
  écartés de 50\,cm seulement (au lieu de 1\,m), ou encore de 10\,cm\dots
\enen
\enmp
\enmp
\hfill
\bgmp{6cm}
\[\psset{unit=.5cm,arrowsize=7pt}
\begin{pspicture}(-3,-1)(12,12)
\psline(-1.5,0)(9,0)
\psline[linewidth=3pt](0,0)(0,12)
\nwc{\f}[1]{#1 1 add}
\multido{\i=-2+1}{11}{\psline(\i,-1.2)(!\f{\i} \space 0)}
\multido{\i=1+1}{10}{\psline[linewidth=1pt]{-*}(0,\i)(0.1,\i)}
\psline[linewidth=1pt](0.15,9.4)(4.4,0)
\psline{->}(0.7,7.6)(0.7,6.)
\end{pspicture}\]

\[\psset{unit=.35cm,arrowsize=7pt}
\begin{pspicture}(-3,-1)(12,10)
\psline(-1.5,0)(10.8,0)
\psline(0,-2)(0,12)
\psline[linewidth=1.5pt]{->}(0,0)(2,0)
\psline[linewidth=1.5pt]{->}(0,0)(0,2)
\rput(-.5,-.6){$O$}
\rput(-.7,1){$\vec{i}$}
\rput(1,-.6){$\vec{j}$}
\psline[linewidth=1pt](0,9)(4.4,0)
\rput(-.5,9){$A$}
\rput(4.4,-.7){$B$}
\end{pspicture}\]

\enmp

\bigskip
\paragraph{\Large Triangle de Sierpi\'nski} - 
Construction géométrique \textit{a priori} aléatoire. 

\medskip\noindent
On considère dans le plan repéré, le triangle $ABC$ 
dont les sommets sont les points 
$A(0;0)$, $B(0;1)$ et $C(1;0)$. 

Soit de plus le point $M(0,5;0,5)$. 

On va construire un ensemble de points dans le triangle $ABC$ 
de la fa\c con suivante. 
\bgen 
\item On désigne au hasard un des trois sommets $A$, $B$ ou $C$. 
\item On construit et affiche le milieu du point $M$ précédent 
  et de ce sommet. 
\item Le point calculé précédemment devient le point $M$, 
  et on recommence à l'étape 1. 
\enen

\medskip\noindent
Construire 100 points suivant cette méthode 
\textit{(puis 200, 500, 1000\dots)}. \\
Que peut-on dire de l'effet de \textit{l'aléatoire} dans cette construction.

\medskip
\textbf{Indications de programmation}
\begin{description}
\item[TI:] Dans le menu \texttt{math}, puis probabilités (\texttt{PROB}), 
  la fonction \texttt{nbrAléatEnt(1,3)} permet de tirer un nombre entier 
  au hasard entre 1 et 3. 
\item[Python] Il faut charger la fonction \texttt{randint} 
  depuis une bibliothèque de fonctions mathématiques: 
  \mbox{\texttt{from random import randint}} , en tout début de programme; 
  ensuite la commande \texttt{randint(1,3)} permet de tirer un 
  nombre entier entre 1 et 3 au hasard. 
\end{description}


\label{LastPage}
\end{document}

Haut de la page Haut de la page