next up previous
suivant: À propos de ce

Examen de TD n°2


$\textstyle \parbox{120mm}{%%
La durée de l'examen est de 30 minutes, les notes...
...uement à titre indicatif. Il pourra être modifié
lors de la notation finale. }$


Cet examen concerne l'utilisation de listes pour représenter des ensembles polynômes.

Les types utilisés dans cette épreuve sont les suivants:

typedef struct s_maillon *p_maillon_t;
typedef p_maillon_t       liste_t;
typedef struct s_maillon {
  int valeur;
  p_maillon_t suivant;
} maillon_t;
typedef liste_t polynome_t;
Vous pourrez également utiliser si vous le désirez les fonctions usuelles nil,car et cdr. On rappelle que le cdr d'une liste vide est, par convention, la liste vide et que le car d'une liste vide est indéfini et arrête le programme.

Le polynôme $ a_nX^n + a_{n-1}X^{n-1} + \dots + a_1X+ a_0$ sera représenté par la liste $ \{a_0,a_1,\dots,a_{n-1},a_n\}$.
\begin{Question}\textbf{(1.5 points)}
Écrire une fonction \textsf{C}\xspace \te...
...st de degré
strictement négatif et représenté par la liste vide.
\end{Question}

\begin{Reponse}
L'objectif est de construire une liste de la forme
$[\underbra...
...utilisée de façon
intensive et inutile lors des appels récursifs.
\end{Reponse}

\begin{Question}\textbf{(2 points)}
Écrire une fonction \textsf{C}\xspace \text...
...et \texttt{somme(A,
B)} avant et après l'appel à \texttt{somme}.
\end{Question}

\begin{Reponse}
\begin{Verbatim}polynome_t somme(polynome_t A, polynome_t B) ...
...lors du produit qui va être étudié dans les questions
suivantes).
\end{Reponse}

\begin{Question}\textbf{(1.5 points)}
Écrire une fonction \textsf{C}\xspace \te...
...^i = a_0 +
x(a_1 +x ( a_2 + x( \dots a_{n-1}+x(a_n)\dots)))$~).
\end{Question}

\begin{Reponse}
\begin{Verbatim}
int eval(polynome_t A, int x) {
if(A==nil()) return 0;
return (car(A) + x*eval(cdr(A),x));
}\end{Verbatim}\end{Reponse}

\begin{Question}\textbf{(2.5 points)}
Écrire une fonction \textsf{C}\xspace \te...
...me\_mult(a,i,A)} avant et après
l'appel à \texttt{monome\_mult}.
\end{Question}

\begin{Reponse}
\begin{Verbatim}polynome_t monome_mult(int degre,int coeffici...
...xttt{A}. Une nouvelle
liste est créée et il n'y a pas d'aliasing.
\end{Reponse}

\begin{Question}\textbf{(2.5 points)}
Écrire une fonction \textsf{C}\xspace \te...
...tim} et qui renvoie la liste représentant le polynôme $A\cdot B$.
\end{Question}

\begin{Reponse}
\begin{Verbatim}polynome_t mult(polynome_t A, polynome_t B) {...
... Pour bien
faire, il faudrait se prendre un peu plus la tête\dots
\end{Reponse}





Arnaud 2001-12-07