Vous êtes sur la page 1sur 4

Dlgation dErrachidia Lyce Ibntahir CPGE

Le :21/11/2011 Classes : Mp1 & Mp2 Prof : A Dindane

Devoir surveill PREUVE D'INFORMATIQUE


Dure 2 heures

La prcision des raisonnements algorithmiques ainsi que le soin apport la rdaction et la prsentation des copies seront des lments pris en compte dans la notation. Il convient en particulier de appeler avec prcision les rfrences des questions abordes. Si, au cours de l'preuve, un candidat repre ce qui peut lui sembler tre une erreur d'nonc, il le signale sur sa copie et poursuit sa composition en expliquant les raisons des initiatives qu'il est amen prendre. ******* Remarques gnrales : - L'preuve se compose dun problme deux parties indpendantes. - Toutes les instructions et les fonctions demandes seront crites en langage C. - Les questions non traites peuvent tre admises pour aborder les questions ultrieures.

PROBLEME: OPRATIONS SUR DES POLYNOMES A COEFFICIENTS REELS Prambule : Un monme est une expression de la forme : axn ou a est un nombre rel et n un entier naturel. Le nombre a est appel coefficient du monme et le nombre n est appel le degr du monme. Exemple : 3x est un monme du second degr et de coefficient 3 Une somme de plusieurs monmes est un polynme. Exemples : 3x - 5x + 7 est un polynme du second degr -x3 + 4x - 9 est un polynme du 3me degr 3 est un polynme de degr 0 Ce problme s'intresse aux algorithmes ralisant quelques traitements sur des polynmes coefficients rels.

Partie A : Reprsentation des polynmes par des tableaux une dimension (vecteur) Dans cette partie, il s'agit de reprsenter par des tableaux, des polynmes dont les coefficients sont des nombres rels quelconques.

Exemple : Le polynme p=5x6+3x3-8x+2 sera reprsent par le tableau P=[2,-8,0,3,0,0,5] Le tableau P suivant P=[0,2,0,0,-7,3], reprsente le polynme P=3x5-7x4+2x NB : on nome polynme tableau A, un tableau A contenant les coefficients dun polynme.

Question 1 : Saisie dun polynme tableau + Ecrire une fonction en langage C dentte : void saisiepoly(float t[], int n) qui permet de saisir les coefficients dun polynme de degr n dans un tableau pass comme paramtre. Exemple : Si le polynme saisir est : 3x5+6x3+2 alors Le polynme tableau sera :[2,0,0,6,0,3]

Question 2 : valeur dun polynme en un point x. +Ecrire une fonction en langage C qui reoit trois paramtres, un polynme tableau, son degr et un nombre rel x et retourne la valeur du polynme tableau en ce point x. Exemple : Si le tableau polynme A =[3,2,0,4] et x = 2 alors La valeur que retournera la fonction est : 4*23+0*22+ 2*21+3=39 Question 3 : Drive dun polynme +Ecrire une fonction dentte void Deriveepoly(float t[], float d[], int n) qui permet de mettre le polynme driv du polynme tableau t de degr n dans le polynme tableau d. Exemple : -Si t=[3,2,0,8,0,4] son polynme driv est d=[2,0,24,0,20] Question 4 : Somme de deux polynmes + crire une fonction C, cinq paramtres, qui calcule la somme de deux polynmes tableaux A et B de degrs respectivement n et m et met le rsultat dans le polynme tableau C. Exemple : - Si A=[5,4,6,-1,0,7] et B=[2,8,-5,3] alors C=[7,12,1,2,0,7] Question 5 : Affichage dun polynme + crire une fonction en langage C qui reoit un tableau polynme et son degr comme paramtres et affiche ce polynme sous la forme daffichage conventionnel des polynmes. Exemple : Si A=[2, 4,0,0,8,-6] la fonction affiche :A=-6x^5 +8x^4+4x^1+2

Partie B : Utilisation des listes chanes Dans cette partie, on se propose de reprsenter des polynmes coefficient rels par des listes chanes dfinies en langage C comme suit : struct monome { float coefficient; /* le coefficient du monme Int exposant ; /* le degr du monme struct monome *suiv; /* l'adresse de l'lment suivant }; typedef struct monome monome ; typedef monome* polynome ;

Appellation : On appellera polynme liste p, une liste chane d'lments de type monome (dfinie plus haut) et possdant les proprits suivantes : - Le premier lment a l'adresse p. - Le dernier lment a dans son champ suiv la valeur NULL Exemple : Le polynme P=5x4+3x2+6x-8 sera reprsent par le polynme liste p comme suit : Schma :

-8

NULL

Question 6 : saisie de polynmes Soit la dclaration globale suivante : polynome p; +crire une fonction d'entte : void saisir() qui permet de saisir le polynme liste p. Tapez un exposant ngatif pour mettre fin la saisie. Rappel : L'appel malloc(t) ( t tant un entier positif), permet d'allouer t octets dans la mmoire dynamique et retourne l'adresse mmoire du block allou. La fonction malloc() est dfinie dans le fichier de la bibliothque stdlib.h

Question 7 : calcul de la valeur dun polynme +Ecrire une fonction qui renvoie la valeur du polynme liste p pour une valeur donne x passe comme paramtre la fonction.

Question 8 : multiplication dun polynme par un monme. +crire une fonction C qui renvoie le polynme liste rsultat de la multiplication dun polynme liste passs comme paramtre par un monme de la forme axn ou a et n sont respectivement un rel et un entier passs aussi comme paramtres la fonction.

F I N D E L' P R E U V E