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
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.
|
|