\documentclass[a4paper,titlepage,12pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[dvips]{graphics}
\usepackage{makeidx}
\usepackage[francais]{babel}
\usepackage[leqno]{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb,latexsym}
\usepackage{psfrag}
\usepackage{fancybox}
\usepackage{epsfig}
\usepackage[ruled,vlined,titlenotnumbered,french]{algorithm2e}
%\usepackage[ruled,vlined,french]{algorithm2e}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{epic}
\usepackage{amsthm}
\usepackage{amscd}
\usepackage{color}
\usepackage{enumerate}
\usepackage{fancyhdr}
\usepackage{url}

\newtheorem{rappel}{Rappel}[section]
\newtheorem{lemme}{Lemme}[section]
\newtheorem{cor}{Corollaire}[section]
\newtheorem{expe}{Expérimentation}[section]
\newtheorem{definition}{Définition}[section]
\newtheorem{definitions}{Définitions}[section]
\newtheorem{theoreme}{Théorème}[section]
%\newtheorem{exemple}{Exemple}[section]
%\newtheorem{exo}{Exercice}[section]
\newtheorem{prop}{Propriété}[section]
\newtheorem{props}{Propriétés}[section]
%\newtheorem{rque}{Remarque}[section]
\newtheorem{propo}{Proposition}[section]
\newtheorem{theo}{Théorème}[section]

\newcommand{\rque}
{\noindent \textrm{\underline{Remarque}~:~}\rm }

\newcommand{\rques}
{\noindent \textrm{\underline{Remarques}~:~}\rm }
%\newcounter{num}
%\renewcommand{\thenum}{\arabic{num}}
\newcommand{\exemple}%{\addtocounter{num}{1}
{\noindent \textbf{Exemple~:~}\rm }

%\newcounter{numo}
%\renewcommand{\thenumo}{\arabic{numo}}
\newcommand{\exo}%{\addtocounter{numo}{1}
{\noindent \textbf{Exercice~:~}\rm }



%\newenvironment{myquote}{%
 % \begin{quote}% Environnement quote
  %  \itshape   % \dots en italique
   % \small     % \dots en plus petit
%}{%
%  \end{quote}%
%}


\definecolor{vert}{rgb}{0,1,0}
\newcommand{\chapeau}{\widehat}
\newcommand{\itb}{\item[\textbullet]}
\newcommand{\ipt}{\item[$\centerdot$]}
\newcommand{\pt}{$\centerdot$}
\newcommand\ginter[2]{\bigcap_{#1}^{#2}}
\newcommand\gU[2]{\bigcup_{#1}^{#2}}
\newcommand\som[2]{\sum_{#1}^{#2}}
\newcommand\PI[2]{\prod_{#1}^{#2}}
\newcommand\C[2]{C_{#1}^{#2}}
\newcommand\B[2]{B_{#1}^{#2}}
\newcommand\A[2]{A_{#1}^{#2}}
\newcommand{\inclus}{\subset}
\newcommand{\barre}{\overline}
\newcommand{\U}{\cup}
\newcommand{\inter}{\cap}
\newcommand{\coeur}{$\heartsuit$}
\newcommand{\pique}{$\spadesuit$}
\newcommand{\trefle}{$\clubsuit$}
\newcommand{\carreau}{$\diamondsuit$}
\newcommand{\vide}{\emptyset}
\newcommand{\sol}{\underline{\bf Solution~:}}
\newcommand{\x}{\times}
\newcommand\coul[2]{\textcolor{#1}{#2}}
\newcommand\formule[1]{\textcolor{red}{#1}}
\newcommand\entiere[1]{\Big\lfloor #1 \Big\rfloor}
\newcommand\entiereexces[1]{\Big\lceil #1 \Big\rceil}
\newcommand\s[1]{\underline{#1}}
\newcommand\bleu[1]{\textcolor{blue}{#1}}
\newcommand\rouge[1]{\textcolor{red}{#1}}
\newcommand\verte[1]{\textcolor{vert}{#1}}
\newcommand{\deb}{\underline{début}}
\newcommand{\fin}{\underline{fin}}
\newcommand{\fpour}{\underline{fpour}}
\newcommand{\fsi}{\underline{fsi}}
\newcommand{\UNIX}{{\tt UNIX}}
\newcommand{\LINUX}{{\tt LINUX}}
\newcommand{\shell}{{\tt shell}}
\newcommand{\ftq}{\underline{ftq}}
\newcommand\attention[1]{\includegraphics[scale=0.4]{Images/warning.eps} {\large \textcolor{red}{#1}}}
\newcommand\image[2]{\begin{center}\includegraphics[scale=#1]{Images/#2}\end{center}}


%\renewcommand{\sectionmark}[1]{\markboth{\thesection.\ #1}}

\addtolength{\evensidemargin}{-2cm}
\addtolength{\oddsidemargin}{-2cm}
\addtolength{\textwidth}{4cm}
\addtolength{\topmargin}{-2cm}
\addtolength{\textheight}{3,5cm}


\pagestyle{fancy}


\begin{document}



\lhead{TP2 : L'instruction {\tt IF}}
%\lhead{\leftmark} 
%\chead{haut de page centre} 
\rhead{Initiation à l'algorithmique et au langage Pascal} 
\lfoot{ECE 1} 
\cfoot{\thepage} 
\rfoot{Emilie MORVANT}
\renewcommand{\headrulewidth}{0.4pt}  
\renewcommand{\footrulewidth}{0.4pt}


\sloppy

\sffamily


\begin{center}
\Huge{TP2 : {\tt IF} - {\tt FOR} - Polynômes}
\end{center}
Tous les exercices sont à faire dans l'ordre.\\
Un compte-rendu sera exigé dans deux semaines {\bf au plus tard}~: les questions doivent obligatoirement {\bf toutes être rédigées}. De plus les questions que vous n'aurez pas eu le temps de traiter en TP seront-elles aussi à rendre (qu'elles soient en gras ou non).\\
Vous pouvez effectuer le rendu de deux manières différentes :
\begin{itemize}
\itb Un rendu {\bf électronique} : à envoyer à l'adresse {\tt milie.morvant@gmail.com} avec OBLIGATOIREMENT pour objet : ``{\bf rendu tp2}'', les questions seront rédigées dans un fichier de nom : ``{\bf nom\_prenom}'' (les formats {\tt .txt}, {\tt .odt} et {\tt .doc} seront les seuls acceptés).
\itb Un rendu {\bf manuscrit} : à me rendre à la fin TP ou au début du TP du prochain groupe.
\end{itemize}
Dans les deux cas, la présentation et la rédaction doivent être {\bf claires}.

\paragraph{Exercice 1 : Un exemple important de l'utilisation du {\tt IF}}
\begin{enumerate}
\item Executer le programme suivant :
\begin{verbatim}
programm calcul;
var a,b : real;
begin
   write('Entrer deux réels a et b');
   readln(a,b);
   writeln('a-b=',a-b);
   writeln('a*b=',a*b);
   writeln('a/b=',a/b);
end.
\end{verbatim}
\item Avez-vous été confrontés à une erreur ? \\\hspace{0.5cm}Si oui, expliquer pourquoi et modifier le programme en conséquence.\\
  \hspace{0.5cm}Si non, réfléchir à ce qui pourrait causer une erreur puis modifier le programme en conséquence.
\item De la même manière modifier le programme suivant vu lors du TP1, afin que l'exécution fonctionne dans le cas où $a\leq 0$ ou $b<0$.
\begin{verbatim}
PROGRAM somme;
VAR a,b,x : real;
BEGIN
  write('taper des réels a et b');
  read(a,b);
  x := ln(a) + sqrt(b);
  writeln('le résultat est ',x);
END.
\end{verbatim}
\end{enumerate}

\paragraph{Exercice 2 : Résoudre des équations du premier et du second degré}
\begin{enumerate}
\item Ecrire le programme qui résoud une équation du premier degré : $ax\ +\ b\ =\ 0$, où $a$,$b$ sont des réels donnés par l'utilisateur.
\item Ecrire le programme correspondant à la résolution d'une équation du second degré : $ax^2\ +\ bx\ + c\ =\ 0$, où $a$, $b$ etla $c$ sont des réels donnés par l'utilisateur.\\
{\it (indication : Ce programme permet de voir comment utiliser plusieurs {\tt IF} imbriqués : un {\tt if} ne sera alors exécuter que si le précédent le permet.)}
\item modifier le programme précédent de manière à résoudre l'équation :  $ax^2\ +\ bx\ + c\ =\ d$, où $a$, $b$, $c$ et $d$ sont des réels donnés par l'utilisateur.
\end{enumerate}


\paragraph{Exercice 3 : Les polynômes et {\tt Pascal}}
\begin{enumerate}
\item Comment peut-on  déclarer un polynôme à coefficients réels en {\tt Pascal} ?
\item Ecrire un programme ``type'' pour déclarer un polynôme.
\end{enumerate}

\paragraph{Exercice 4 : Algorithme de Horner} 
Soit $x$ un réel. Le calcul de la valeur $P(x)$ prise en $x$ par un polynôme $P$ peut-être effectué de différentes façons.
\begin{enumerate}
\item On peut par exemple utiliser l'algorithme naïf, où l'on recalcule la valeur de $x^i$ pour chaque monôme. Ecrire l'algorithme corespondant.
\item On peut aussi conserver la valeur $x^{i-1}$ de façon à n'avoir plus qu'une multiplication à faire pour calculer $x^i$.
\item L'agorithme le plus économique est connu sous le nom d'algorithme de Hoerner, et repose sur l'égalité suivante :
\begin{align*}
P(x)\ &=\ a_nx^n\ +\ a_{n-1}x^{n-1}\ +\ \dots\ +\ a_1x\ +\ a_0\\
&=\ a_0\ +\ x\bigg(a_1\ +\ x\Big(a_2\ +\ x\big(a_3\ +\ \dots\ x(a_{n-1}\ +\ xa_n)\dots\big)\Big)\bigg)
\end{align*}
Ecrire l'algorithme de Horner.
\end{enumerate}


\end{document}
