You are on page 1of 9

Facult des Sciences Universit Libre de Bruxelles

Anne acadmique 1997-1998

Informatique Exercices: noncs

Notes rdiges par Eddy Kestemont

E. Kestemont: Informatique - Exercices

-2-

7 aot 1997

INTRODUCTION
Ce fascicule reprend les noncs proposs aux sances d'exercices et sminaires ainsi que les sujets qui ont t suggrs dans le pass comme travaux facultatifs. On trouvera galement l'ensemble des questions poses aux diffrents examens crits depuis que le cours d'Informatique est devenu obligatoire pour la majorit des sections de la Facult des Sciences. Dans une premire partie nous donnons tous les noncs. Les solutions aux problmes et les rponses aux questions d'examens sont regroupes dans une seconde partie. Les exercices proprement dits sont ceux repris dans l'application "Le langage Pascal" qui se trouve disposition sur les ordinateurs Macintosh de la salle de travaux pratiques. Pour ces exercices, nous donnons tout d'abord l'ensemble des noncs pour permettre aux tudiant(e)s d'y rflchir, de tenter de les rsoudre sans tre influencs par la lecture des solutions proposes. Toutefois, pour faciliter la lecture, nous redonnons l'nonc avant chaque solution; celle-ci reprend non seulement l'algorithme mais aussi le programme PASCAL correspondant avec ventuellement une ou des variantes et galement les donnes ncessaires son excution. Toutes les solutions proposes ne sont pas commentes autant que nous l'aurions voulu! On soumettra toutes les solutions proposes une critique attentive... certaines pouvant n'tre correctes que dans certaines situations, pour des ensembles particuliers de donnes. Nous accueillerons volontiers les remarques, corrections que les lecteurs voudront bien formuler.

I. ENONCES A. Algorithmes et programmes


a. Instructions simples 1. Ecrire un algorithme et le programme correspondant qui crit 5 et 7 2. Lire deux entiers, crire leur somme et leur diffrence. N.B.: la lecture peut se faire soit partir du clavier du micro-ordinateur, soit partir d'un fichier pralablement cr partir d'un autre logiciel (traitement de texte, tableur, programme pascal...) et enregistr sur disque dur ou disquette.

E. Kestemont: Informatique - Exercices

-3-

7 aot 1997

b. Boucles 3. Lire des nombres entiers un par un, crire leur valeur absolue jusqu'au dernier nombre du fichier qui est 0 (valeur sentinelle). 4. Ecrire les dix premiers nombres entiers 5. Ecrire les dix premiers nombres impairs. 6. Idem mais criture de 20 4 7. Ecriture des nombres impairs de 3 17 8. Lire un nombre entier qui correspond au nombre d'tudiants qui ont prsent un examen. Lire ensuite une cote (comprise entre 0 et 20) pour chaque tudiant. Calculer la moyenne et l'cart type remarque: l'cart type est la racine carre de <x2 > - <x>2 o <...> reprsente la valeur moyenne 9. Lire sur un fichier les cotes d'tudiants (comprises entre 0 et 20), calculer la moyenne et l'cart type. La valeur sentinelle est -1. 10. Ecrire la solution de l'quation du premier degr A x + B = 0 pour toutes les valeurs de A et de B comprises entre 1 et NA d'une part, 1 et NB d'autre part. 11. Tabulation de la fonction sin(x) pour x compris entre 0 et 2 . 12. Ecrire un programme qui tabule les fonctions sin(x), cos(x), et la valeur de 1-cos2 x - sin2 x pour 1000 valeurs de x allant de 0 /2. c. Alternatives 13. Ecrire un algorithme qui lit deux nombres et crit la somme s'ils sont tous les deux positifs et le produit s'ils sont tous les deux ngatifs 14. Ecrire un algorithme qui value la variable boolenne OK qui prend la valeur "vrai" si deux nombres lus sont plus grands que 15 et si un troisime nombre lu est positif. L'algorithme crira la valeur de OK. 15. Ecriture des multiples de 4 jusque 100 sauf 24 16. Lire une suite de nombres. Ecrire la valeur du plus petit et celle du plus grand. La valeur sentinelle est - . 17. Ecrire le programme Pascal qui lit un nombre rel et l'crit s'il est positif 18. Ecrire un programme qui lit une cote (entier, sur 20) et crit "la plus grande distinction" si elle est suprieure ou gale 18, "grande distinction" si elle est gale 16 ou 17, "distinction" si elle vaut 14 ou 15, "satisfaction" si elle

E. Kestemont: Informatique - Exercices

-4-

7 aot 1997

est gale ou suprieure 10 et infrieure 14. Si elle est infrieure 10, le programme crira "ajourn". 19. Lecture des nombres n1 et n2 et criture des nombres de n1 n2, sauf les multiples de 3 et les multiples de 5. 20. Ecrire la solution de l'quation du premier degr A x + B = 0 pour toutes les valeurs de A et de B comprises entre 1 et NA d'une part, 1 et NB d'autre part sauf lorsque A est gal B 21. Lire un code opratoire (qui peut prendre les valeurs 1 4) et deux nombres entiers. Suivant la valeur du code 1, 2, 3 ou 4, effectuer respectivement l'addition, la soustraction, la multiplication ou la division entire des deux nombres. Recommencer l'valuation jusqu'au moment o le code opratoire prend la valeur 0. 22. Ecrire un algorithme (et le programme) qui lit un nombre d'articles (entier), le prix unitaire de l'article (rel), calcule le prix total, tenant compte d'un taux de tva de 19,5% et d'une rduction de 20% si le montant hors taxe est suprieur 10000 francs, une rduction de 5% si le montant hors taxe est compris entre 5000 et 10000 francs; si le montant est compris entre 0 et 5000 francs, il n'y a pas de rduction. L'algorithme crira le prix unitaire, le montant hors taxe, le montant toute taxe comprise rduction dduite! d. Vecteurs 23. Ecrire une procdure qui recherche dans un vecteur de dimension N, l'indice de la composante contenant la valeur X. Considrer d'abord le cas o l'on est sr que X se trouve dans le vecteur, puis le cas gnral. 24. Ecrire un programme qui lit les composantes d'un vecteur, appelle une procdure valuant la norme du vecteur et crit cette norme. 25. On dispose sur un fichier de couples de vecteurs dans un espace tridimensionnel. Les donnes se prsentent sous forme de lignes de 6 valeurs relles correspondant respectivement aux composantes x, y, z du premier vecteur et des composantes x, y, z du second vecteur. a. Ecrire une fonction qui calcule le produit scalaire de deux vecteurs. b. Ecrire une procdure qui calcule le produit vectoriel de deux vecteurs. c. Ecrire un programme qui lit les donnes, appelle la fonction et la procdure et crit les rsultats. 26. Dfinissons la relation d'ordre entre vecteurs de dimension N de la manire suivante: V1 < V2 ssi pour tout i de 1 N V1i < V2i V1 = V2 ssi pour tout i de 1 N V1i = V2i V1 > V2 ssi pour tout i de 1 N V1i > V2i

E. Kestemont: Informatique - Exercices

-5-

7 aot 1997

Ecrire une fonction valeur (pluspetit, gal, plusgrand, indfini) pour tester la relation entre deux vecteurs. La fonction prendra la valeur "indfini" si aucune des trois relations n'est vrifie. e. Rcurrences 27. Ecrire la suite des nombres de Fibonacci donns par la rcurrence Tn = T n-2 + T n-1 avec T0 = 0 et T1 = 1

les nombres crits seront infrieurs 100. 28. Lire deux nombres entiers naturels et calculer leur PGCD par la mthode d'Euclide. Soit P le plus petit et G le plus grand; remplaons le couple (P,G) par (P,G-P) et ensuite le plus grand de cette nouvelle paire par sa diffrence avec le plus petit. On recommence ainsi l'opration jusqu' ce que les deux nombres de la paire soient gaux: ils fournissent le PGCD. 29. Ecrire un programme qui lit le degr d'un polynme, puis les coefficients de celui-ci (polynme sous la forme anxn+an-1xn-1...+a0). Le polynme sera valu pour diverses valeurs de la variable, valeurs qui seront galement lues, jusqu' une valeur sentinelle gale -1000.0. f. Caractres 30. Lire un caractre sur un fichier. Lire ensuite successivement des caractres jusqu'au moment o on retrouve le premier caractre. Ecrire son numro d'ordre. 31. Ecrire une fonction dont les paramtres sont un mot et un caractre, fonction qui prend comme valeur la position du caractre dans le mot. NB: le dernier caractre du mot est un blanc; le mot est implment sous forme d'un vecteur 20 composantes. 32. Compter le nombre de mots dans une phrase termine par un point. 33. Ecrire une fonction valeur entire qui convertit une chane de caractres (string) reprsentant un nombre entier en un entier. Le string est fourni sous forme de vecteur. La fin du string est un caractre "blanc". 34. Ecrire une fonction valeur relle qui convertit une chane de caractres reprsentant un nombre rel en un rel. Le string est fourni sous forme de vecteur. La fin du string est un caractre "blanc". La chane reprsentant le nombre est donne sous la forme suivante: "signe""partie entire"."partie dcimale"

E. Kestemont: Informatique - Exercices

-6-

7 aot 1997

Le signe peut tre + ou -, ou peut tre absent, la partie entire prcde le point dcimal (!). Il n'y a pas de blanc dans la chane. exemple de donne: -45.832 Supposer que les donnes sont correctes. La fonction prendra la valeur correspondant la chane. 35. Ecrire une procdure qui transforme une chane de caractres reprsentant un entier positif en une chane de caractres reprsentant son complment. Nous appellerons complment de 274, l'entier 726! 36. On lit une srie de chanes (strings) se prsentant sur un fichier de la manire suivante: chane1chane2texte "" est un dlimiteur; "chane1" est un string de caractres de longueur plus grande ou gale 1; "chane2" est un string de longueur plus grande ou gale 0; "texte" est un string reprsentant un texte se terminant par un point. Il s'agit d'crire une procdure qui remplace dans le "texte", toutes les occurrences de "chane1" par "chane2". "chane1" et "chane2" n'ont pas ncessairement la mme longueur. On supposera que le vecteur contenant "texte" initialement est suffisamment grand que pour pouvoir le contenir aprs transformation. exemple de donne: estetaitce chien est grand et il est laid. transforme le texte "ce chien est grand et il est laid.", en "ce chien etait grand et il etait laid." On suppose que, avant l'appel la procdure, la chane de caractres figurant sur le fichier de donnes a t lue et place dans trois vecteurs de caractres, respectivement chane1 qui contient "chane1", chane2 qui contient "chane2" et texte contenant "texte." g. Tables 37. Ecrire une procdure qui insre une information dans une table non trie. 38. Ecrire une procdure qui tasse une table non trie. Ecrire le programme Pascal correspondant. 39. Ecrire une procdure qui tasse une table trie. Ecrire le programme Pascal correspondant. h. Entits 40. Ecrire une procdure qui tasse une table trie dans le cas o la table est un annuaire tlphonique dfini de la manire suivante: Type abonn est entit compose de

E. Kestemont: Informatique - Exercices

-7-

7 aot 1997

nom: vecteur 1 20 de car numro: 1000 ... 9999 adresse: vecteur 1 100 de car fentit annuaire = vecteur 1 n d'abonn Variable table: annuaire

Une information de la table est considre comme "vide" lorsque le champ "nom" contient une chane de 20 caractres blancs ' '. 41. Ecrire des procdures qui permettent d'effectuer les additions et soustractions de nombres complexes. procdure addition (x,y:complexe , z: complexe ) procdure soustraction (x,y:complexe , z: complexe ) et la fonction qui calcule le module du nombre complexe z: fonction module(z: complexe) valeur relle Les nombres complexes seront implments sous forme d'entits deux champs type complexe est entit compose de Re, Im: rel fentit

42. Ecrire des fonctions, de type complexe, ralisant les mmes oprations d'addition et de soustraction de nombres complexes! fonction addition (x,y:complexe): complexe fonction soustraction (x,y:complexe): complexe i. Listes Dans les exercices qui suivent, on considre des entits deux champs et des pointeurs dfinis de la manire suivante: est pointeur vers lment est entit compose de info: entier ptr: pve fentit. 43. Ecrire un algorithme qui cre une liste compose de n entits, le nombre n tant lu sur un fichier. Le champ info contiendra le numro d'ordre de l'entit multipli par 10. Ecrire le programme Pascal correspondant. 44. Ecrire une procdure qui dtermine la longueur d'une liste procdure longueur ( tte : pve ; l : entier ) pve lment

E. Kestemont: Informatique - Exercices

-8-

7 aot 1997

o tte est le pointeur qui donne accs la liste, et l est la longueur (le nombre d'entits) de la liste. 45. Ecrire une procdure qui insre une information en fin de liste. 46. Ecrire une procdure qui insre une information en tte de liste. 47. Ecrire une procdure qui, partir d'une suite alatoire de caractres, cre une liste trie. Les entits constituant la liste contiendront un champ "info" reprenant le caractre et un champ pointeur vers l'lment suivant de la liste. On dfinira les types suivants pva pointeur vers lment lment entit compose de nom: car suivant: pva fentit 48. On dsire implmenter un rpertoire de noms et de numros de tlphone sous forme de listes (car on ne sait pas a priori combien d'informations seront contenues dans le rpertoire). Afin de pouvoir accder relativement rapidement un abonn particulier, on cre un vecteur 26 composantes de pointeurs vers des entits (la premire composante donne accs une liste contenant les noms commenant par la lettre A, la deuxime composante du vecteur donne accs la liste des noms commenant par la lettre B, etc... On suppose que la structure existe, et que dans chaque liste les noms sont tris par ordre alphabtique. On travaille avec des entits et pointeurs dfinis par pva pointeur vers abonn abonn entit compose de nom: vecteur 1..20 de car numro: 1111..9999 suivant: pva fentit Le rpertoire est donc R vecteur 'a'..'z' de pva La structure peut tre visualise de la manire suivante:

E. Kestemont: Informatique - Exercices

-9-

7 aot 1997

On demande d'crire une procdure qui renvoie le numro de tlphone d'un abonn particulier (s'il existe dans le rpertoire) procdure tel ( R: vecteur 'a'..'z' de pva, personne: vecteur 1..20 de car, numro-de-tl: entier, trouv: boolen ) 49. On demande d'crire une procdure qui renvoie le numro de tlphone d'un abonn particulier (s'il existe dans le rpertoire)

TABLE DES MATIERES


Introduction......................................................................................................3 I. Enonces ..........................................................................................................3 A. Algorithmes et programmes .........................................................3 a. Instructions simples .............................................................3 b. Boucles ...................................................................................4 c. Alternatives ...........................................................................4 d. Vecteurs .................................................................................5 e. Rcurrences............................................................................6 f. Caractres ...............................................................................6 g. Tables .....................................................................................7 h. Entits.....................................................................................7 i. Listes........................................................................................8

E. Kestemont: Informatique - Exercices

- 10 -

7 aot 1997