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 3: Boucles et instructions conditionnelles


Pratique | Exercice Noté

Conseil

À moins que vous n'ayez déjà suffisament programmé, ça serait probablement une erreur de ne vous concentrer que sur l'exercice noté. Programmer (du moins dans le cadre de cours) nécessite avant tout de la pratique. Buter sur un exercice (même pour des détails) est très formateur.

Comprendre et adapter la solution qu'une autre personne vous donne est un bon exercice qui ne suffit habituellement pas à développer de bons réflexes de programmation.

Travail pratique (pas noté)

Traitement de chaînes -- Prise I

Écrire un programme qui demande à un utilisateur d'entrer une chaîne de caractères et qui affiche à l'écran un caractère sur deux de cette chaîne, en commencant par le premier caractère.

Exemple:chaîne entrée: ABRACADABRA, chaîne affichée à l'écran: ARCDBA

Les nombres de Fibonacci

Écrire un programme qui affiche à l'écran les nombres de Fibonacci: 0, 1, 2, 3, 5, 8, 13, .... Un nombre de fibonacci est obtenu des deux précédants en les sommant (ex: 8 = 5 + 3, la somme des deux précédants nombres de Fibonacci); les deux premiers sont 0 et 1.

Idée: Faites une boucle. Gardez en permanence les deux derniers nombres de Fibonacci. À l'initiale, les deux nombres de Fibonacci sont 0 et 1.

Traitement de chaînes -- Prise II

Écrire un programme qui demande à un utilisateur d'entrer une chaîne de caractères et qui affiche à l'écran le premier caractère de cette chaîne, puis le deuxième, puis le troisième, puis le cinquième, puis le huitième, etc.

Exemple: chaîne entrée: ABRACADABRA, chaîne affichée à l'écran: ABRCA

Note: cet exercice combine les deux précédants...

Nombre premiers -- Prise I

Un nombre premier est un nombre qui n'a d'autre diviseur que 1 et lui-même. Écrire un programme qui vérifie si un nombre entré par l'utilisateur au clavier est premier ou pas.

Idée: pour vérifier qu'un nombre n est premier, utilisez une boucle sur un indice i allant de 2 à n-1 dans laquelle vous devez vérifier que i ne divise pas n.

Note: vous pouvez vous servir du modulo (opérateur %) pour vérifier qu'un nombre divise un autre nombre.

Nombre premiers -- Prise II

Complétez le programme précédant de manière à ce que votre programme affiche les N premiers nombres premiers, où N est un entier que l'utilisateur rentrera au clavier.

Plus Grands Communs Diviseurs (PGCD) -- vu en démonstration théorique --

Étant donnés deux entiers positifs a et b, écrire un programme basé sur l'algorithme d'Euclide qui permet de trouver le PGDC de a et b. Voici cet algorithme décrit dans un pseudo-langage:

Entrée: deux entiers positifs a et b

si b est égal à 0 alors PGDC(a,b)=a
sinon
  tant que b différent est différent de 0 faire
          temp = a modulo b // reste de la division entiere de a et b
          a = b // on remplace a par b
          b = temp // et b par temp
  PGDC(a,b) vaut alors a // le PGDC de a et b est la valeur de a quand b est 0

Exercice noté (1 point)

La classe Character

Vous devez écrire un programme Exercice3.java qui demande à un utilisateur de saisir une chaîne de caractères (String), et qui affiche à l'écran sa transformée, par le procédé suivant où la chaîne saisie est parcourue complètement de la droite vers la gauche:
  • Règle 1: si le caractère lu est l'une de ces voyelles a, e, i, o, u ou y, alors afficher à la place le code UNICODE associé au caractère, tel que retourné par la méthode getNumericValue de la classe Character (consultez l'API).
  • Règle 2: sinon, si le caractère lu est un entier, afficher le résultat de l'addition de cet entier avec 7. Par exemple si le caractère lu est '3', alors afficher 10. Vous pouvez pour cela utiliser les méthodes isDigit et digit de la classe Character.
  • Règle 3: sinon, si le caractère est une lettre minuscule (voir les méthodes isLetter et isLowerCase), alors afficher son équivalent en majuscule (voir la méthode toUpperCase)
  • Règle 4: sinon (et enfin), afficher la lettre sans modification.

Notez bien que ces règles s'appliquent dans l'ordre et exclusivement (la première règle applicable dans cet ordre est celle appliquée).

Consignes: Votre programme doit autoriser en boucle la saisie d'une chaîne puis l'affichage de sa transformée. Le programme se termine lorsque l'utilisateur entre la chaîne STOP (la transformation de la chaîne n'est dans ce cas pas affichée).

Le format de ce qui doit apparaître à l'écran doit être respecté (n'écoutez pas votre sens de l'esthétique). Sur la première ligne doit apparaître le prompt: Entrez une chaine:, sur la deuxième est affichée la transformation de la chaîne saisie. Sur la troisième ligne, le même prompt est à nouveau affiché, sur la quatrième ligne, la transformation de la chaîne saisie, etc...

Pour éviter toute ambiguité, voici un exemple d'exécution où la couleur rouge indique le prompt, la couleur bleu indique la saisie effectuée par l'utilisateur, le reste étant le résultat des transformations des chaînes saisies:


Entrez une chaine: bonjour
R3024JN24B
Entrez une chaine: bon45jour
R3024J1211N24B
Entrez une chaine: IFT1010 hiver 2002
9779 R14V18H 7878TFI
Entrez une chaine: stop
P24TS
Entrez une chaine: STOP

et voici l'explication de la transformée de la chaîne IFT1010 hiver 2002:

caractère lu règle appliquée sortie
2 2 9
0 2 7
0 2 7
2 2 9
4
r 3 R
e 1 14
v 3 V
i 1 18
h 3 H
4
0 2 7
1 2 8
0 2 7
1 2 8
T 4 T
F 4 F
I 4 I

Instructions pour effectuer votre remise:

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

remise ift1010 demo03 Exercice3.java

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



Dernière mise à jour : Sun Feb 3 21:40:24 EST 2002
dift1010@iro.umontreal.ca