Source Latex
du cours de mathématiques
\documentclass[12pt]{article}
\usepackage{amsfonts}\usepackage{amssymb}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{calc}
\usepackage{array}
\usepackage{pst-all}
\usepackage{hyperref}
\hypersetup{
pdfauthor={Yoann Morel},
pdfsubject={Cours mathématiques: algorithmique},
pdftitle={Algorithmique},
pdfkeywords={Mathématiques, algorithmique, programmation,
lycée, 2nde, seconde, 1S,
première, S, 1èreS, 1ère S, terminale, terminale S,
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{\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\large {\bf Exercice }\arabic{nex}}\hspace{0.2cm}
}{}
\nwc{\bgex}{\begin{EX}}\nwc{\enex}{\end{EX}}
\nwc{\bgfg}{\begin{figure}}\nwc{\enfg}{\end{figure}}
\nwc{\epsx}{\epsfxsize}\nwc{\epsy}{\epsfysize}
\nwc{\bgmp}{\begin{minipage}}\nwc{\enmp}{\end{minipage}}
\nwc{\deftitle}{Définition}
\newlength{\ldef}\settowidth{\ldef}{\deftitle:}
\nwc{\bgdef}[1]{\paragraph{\ul{\deftitle:}}
\begin{minipage}[t]{\textwidth-\ldef-2em}{\it #1}
\end{minipage}
}
\nwc{\proptitle}{Prop.}
\newlength{\lprop}\settowidth{\lprop}{\proptitle:}
\nwc{\bgprop}[1]{\paragraph{\ul{\proptitle:}}
\begin{minipage}[t]{\textwidth-\ldef-2em}{\it #1}
\end{minipage}
}
\headheight=0cm
\textheight=26.2cm
\topmargin=-1.8cm
\footskip=0.8cm
\textwidth=18.6cm
\oddsidemargin=-1.3cm
\parindent=0.2cm
\newcommand{\TITLE}{Introduction à l'algorithmique et la 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 - \href{https://xymaths.fr/Lycee/2nde/Mathematiques-2nde.php}{xymaths.fr - 2nde}}
\rfoot{\TITLE\ - \thepage/\pageref{LastPage}}
\cfoot{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\vspace*{-0.4cm}
\ct{\LARGE \bf \TITLE}
\vspace{0.6cm}
\bgdef{{\bf Algorithme}
Un algorithme est une succession d'instructions
(aussi appelées commandes) et permettant la résolution systématique
d'un problème donné.
}
\vspq
{\it
Le mot ``algorithme'' vient du nom du mathématicien perse
Al Khuwarizmi (latinisé au Moyen Age en Algoritmi),
qui, au IXe siècle écrivit le premier ouvrage
sur la résolution systématique de certaines équations
(en plus d'introduire le zéro des Indiens).
}
\vspd
Par exemple, l'algorithme suivant:
\fbox{
\bgmp[t]{6.cm}
\texttt{Pour A allant de 1 à 10\\
\hspace*{0.5cm}stocker A*A dans B\\
\hspace*{0.5cm}Afficher B\\
Fin Pour}
\enmp
}
\vspt
permet d'afficher les carrés des 10 premiers entiers naturels.
\bgdef{{\bf Langage de programmation}
Un langage de programmation est un ensemble d'instruction et de
règles syntaxiques compréhensible par un système automatisé
(calculatrice, ordinateur, puce électronique,\dots).
Un programme est alors la traduction d'un algorithme dans un langage
de programmation particulier.
}
\vspd
Il existe de très nombreux langage de programmation, par exemple,
Basic, Fortran, C, C++, assembleur, Python, Matlab, ainsi que par exemple ceux
implantés dans les calculatrices (alors dites ``programmables''\dots).
\bgdef{{\bf Variable}
On appelle variable tout emplacement de la mémoire dans lequel est,
ou peut-être, stockée une information.
Une variable est constituée de :
\bgit
\item un nom qui permet à l'ordinateur de la localiser dans sa
mémoire
\item une valeur: l'information (souvent un nombre) qu'elle
contient.
\enit
}
\vspq
Tous les langages de programmation permettent d'effectuer des
algorithmes comprenant des \ul{opérations} \ul{élémentaires}
(addition, multiplication, division, \dots) , ainsi
que quelques \ul{structures} fondamentales.
\vspq\vspd\noindent
\bgmp[t]{10cm}
Suite d'opérations élémentaires: \vsp\\
\fbox{
\bgmp{7cm}
\texttt{Afficher "Entrer D: "\\
Lire D\\
R prend la valeur D/2\\
C prend la valeur 3,14*R*R\\
Afficher C}
\enmp}
\enmp
\bgmp[t]{10cm}
\ \\
\fbox{
\bgmp{7cm}
\texttt{Lire A\\
Lire B\\
Lire C\\
D prend la valeur A+B+C\\
E prend la valeur D/3\\
Afficher E}
\enmp
}
\enmp
\vspq\vspd\noindent
\ul{Structure} \texttt{Tant que \dots, faire \dots, Fin Tant que}
(\texttt{While \dots, do \dots, end})\vsp\\
\bgmp[t]{10cm}
\fbox{
\bgmp{7cm}
\texttt{Lire A\\
Tant que A>0 faire\\
\hspace*{0.5cm}A prend la valeur A-1\\
\hspace*{0.5cm}Afficher A\\
Fin Tant que}
\enmp
}
\enmp
\bgmp[t]{10cm}
\fbox{
\bgmp{7cm}
\texttt{Lire N \\
Tant que N>0 faire \\
\hspace*{0.5cm}N prend la valeur N-2\\
Fin Tant que\\
Afficher N
}
\enmp
}
\enmp
\clearpage
\noindent
\ul{Structure (boucle)} \texttt{Pour} {\it variable} \texttt{allant de} {\it début}
\texttt{à} {\it fin}, \texttt{faire} \dots\,,
\texttt{Fin Pour}\\
(\texttt{For \dots, do \dots, end})
\vspd\\
\bgmp{7.5cm}
Effectuer l'algorithme suivant sur le graphique ci-contre: \vsp\\
\fbox{
\bgmp{7.5cm}
\texttt{Pour i allant de 2 à 18\\
\hspace*{0.5cm}Afficher le point (i;2)\\
\hspace*{0.5cm}Afficher le point (i;10)\\
Fin Pour}
\vspd
\texttt{Pour j allant de 3 à 9\\
\hspace*{0.5cm}Afficher le point (2;j)\\
\hspace*{0.5cm}Afficher le point (18;j)\\
Fin Pour}
\vspd
\texttt{Pour i allant de 3 à 10\\
\hspace*{0.5cm}Afficher le point (i;9+i/2)\\
\hspace*{0.5cm}Afficher le point (i+8;15-i/2)\\
Fin Pour
}
\enmp}\enmp\hspace{1cm}
\bgmp{8cm}
\psset{xunit=0.5cm,yunit=0.6cm}
\begin{pspicture}(0,0)(20,15)
\pspolygon[linewidth=0.5pt,linestyle=dashed](0,0)(20,0)(20,15)(0,15)
\psline[linewidth=1.5pt]{->}(0,0)(1,0)
\psline[linewidth=1.5pt]{->}(0,0)(0,1)
\rput(0.5,-0.3){$\scriptstyle\vec{i}$}
\rput(-0.3,0.5){$\scriptstyle\vec{j}$}
\rput(-0.3,-0.3){$\scriptstyle 0$}
\multido{\i=0+1}{21}{
\multido{\ii=0+1}{16}{
\psdot(\i,\ii)
}
}
\end{pspicture}
\enmp
\vspace{1cm}\noindent
\ul{Structure conditionnelle} \texttt{Si \dots, faire \dots, Sinon
faire \dots, Fin Si}\\
(\texttt{if \dots, do \dots, else do \dots, end})
\vsp\\
\bgmp[t]{10cm}
\fbox{
\bgmp{8cm}
\texttt{Afficher ``Quel est votre age ?''\\
Lire A\\
Si A<18, alors \\
\hspace*{0.5cm}Afficher ``Vous êtes mineur''\\
Sinon \\
\hspace*{0.5cm}Afficher ``Vous êtes majeur''\\
Fin Si
}
\enmp
}
\enmp
\bgmp[t]{9cm}
\fbox{
\bgmp{6.5cm}
\texttt{Lire X1, X2, X3, X4, X5\\
M prend la valeur X1\\
Pour i allant de 2 à 5\\
\hspace*{0.5cm}Si Xi > M, faire\\
\hspace*{0.5cm}\hspace*{0.5cm}M prend la valeur Xi\\
\hspace*{0.5cm}Fin Si\\
Fin Pour\\
Afficher M
}
\enmp
}
\enmp
\vspq\noindent
{\bf Exercices:}
Ecrire un algorithme permettant de :
\vspd\bgit
\item[1.] demander à l'utilisateur les
coordonnées de deux points $A$ et $B$, et qui affiche les
coordonnées du milieu $I$ de $[AB]$ et la distance $AB$.
\vspd
\item[2.] demander à l'utilisateur les coordonnées d'un point $M$,
et d'afficher, étant donner les points $A(3,2;0,6)$ et $B(-1;2)$,
si $M$ est sur la médiatrice de $[AB]$.
\vspd
\item[3.] Demander un nombre entier \texttt{n} et calculer la somme :
\hspace*{1cm}\texttt{1 + 2 + 3 + \dots + n}
\vspd
\item[4.]
\bgit
\item[a)] demander à l'utilisateur un nombre entier $m$ et
d'afficher la suite: \texttt{1 2 3 \dots m}
\item[b)] demander un nombre entier \texttt{n} et afficher les suites
suivantes:
\texttt{1\\
1 2\\
1 2 3\\
1 2 3 4\\
\vdots \\
1 2 3 4 5 \dots n}
\enit
\vspd
\vspd
%\item[4.] Tracer la courbe représentative de la fonction
% $f:x\mapsto 2x+1$.
\enit
\label{LastPage}
\end{document}
Télécharger le fichier source