You are on page 1of 3

TP 5 : fonctions, boucles while

Informatique Fondamentale (IF1) Semaine du 26 Octobre 2008

Fonctions

Exercice 1. Sans utiliser les oprateurs logiques ||, &&, ! etc., crivez les quatre fonce e tions suivantes dans une mme classe OperateursBooleens : e not de signature public static boolean not(boolean b), qui prend un boolen en param`tre, et qui calcule sa ngation ; e e e and de signature public static boolean and(boolean b, boolean c), qui prend deux boolens en param`tre, et qui calcule leur conjonction ; e e or de signature public static boolean or(boolean b, boolean c), qui prend deux boolens en param`tre, et qui calcule leur disjonction ; et e e xor de signature public static boolean xor(boolean b, boolean c), qui prend deux boolens en param`tre, et qui calcule leur disjonction exclusive. e e Testez vos quatre fonctions (sur toutes les valeurs possibles de leurs param`tres) dans le e programme principal de la classe, en achant leurs rsultats. e Exercice 2. Dans une classe Trie, crivez trois fonctions appeles premier, deuxieme e e et troisieme, qui prennent chacune en param`tre trois entiers, et qui calculent respece tivement le plus grand, le deuxi`me et le plus petit des trois entiers. e Par exemple, premier aura la signature public static int premier(int a, int b, int c). Dans le programme principal de la classe, crivez un programme qui lit trois entiers e sur lentre standard et les ache dans lordre croissant. Pour cela, utilisez les fonctions e premier, deuxieme et troisieme.

Boucles indnies e

Exercice 3. Ecrivez un programme Encore qui demande ` lutilisateur encore ? , a et qui continue de lui poser la question tant que celui-ci lui rpond oui . e Exercice 4. La commande Unix yes ache indniment sur la console des lignes e contenant le caract`re y . Ecrivez un programme Java Yes qui a le mme come e portement. Vous pouvez interrompre ce programme en tapant ^C (tenez la touche Control enfonce pendant que vous tapez un c). e

Exercice 5. Ecrivez un programme qui demande des entiers tant que lutilisateur rentre un entier positif puis ache leur somme et leur moyenne ;

Des approximations numriques e

Exercice 6. Etant donn un rel positif a, on dnit la suite relle (xn )nN de la mani`re e e e e e suivante : x0 = a x2 + a i xi+1 = 2xi Cette suite converge vers a. Ecrivez une fonction mysqrt de signature public static double mysqrt(double a, int n) qui prend en param`tre un ottant a et un entier n et qui retourne une valeur approche e e de a en utilisant lapproximation xn . Ecrivez une fonction main qui lit un ottant a et un entier n et ache b = mysqrt(a, n). Achez aussi b2 pour vrier. e Exercice 7. Un tudiant place 1 zl1 dans une banque. Cette somme sera rmunre au e e ee 2 , ltudiant se retrouvera donc en possession de 2 zl au taux de 100% ` la n de lanne a e e bout dun an. Un deuxi`me tudiant choisit de placer son zl dans une banque lui orant e e un taux de rmunration de 50% tous les six mois. Ce dernier se retrouvera en possession e e de 2, 25 zl ` la n de lanne. a e Ecrivez une fonction qui calcule ce que ltudiant n, qui ` plac son zloty dans une e a e banque lui orant un taux de rmunration de 1/n toutes les 1/n annes, poss`de ` la e e e e a n de lanne. Ecrivez un programme (une fonction main) qui vous permette de tester e cette fonction. Votre programme calcule des valeurs approches de e. Estimez vous que la convere gence est rapide ?

i>0

Ruptures de boucle

Exercice 8. 1. Ecrivez un programme qui ache la table de multiplication : 1 2 3 4 5 ... 10 2 4 6 8 10 ... 20 ... 10 20 30 40 50 ...100
1 2

Zloty, lunit montaire polonaise. e e Exceptionnel, ou alors donnez-moi ladresse de votre banque.

Pour aligner les valeurs, vous pourrez utiliser une expression de la forme (n >= 10 ? "" : " ") + n 2. Ecrivez un programme qui lit un entier n puis qui ache la table de multiplication en sarrtant d`s quil rencontre n. e e 12 1 2 2 4 3 6 4 5 ... 10 8 12

3. Ecrivez une fonction qui prend un entier en param`tre et retourne true si et e seulement si cet entier appara dans la table de multiplication, en prenant soin de t cesser de parcourir la table d`s lors que la valeur est trouve. Ecrivez une fonction e e main et testez votre programme.

Algorithme dEuclide

Exercice 9. Lalgorithme dit dEuclide permet de calculer le pgcd de deux entiers positifs non nuls. Il est bas sur les proprits suivantes : e ee si a < b, alors pgcd(a, b) = pgcd(b, a) ; si b divise a, alors pgcd(a, b) = b ; sinon, pgcd(a, b) = pgcd(b, r), o` r est le reste de la division euclidienne de a par u b. Ecrivez une fonction pgcd qui calcule le pgcd de ses deux param`tres ` laide de lalgoe a rithme dEuclide. Comme dhabitude, crivez une fonction main qui vous permette de la e tester.

You might also like