Exercice 1

Écrire un programme qui décompose une somme d’argent en le nombre minimal de billets de 10 et 5 euros et pièces de 2 et 1 euros.

On utilisera pour cela une fonction calculant le quotient d’une division euclidienne.

Exercice 2

Écrire une fonction puissance telle que puissance(a, b) soit la valeur de a élevé à la puissance b.

Écrire une fonction exponentielle sans écrire de boucle. La constante e existe en java sous le nom Math.E.

Écrire un programme qui demande à l’utilisateur une valeur n et affiche successivement les valeurs de n^0, n^1, n^2, n^3, jusqu’à n^n.

Exercice 3

Écrire une fonction qui teste si un nombre est premier.

Écrire un programme qui affiche les nombres premiers inférieurs à n.

Exercice 4

Écrire une fonction qui convertit un nombre décimal en nombre binaire. On représentera les nombres binaires par des tableaux de chiffres 0 ou 1.

Écrire une fonction qui convertit un nombre binaire sous forme de tableau de bits en un nombre décimal.

Écrire une fonction qui convertit un nombre écrit en base b1 vers sa représentation en base b2. Dans les deux cas, les nombres seront représentés par des tableaux de chiffres. Dans le cas hexadécimal, les chiffres vont de 0 à 15, donc [15, 3, 15] est une représentation satisfaisante du nombre hexadécimal valant 3903 en décimal.

Écrire un programme demandant 2 nombres décimaux à l’utilisateur et les affichant en binaire, puis affichant leur somme et leur produit en hexadécimal.

Exercice 5

Compléter les types des variables des fonctions du programme suivant.

L’exécuter (sur papier).

static ??? f(??? x) {
	//entrée : x : ?
	//sortie : y : ?
	??? y = x+1;
	x = y+1;
	y = 2*x;
	return y;
}

static ??? g(??? y) {
	// entrée : y : ?
	// sortie : x : ?
	??? x = "y" + y;
	y = 0;
	return x;
}

public static void main(String[] args) {
	??? x = 16.1;
	??? y = f(x);
	??? z;
	x = f(x);
	y = f(x);
	z = g(y);
}