Sunteți pe pagina 1din 5

Prof:Elie Hamouche eliehamouche@hotmail.com elie12334.unblog.

fr 1/31/2011

Devoir Langage C- 2011

Remarque : la fonction principale main() est demande dans tous les exercices

Exercice1 :Simulation dune exprience alatoire(thorme des grands nombres) On lance 2 D quilibr de 1a 6. on sintresse a la somme des numros apparus et on cherche a dterminer la frquence dapparition de la somme 7 . Nous allons rpeter n fois cette experience en mesurant la frquence fn dapparition de la somme au cours de ces n lancers . Les nombres fn variant avec n ,mais cette frquence estime au cours de n rptitions se rapproche avec de certitude dune frquence thorique appel probabilit de lvnement au fur et a mesure que n devient grand. Ce thoreme est connu sous le nom <<Loi des grands nombres>> . a) Prparer un tableau sous C contenant les lments suivants : D1 D1 Somme Nb dapparition de 7 .. .. 1 .. Nb dexperience 1 2 3 4 5 frquence

4 5 1 .. ..

2 4 6 ..

6 9 7

0 0 1 .. ..

b) Quelle est la probabilit dobtenir une somme gale a 7 en sachant que P(A) = (Nb dissue de A /Nombre total dissues) pour tout evenment A comparer avec le result de la simulation ? 0<=P(A)<=1 ?

Exercice2 :polynome de Horner 5. Un polynme P(x) = P(x) = ((( . . + ) +

Peut tre crit en utilisant la mthode de Horner sous la forme : + ) + ) +

. +

a) Ecrire le code C qui prend de lutilisateur les valeurs de n et x puis les valeurs de , pour calculer la valeur de P(x) en utilisant la mthode de Horner ? dimension? c) Dterminer la somme des lments dindice paire impair de ce tableau ? Dduire la diffrence Sp-Si ? d) Soit f(x)=x+cos(x)-sin(x) . Ecrire une f onction C qui retourne la valeur de f(x) ? Affecter les lments de f(x) a un tableau T2(n) ? e) Fusionner les tableaux T1 et T2

b) Affecter les lments du polynme de Horner a un tableau T1(n) a une

, ...

Remarque : on commence par prendre la valeur de ainsi de suite .

, on calcule ensuite

.x puis on prend .x + )x et

,on lajoute a la somme et on multiplie le resultat par x pour avoir (

Exercice3 :fonctions rcursives

Soit la fonction f(x) =

2x^2+x+1 xx 0 si

si 0<x<1 x<0

x>=1

a) Proposer une fonction rcursive C qui prend en paramtre x calcule f(x) ? b) Ecrire une fonction qui prend en paramtre un entier x et calcule la somme des termes de la suite Vn dfinie par :

Sn = f(n)+f(n-1)+ f(n-2) +f(n-3 )+f(n-4) On arrte la somme lorsque la valeur de f calcule est nulle c) crire une fonction qui prend en paramtre un entier n et calcule la somme de Un = f(n)+f(n/2^2)+ f(n/3^2) +f(n/4^2)+f(n/5^2) + Dans cette somme, les divisions sont des divisions euclidiennes. On arrtera la somme lorsque la valeur de f calcule est nulle d) crire une fonction qui prend en paramtre un entier n et calcule la somme de Vn= f(n)+f(n/2)+ f(n/4) +f(n/8)+f(n/16) Dans cette somme ,les divisions sont des divisions euclidiennes. On arrtera la somme lorsque la valeur de f calcule est nulle e) Metrre leslemenst de la suite Un et Vn dans 2 tableaux T1 et T2 ? fusionner puis trier

Exercice4 :chaines de caractres a) crire une fonction qui calcule la longueur d'une chane. int longueur_chaine(char *S){..} b) crire une fonction supprime_espace qui supprime les espaces dans une d'une chane de caractres. Cette fonction ne doit pas utiliser de tableau intermdaire. void supprime_espaces (char *S){..} c)Ecrire une fonction qui inverse une chane de caractres et met le rsultat dans une autre. Les chanes sont donnes en argument. void inverse_chaine(char *S1, char * S2){..} e)crire une fonction compterMots ayant un argument (une chane de caractres) et qui renvoie un dictionnaire qui contient la frquence de tous les mots de la chane entre . int freq_mot(Char *S) {} f)Ecrire une procedure qui remplace les carcateres yant les voyelles a par y et les voyelles e par u . void remplace_voyelles (char * S) { }

g) Ecrire une function qui effectue tri lexicographique de la chaine Sen mettant les carcateres dans un ordre decroissant . void Tri_lexico(Char *S){} h) Ecrire une fonction qui effectue la comparaison des 2 chaines S1 et S2 compare_Chaine(char *s1,char *s2){} i) Ecrire une procedure qui saisit une chane dADN valide et une squence dADN valide ( valide signifie quelles ne sont pas vides et sont formes exclusivement dune combinaison arbitraire de "a", "t", "g" ou "c"). crire une fonction valide qui renvoie vrai si la saisie est valide, faux sinon. forme dune chane de caractres. crire une fonction proportion qui reoit deux arguments, la chane et la squence et qui retourne la proportion de squence dans la chane (cest--dire son nombre doccurrences).

Exercice5 : Polynomes et jeu Casino Partie 1 Developpez un programme en C qui effectue les operations daddition , de multiplication et de division des 2 polynmes a et b entrer par lutilisateur ou il suffit dentrer les coefficients et la puissance de chaque polynome. POLY tant un type expressment dfini pour reprsenter les polynmes. Dfinir une structure POLY(coeff,puiss) crivez les fonctions qui construisent et rendent comme rsultat le polynme qui est la somme , le produit et le quotient des polynmes reprsents par a et b.

POLY plus(POLY a, POLY b,int n, int m ); POLY Mult(POLY a, POLY b, int n,int m); POLY Quotient(POLY a, POLY b, int n,int m);

NB. Pour programmer la multiplication des polynmes, mettez profit la remarque : (PnxQm) = (anX^n+ Pn-1)(bnX^m+ Qm-1)
Partie2 Il vous est demand de dcrire une programme qui simule le jeu casino ,en vous conformant aux rgles suivantes :

Le joueur dispose dpart une quantit dargent T=100 et va miser une partie de ce argent(le montant s) sur un No de son choix parmi les valeur de {0,1,2,3,4,5}. Le tirage alatoire a eu lieu. Soit x le no tire.2 cas de figure peuvent se prsenter : Si n=x : le jouer a gagn. il rcupre la somme S quil a mis et gagne autant .la somme dont il dispose pour continuer a jouer est donc T+S Si n x : le jouer a perdu. il perd la somme S quil a mis sur le nombre n .la somme dont il dispose pour continuer a jouer est donc T-S Le joueur peut ensuite ensuite recommencer a jouer a condition quil ait encore de largent T>0 ou bine dcide darrter de jouer. Lorsque le joueur dcide darrter de jouer ou bine lorsquil n a plus dargent ,le programme affiche le bilan du jeu. Si T>100 , le programme affiche vous avez gagn de largent Si T =100 , le programme affiche vous navez pas perdu dargent Si T<100 , le programme affiche vous avez perdu de largent ! Si T =0 , le programme affiche vous etes ruin !

S-ar putea să vă placă și