IFT1010 Programmation I

Département d'informatique et de
recherche opérationnelle

Hiver 2002


Accueil

Professeurs et
Démonstrateurs

Horaires et locaux

Notes de cours

Démonstrations
et devoirs

Examens

Liens utiles

Au sujet du
livre de cours

Consultez vos notes

Foire aux questions
(FAQ)

Démonstration 2: Entrées/sorties, classe String et Math


Pratique | Exercice Noté

Entrées d'information au clavier

Java possède entre autres défauts celui de ne pas offrir un mécanisme simple pour permettre à un utilisateur de saisir du texte depuis le clavier (du moins dans des applications en mode texte). C'est pour cette raison que de nombreux ouvrages vous offrent une classe permettant de vous simplifier la tâche.

C'est par exemple le cas de livre de Lewis et Loftus qui proposent des exemples de programmes utilisant une classe Keyboard écrite par les auteurs.

Cette classe a été installée sur le compte dift1010 dans le répertoire RessourcesJava, et, si vous avez suivi correctement les instructions de la demonstration 1, alors le programme TempConverter.java (et les autres que vous écrirez) devraient pouvoir être compilés et exécutés sans problème.

Si tel n'est pas le cas, suivez les consignes de la demonstration 1 (il n'est jamais trop tard pour bien faire). Et si vous n'arrivez toujours pas à le compiler, demander conseil à vos charmants démonstrateurs.

La description de la classe Keyboard vous a été faite en démonstration théorique et est décrite dans le livre de Lewis et Loftus. Voici une API très sommaire des méthodes disponibles dans cette classe (générée par javadoc, merci David :-)

Conseil: Ne lisez pas la suite de la planche avant d'avoir réussi à compiler puis excécuter le programme précédant.

Travail pratique (pas noté)

Expressions arithmétiques

Supposons les déclarations et initialisations suivantes :

int total = 10, num = 0, num1 = 3, num2 = 5;
double d = 4.0;
boolean test;
char c1 = 'r', c2;

Pour chacune des lignes suivantes donner le résultat de la variable qui est à gauche de l'égalité (ex. : la variable total pour la première ligne) après l'exécution de l'instruction associée:

  • total = num1 + num 2 / 2;
  • total = num++;
  • total %= 4;
  • total = (num1>num2) ? num1 : num2;
  • d = (double) (num1 / num2);
  • d = num1 / d - (double) (num2) / 2;
  • test = (total > 0 && num1 + num2 > total);
  • c1 += 4;
  • c2 = (char) ((c1 >= 'A' && c1 <= 'Z') ? c1 : (c1 - 'a' + 'A'));

Vérifiez vos réponses en compilant un programme Java contenant ces instructions.

Saisie au clavier et affichage

Écrire un programme qui demande à l'usager d'entrer son nom, son prénom, sa couleur préférée, son jour de naissance (ex. : le 23) et son année de naissance (ex. : 1975).

L'usager doit presser [ENTER] entre chaque entrée. Votre programme devra calculer le résultat de l'addition du jour et de l'année de naissance (ex. : 23+1975 = 1998). De plus, vous devrez vous servir de la méthode toUpperCase de la classe String pour que le nom entré au clavier soit affiché en majuscule (ex.: on a entré Lafortune, on doit alors afficher LAFORTUNE).

Voici un exemple d'affichage que doit produire votre programme:

Nom et prenom : Bill TREMBLAY
Couleur preferee : Bleu
Jour et annee de naissance : 12,1977
Resultat de l'addition : 1989

Classes Keyboard et String

Écrire un programme qui demande à l'usager:

  • d'entrer une phrase au clavier,
  • une lettre à remplacer dans la phrase entrée,
  • la lettre de remplacement
Votre programme remplace alors les occurrences de la lettre à remplacer par la lettre de remplacement. Voici un exemple d'exécution:

Entrez une phrase : Voici mon deuxième programme en Java!
Lettre à remplacer : m
La remplacer par : x
La nouvelle phrase est : Voici xon deuxiexe prograxxe en Java!

Vous pouvez vous servir des méthodes replace et charAt de la classe String.

Exercice noté (1 point)

Informatique et pizzas

Vous êtes en charge des commandes de pizzas pour le prochain 5 à 7 de l'association étudiante. Votre fournisseur vous offre la possibilité d'acheter des pizzas plus petites pour la moitié du prix d'une plus grosse.

Vous devez écrire un programme en Java nommé Exercice2.java ayant pour but de vous aider à décider quelle est la meilleure option (les deux petites pizzas ou la grosse).

Votre programme doit autoriser la saisie au clavier 1) du diamètre de la plus petite pizza ainsi que 2) celui de la plus grande (valeurs entières).

Il doit ensuite comparer la superficie de la plus grande pizza à la superficie combinée des 2 plus petites, pour finalement afficher un message indiquant s'il est préférable de choisir les deux petites pizzas ou bien la grande (la formule avec la plus grande superficie est préférable !).

Rappel: la superficie d'un cercle est donnée par PI * rayon2, le diamètre par:2 * rayon.

Consigne Vous devez utiliser la constante PI de la classe Math, ainsi que la méthode d'élévation à la puissance (trouvez son nom en lisant l'API) disponible dans cette même classe.

Le format d'affichage n'est pas précisé, laissez libre cours à votre sens de l'esthétique. Vous devez néanmoins produire quelque chose qui ressemble à ceci:

Entrez la taille de la plus petite pizza : 14
Entrez la taille de la plus grande pizza: 18
Il est plus avantageux de choisir les petites pizzas

Instructions pour effectuer votre remise:

Placez-vous dans le répertoire où se trouve le fichier java à remettre. Puis tapez la commande:

remise ift1010 demo02 Exercice2.java

Prenez note que chaque exercice noté est à remettre individuellement.



Dernière mise à jour : Thu Jan 24 15:08:50 EST 2002
dift1010@iro.umontreal.ca