Écrivez un programme qui affiche une température en ... · Écrivez une méthode qui prend 5...

27
TP1 : LES VARIABLES Écrivez un programme qui affiche une température en Celsius et en Fahrenheit (°F = °C × 1,8 + 32). Écrivez un programme qui affiche un certain nombre de secondes sous la forme _ _ heures, _ _ minutes et _ _ secondes (par exemple 9999 donnera 2 heures, 46 minutes et 39 secondes).

Transcript of Écrivez un programme qui affiche une température en ... · Écrivez une méthode qui prend 5...

TP1 : LES VARIABLES

Écrivez un programme qui affiche une température en Celsius et en Fahrenheit (°F = °C × 1,8 + 32).

Écrivez un programme qui affiche un certain nombre de secondes sous la forme _ _ heures, _ _ minutes et _ _ secondes (par exemple 9999 donnera 2 heures, 46 minutes et 39 secondes).

TP2 : METHODES ET PACKAGE

Écrivez une méthode qui reçoit le rayon d’une sphère en entrée, et renvoie en sortie le volume de la sphère (4πr³/3), ainsi qu'une méthode qui renvoie sa surface (4πr²).

Écrivez une méthode qui reçoit une chaîne de caractère en entrée, et renvoie en sortie cette chaîne où toutes les lettres 'r' seront remplacés par 'l'.

Écrivez une méthode qui prend 5 lettres en entrée et renvoie en sortie une chaîne de caractère composée de ces 5 lettres dans l'ordre inverse.

Écrivez une méthode qui prend un certain nombre d'heures, de minutes et de secondes en entrée, et renvoie en sortie le nombre total de seconde que cela donne.

· L'heure/minute/seconde est introduit par l'utilisateur · L'heure/minute/seconde est généré aléatoirement (facultatif) · L'heure/minute/seconde est l'heure locale du pc (facultatif)

TP3 : LES CONDITIONS

Ecrire un programme qui demande à l’utilisateur d’entrer au clavier successivement 3 valeurs entières, et affiche en sortie la valeur la plus élevée qui a été introduite. Au cas où au moins 2 des entiers sont égaux, afficher une petite phrase pour informer l’utilisateur.

Écrivez une méthode qui demande à l'utilisateur de deviner un nombre entier. Renvoie en sortie le message "trop grand", "trop petit" ou "gagné" suivant la valeur entrée.

TP4 : LES ITERATIONS

Implémentez la méthode pair, qui prend une valeur entière en entrée et qui affiche à l'écran toutes les nombres pairs comprises entre 2 et cette valeur et renvoie en sortie la somme de ces nombres.

Implémentez la méthode voyelle, qui prend une chaîne de caractère en entrée et qui renvoie en sortie le nombre de voyelle (le nombre total de 'a', 'e', 'i', 'o' et 'u').

Implémentez la méthode table10, qui affiche à l'écran toutes la table de multiplication entre 1 et 10.

Exercice avec les *.

TP5 : LES TABLEAUX

Implémentez la méthode sumArray, qui prend un tableau d’entier en entrée et en sortie la somme de tous les éléments du tableau. En même temps, la méthode devra également afficher le contenu du tableau à l’écran.

(Question examen septembre 2005) Écrivez une méthode, verifierMul, qui reçoit comme arguments d’entrée un tableau d’entiers L et un nombre entier n, et qui renvoie en sortie true si tous les entiers de la liste L sont des multiples exacts du nombre n et false si au moins un des nombres de L ne l’est pas (nous considérons que 0 est un multiple exact de tout nombre entier).

Écrivez une méthode, appelée inverse, ayant comme paramètre d’entrée deux tableaux d’entiers de même taille (message d’erreur sinon), la méthode ne renvoie rien mais va permuter le contenu des deux tableaux et afficher leur contenu à l’écran.

Écrivez une méthode qui demande à l’utilisateur d’entrer un nombre arbitraire d’entiers compris entre 0 et 9. L’utilisateur doit entrer -1 s’il a fini d’introduire les chiffres. Le nombre d’occurrence pour chaque nombre est affiché alors sur le terminal.

TP6 : LES TABLEAUX A DEUX DIMENSIONS (MATRICES)

Implémentez une méthode, maxmatrice, qui reçoit une matrice d’entiers en entrée et qui renvoie en sortie un entier qui est la valeur du plus grand élément de la matrice.

Implémentez une méthode, ligSomme, qui reçoit une matrice carrée d’entiers en entrée et qui renvoie en sortie un tableau contenant la somme des éléments pour chaque ligne de la matrice.

Modifiez la méthode précédente en colSomme, qui reçoit une matrice carrée d’entiers en entrée et qui renvoie en sortie un tableau contenant la somme des éléments pour chaque colonne de la matrice.

(Examen septembre 2005) Modifiez de nouveau la méthode 2 en demiSomme, qui reçoit une matrice carrée d’entiers en entrée et qui renvoie en sortie en sortie un tableau contenant la somme des éléments pour chaque ligne de la matrice, mais uniquement des éléments de la partie diagonale droite de la matrice (les éléments qui se situent sur la diagonale ou à droite de la diagonale).

(Examen janvier 2007) Un carré magique d’ordre n est une matrice carrée (n x n) telle que la somme des entiers de chaque ligne, de chaque colonne et des deux diagonales principales est identique. Écrivez une méthode qui teste si une matrice carrée représente un carré magique. La méthode renverra « true » si la matrice donnée est un carré magique, « false » sinon. Il faut auparavant vérifier que la matrice d’entrée est carrée; si ce n’est pas le cas, la méthode doit envoyer « false ».

Version courte :

Version longue :

Version très longue :

(Examen janvier 2006) Ecrivez une méthode Java, arrToMat, qui reçoit comme argument d’entrée un tableau à une dimension d’entiers v = {l1, l2, l3, l4,…, ln–1, ln} et qui renvoie en sortie une matrice carrée mat de nombre de lignes et de colonnes égal à la taille du tableau v et contenant les éléments de v répartis de la manière suivante :

Notez que la matrice est carrée et symétrique et qu’il y a moyen de résoudre le problème à l’aide d’une double boucle. Nous déconseillons donc fortement l’utilisation de plus de deux boucles.

TP7 : ARRAYLIST

(Examen janvier 2006 modifié) Implémentez une méthode, vLuxe, qui reçoit en entrée deux tableaux de même taille (à vérifier). Le premier tableau contient le nom de plusieurs modèles de véhicules, et le second tableau contient le prix de ces véhicules. La méthode devra renvoyer en sortie un ArrayList contenant le nom des véhicules de luxe. Un véhicule sera considéré comme "de luxe" si son prix excède de plus de deux écart-types le prix moyen des véhicules enregistrés (pi> 2s + m). Pour rappel, l’écart-type est donné par la formule :

où m est la moyenne des prix, pi est le prix de la voiture i, et n est le nombre total de véhicules. Pour facilité la lecture, développez des méthodes séparées pour le calcul du prix moyen et de l’écart-type.

Implémentez une méthode, ajoutPrenom, qui reçoit en entrée un ArrayList composé de prénoms classés dans l’ordre alphabétique, et d’un nouveau prénom. Ne rien faire si le prénom s’y trouve déjà, sinon ajouter ce prénom dans la liste en respectant l’ordre alphabétique. Afficher la liste pour terminer. Remarque : utiliser pour la résolution la méthode compareTo de la classe String : x.compareTo(y)

Dans la méthode main d’une classe Liste, créez une liste de type ArrayList. La méthode est composée de deux boucles :

· Dans la première boucle, on demande à l’utilisateur d’entrer des prénoms qui seront stockés dans la liste (entrée vide pour quitter la boucle par exemple).

· Dans la deuxième boucle on affiche à chaque fois la liste des prénoms, et l’utilisateur doit donner le numéro du prénom qu’il veut supprimer de la liste (0 pour quitter par exemple).

TP8 : QUESTIONS D’EXAMEN (Examen juin 2004) Ecrire une méthode Java, appelée getPremiers, qui reçoit en entrée un entier positif n et imprime à l’écran tous les nombres premiers compris entre 1 et ce nombre n. Par contre, si le nombre n fourni en paramètre est nul ou négatif, il faut afficher un message d’erreur et ne rien calculer. Rappelons qu’un nombre premier est un chiffre positif qui n’est divisible que par lui-même et par 1. Un nombre x est divisible par un nombre y si et seulement si le reste de la division de x par y est nul: x%y == 0. Il faudra donc parcourir tous les nombres compris entre 1 et n et, pour chacun de ces nombres, vérifier s’il est premier. Pour vérifier si un nombre est premier, il faut détecter s’il est divisible par un nombre inférieur à celui-ci.

(Examen septembre 2005) Une firme pétrolière enregistre la liste des prix hebdomadaires du litre de diesel pendant une certaine période totale. La firme souhaite connaître la longueur de la plus longue période durant laquelle le prix du litre de diesel a strictement augmenté, ainsi que le prix moyen du litre de diesel pendant cette période. En résumé, écrivez une méthode, prixDiesel, qui reçoit un tableau à 1 dimension en argument et qui, sur cette base : 1) calcule et imprime à l’écran la longueur de la plus longue période durant laquelle le prix du litre de diesel a strictement augmenté; 2) calcule et renvoie le prix moyen du litre de diesel pendant cette période strictement croissante. Pour simplifier le problème, nous supposerons qu’il n’y a qu’une seule « plus longue période » dans le tableau.

(Examen septembre 2006) Ecrivez une méthode, anagramme, qui reçoit comme arguments d’entrée deux chaînes de caractère str1 et str2, et qui renvoie en sortie true si les deux chaînes de caractère sont des anagrammes, false sinon (une anagramme est un mot obtenu par transposition des lettres d’un autre mot). Attention, nous posons comme hypothèse que chaque lettre de l’alphabet n’apparaît qu’au plus une fois dans chaque chaîne de caractère (les lettres de l’alphabet n’apparaissent jamais en double dans une chaîne de caractères).

(Examen septembre 2007) vous demande d’écrire la méthode produitMatrice qui calcule le produit matriciel ordinaire de deux matrices A et B. Le produit de deux matrices ne peut se définir que si le nombre de colonnes de la première matrice est le même que le nombre de lignes de la deuxième matrice. Si A = (aij) (aij sont les éléments de la matrice) est une matrice de taille (m, n) et B = (bij) est une matrice de taille (n, p), alors leur produit, noté AB = (cij) est une matrice de taille (m, p) donnée par :

Pour simplifier le problème, nous allons supposer que les matrices A et B sont de types compatibles et non vides.

(Examen janvier 2008) On vous demande d’écrire la méthode verifierRegleCarre qui vérifie le respect la règle du sudoku qui impose que tous les chiffres apparaissant dans un carré 3x3doivent être différents. La grille du jeu sera représentée 9 carrées 3x3. La position d’une case de la grille est donnée par les trois indices :

(1) le numéro du carré (compris entre 0 et 8, sachant que le carré 0 se trouve tout en haut à gauche et le carré 8 se trouve tout en bas à droite)

(2) la ligne dans ce carré (et pas dans la grille) qui prend une valeur entre 0 et 2 (3) la colonne dans ce carré (et pas dans la grille) qui prend une valeur entre 0 et 2.

Notez que, par convention, une case vide contiendra le chiffre 0, alors qu’une case non vide contiendra un chiffre entre 1 et 9. La méthode verifierRegleCarrereçoit donc cinq paramètres : le tableau contenant les 9 carrés, un entier compris entre 1 et 9 à ajouter à la position donnée.

La méthode renverra « true » si l’ajout est possible, « false » sinon. Nous supposons que tous les paramètres passés à la méthode sont dans les bons intervalles de valeur.