Programmation impérative : TP 3
Rappel : appel par valeur, par référence
- Écrire une procédure qui incrémente une variable, c'est-à-dire qui
ajoute 1 à son contenu. Comme toujours, on n'oubliera pas de
tester dans main.
- Écrire une procédure qui prend en paramètres une variable et un
entier et qui incrémente la variable de la valeur de l'entier.
Enregistrements
Un rationnel p/q peut être représenté
à l'aide d'un enregistrement précisant numérateur et dénominateur.
- Proposer un type pour les rationnels.
- Écrire une fonction réalisant l'addition de deux
rationnels (sans chercher à réduire la fraction
obtenue).
- Écrire une procédure qui réduit par effet un rationnel (pour que le
numérateur et le dénominateur soient premiers entre eux).
- Écrire une fonction réalisant l'addition de deux
rationnels (en réduisant la fraction
obtenue).
Tableaux, base
- Proposez une procédure qui affiche (sur une ligne) les
éléments d'un tableau d'int (correctement
espacés, sur 5 caractères), dans l'ordre des
indices.
- Proposez une procédure qui affiche les éléments
d'un tableau d'int, un par ligne,
précédés de l'indice leur correspondant entre
crochets.
Exemple : [42] : 666
- Proposez une fonction qui retourne la moyenne (double)
des éléments (int) d'un tableau.
Tableaux comme type concret
On se propose de représenter des polynômes de
degré au plus N-1 à l'aide de tableaux de N
cases tels que l'indice représente le degré du
monôme et la valeur à cet indice représente le
coefficient associé.
- Proposez une fonction qui retourne la valeur d'un polynôme
en un point donné, d'abord naïvement puis en
schéma de Horner.
- Proposez une procédure qui sur la donnée de trois
polynômes p1, p2 et p3
modifie p3 afin qu'il soit égal à la somme
de p1 et p2. On pourra supposer que les trois
polynômes sont de même degré (en ajoutant des coefficients
égaux à 0 le cas échéant).
Recherche en tables
On peut travailler sur deux tableaux pour associer par exemple des
prix à des références (et vice versa).
Considérons deux tableaux de même taille ref
et price. On range dans ref les
références des articles, on range dans price
les prix correspondants dans le même ordre. Par
hypothèse toutes les références doivent
être distinctes deux-à-deux.
- Proposez une fonction qui teste si un article est
référencé dans cette base.
- Proposez une fonction qui retourne le prix d'un article de
référence donnée.
- Proposez une procédure qui affiche les références
de tous les articles correspondant à un prix donné.