Examen I20 janvier 1997 Université Bordeaux 1 Session de Janvier 1997
Département de Formation Premier Cycle
Module I20 Epreuve de J.Bétréma
GM MIP, MIP(E), IUP-MIAGE
Date : 20 Janvier 1997 Durée : 1h30
Tous documents interdits.
Les 3 exercices sont indépendants. Donner des réponses simples et précises : les fonctions C demandées sont très courtes (quelques lignes) ; veiller particulièrement à spécifier correctement leurs paramètres.
|
Ecrire une fonction C qui calcule le nème terme de cette suite.
typedef int matrice [MAX][MAX];
Ecrire une fonction C qui, pour un entier n donné, remplit une matrice avec la table des puissances ab mod n, où a et b varient entre 0 et n-1.
Note : on rappelle que x % n désigne, en C, le reste de la division de l'entier x par n.
|
typedef double polynome [MAX];et la fonction int degre (polynome p) qui calcule le degré d'un polynôme.
Note : cette fonction peut (et doit) être écrite directement, sans utiliser la fonction (vue en cours) qui effectue le produit de deux polynômes quelconques.
double suite (int n) { double u = 5; int i; for (i = 0; i < n; i++) u = u + 1/u; return u; }
void puissances (matrice m, int n) { int a, b; for (a = 0; a < n; a++) { m[a][0] = 1; for (b = 1; b < n; b++) m[a][b] = (a * m[a][b-1]) % n; } }
void ProduitFacteur (polynome p, double a) { int i, n = degre (p); if (n + 1 >= MAX) n--; for (i = n + 1; i > 0; i--) p[i] = p[i-1] - a*p[i]; p[0] = -a*p[0]; } void ProduitFacteurs (polynome p, double *a, int n) { int i; p[0] = 1; for (i = 1; i < MAX; i++) p[i] = 0; for (i = 0; i < n; i++) ProduitFacteur (p, a[i]); } double QuotientFacteur (polynome p, polynome q, double a) { double r; int i, n = degre (p); for (i = n; i < MAX; i++) q[i] = 0; r = p[n]; for (i = n-1; i >= 0; i--) { q[i] = r; r = p[i] + a * q[i]; } return r; }