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);
}

Exercice 6

Écrire les fonctions de manipulations de tableaux d’entiers suivantes :

  1. estDans qui teste si un élément est présent dans un tableau. Par exemple estDans( 3, [1, 3, 5]) est vrai.
  2. compteNonNuls qui compte combien d’éléments d’un tableau d’entiers sont différents de 0. Par exemple compteNonNuls( [1, 3, 0, 5, 2, 0] ) vaut 4.
  3. simplifie qui prend un tableau et renvoie un nouveau tableau contenant uniquement les éléments non nuls du premier. Par exemple simplifie( [1, 3, 0, 5, 2, 0] ) vaut [1, 3, 5, 2].
  4. intersection qui prend deux tableaux et fabrique le tableau qui contient les éléments présents dans les deux tableaux. On supposera que les tableaux de départs ne contiennent pas de 0. Par exemple intersection( [1, 3, 5, 2], [4, 5, 3]) vaut [3, 5] (à l’ordre près).
  5. union qui prend deux tableaux d’entiers non nuls et renvoie le tableau contenant une fois chaque élément présent dans l’un ou l’autre des tableaux. Par exemple union( [1, 3, 5, 2], [4, 5, 3]) vaut [1, 3, 5, 2, 4] (à l’ordre près).