TP "Programmation structurée"

Page Home (contact) Retour TPs

Support de cours


Algorithme d'Euclide pour le cacul du PGCD

Décomposez l'algorithme d'Euclide selon le principe de la programmation structurée (une seule structure à chaque décomposition).

Traduisez en Java (les 2 nombres du départ sont entrés au clavier). Testez.

Correction

Décomposition

Pgcd.java


Puissance d'un nombre m dans la décomposition en facteurs d'un autre nombre n

Par exemple, la puissance de 2 dans la décomposition en facteurs de 18 est 1 ; la puissance de 3 dans cette même décomposition est 2. En effet, 18 est divisible par 2 mais pas par 22 et il est divisible par 32; mais pas par 33.

m et n sont entrés au clavier au début du programme.

Écrivez un programme Java qui affiche la puissance de m dans la décomposition en facteur de n. Où intervient le fait que n peut ne pas être divisible par m ?

Correction

Puissance.java


Calcul de n!

Ecrivez un programme Java qui affiche la valeur de n! pour un n entré au clavier par l'utilisateur au début du programme.

Donnez 2 versions itératives (avec une répétition "tant que", puis "for").

Testez pour n = 0, n = 1 et n = 3.

Optionnel : prouvez que votre code pour la version avec "tant que" est bon en utilisant un invariant de boucle.

Correction

Versions itératives

Preuve


Si vous avez fini avant les autres...

Reprenez le dernier exercice mais utilisez la classe java.math.BigInteger pour représenter les nombres entiers. Vous pourrez ainsi calculer n! pour les grands nombres.

Pour les meilleurs : écrivez un programme qui vous permet de dire quel est le plus grand n pour lequel le programme fonctionne si vous n'utilisez pas BigInteger. mais plutôt int ou long. La plus grande valeur pour un entier positif de type int est donnée par Integer.MAX_VALUE


Retour TPs