Voici des brèves de cours qui résument très sommairement les points
importants abordés en cours et proposent le cas échéant des exemples
vus en cours mais non extraits des transparents (un peu de variété ne
fait pas de mal).
Nos bonnes résolutions pour cette session: Nous ferons le maximum
pour que cette page soit mise à jour avant chaque cours afin que vous
puissiez vous y présenter avec les exemples que nous
étudierons. D'avance mille excuses pour les fois où nous n'y parviendrons
pas.
Prenez note que les brèves de cours pourront être mises à jour
après le cours concerné afin qu'elles correspondent parfaitement à ce que nous
avons vraiment vu dans ce cours.
[jeudi 15 décembre 2005] (3 heures) [algo2]
La récursivité:
- Comparaison des versions itérative et récursive d'un processus simple (factoriel, palindrome, affichage d'une chaine à l'envers)
- Problème plus difficile à résoudre de manière itérative: permutation d'une chaîne
- Problème encore plus difficile à résoudre itérativement: le cavalier d'Euler.
- Quand récurisivité rime avec efficacité: quick sort et tri par fusion
Compléments:
- Trouver des solutions au problème du cavalier d'Euler Cavalier.java. Ce problème vous
intéresse ? Jetez un coup d'oeil à ceci
- Les algorithmes de tris vus en cours: Sort.java et une classe de test:
SortTest.java
[jeudi 1 décembre 2005] (1 heure) [oop3] [tableaux]
- tableaux d'objets (attention: les objets ne sont pas crées)
- Application à la somme de n rationnels tirés aléatoirement
- Arguments de la ligne de commande
- tableaux à plusieurs dimensions
- avez-vous compris la notion de tableau et de référence ?
Regardons pour cela un exercice du final de la session Hiver 2000.
- recherche d'un rationnel dans un tableau de rationnels
- idem, mais dans un tableau trié (méthode
compareTo
)
- s'il nous reste du temps (peu probable), recherche dichotomique
[mardi 29 novembre 2005] (2 heures) [oop1] [oop3]
- Rappels rapides (état, interface, reference, static)
- Approfondissement de la notion de référence
- égalité de 2 objets
- passage d'un objet en paramètre d'une fonction (la référence est passée par valeur)
- objet en type de retour d'une fonction (cas de la fonction
add
de la classe Rationnel
)
- exemple
-
this
= référence sur l'objet appelant
- Mise en application: classe Rationnel
Compléments:
[mardi 1 novembre 2005] (2 heures) [oop1]
Conception d'une classe en conciliant deux points de vues: celui du programmeur de la classe et celui de l'utilisateur.
- canevas d'une classe
- protection des membres d'une classe par le modificateur d'accès
private
- usage de l'opérateur
new
, notion de constructeur
- distinction des variables d'instances (ou d'objet) et des variables de classe
- un membre (variable ou méthode)
static
est un membre qui peut exister indépendamment de l'existence d'un objet de la classe.
- différence entre déclaration et création d'un objet: notion de référence sur un objet
Compléments:
Voici le code vers lequel nous avons convergé à la fin du cours:
[jeudi 13 octobre 2005] (1 heure) [tableaux] (acétates 6 à 16)
- boucles et tableaux
- passage d'un tableau en paramètre: approximation
- argmin,min, argmax, max
- algorithmes de recherche d'un élément dans un tableau
[mardi 11 octobre 2005] (2 heures) [art2] (acétates 1 à 28) [tableaux] (acétates 1 à 5)
- Surdéfinition de méthodes en Java
- Apprendre à découper un problème en méthodes: cohésion et couplage
- Les tableaux à une dimension de types primitifs
- déclaration
- création
- indexation
- un tableau connaît sa longueur
[jeudi 6 octobre 2005] (1 heure) [fonctions1] [fonctions2]
Les fonctions (suite et fin)
- Approfondissement de ce que nous avons vu mardi:
- variable locale,
- passage de paramètre par valeur
- Subtilités (méfiez vous des codes sémantiquement équivalents)
- Parenthèse: gloire++ à votre compilateur (détection de variables non initialisées)
- Variable locale versus variable de classe
- Surdéfinition d'une fonction
- Sensibilisation à javadoc (pour un groupe seulement)
Compléments:
[mardi 4 octobre 2005] (2 heures) [fonctions1] [fonctions2]
Les fonctions
- Buts, contrôle du flux d'instruction
- Syntaxe d'une déclaration de fonction (fonction = type de retour, nom, paramètres et corps). Notion de signature d'une fonction. Curiosité: les grammaire BNF.
- Syntaxe d'un appel de fonction
- Exemple illustrant la factorisation d'un code (code à l'acétate 26 de fonctions2)
- À propos de
return
- Principe du passage des paramètres
Compléments:
- Une grammaire BNF de Java agréable à lire
[jeudi 29 septembre 2005] (1 heure) [boucles] [boucles2]
Les boucles ++
- exemple 4: Inverser un nombre. Résistez à la simplicité.
- exemple 5: Un nombre est-t-il premier ? Résistez au break.
- Les boucles imbriquées
- Afficher un triangle de motifs
- Afficher une diagonale de symboles
- Tout sur le X
Compléments:
- Comparez les deux versions vues en cours de l'inversion d'un entier Inverse.java, ou faites-moi confiance et observez les temps d'execution des deux versions.
[mardi 26 septembre 2005] (2 heures) [boucles] [boucles2]
Les boucles:
- exemple 1: vérification de la validité d'une saisie (introduction à la classe
Keyboard
)
- exemple 2: un mot est-t-il palindrome (être attentif aux conditions d'arrêt, sensibilisation à l'API) ?
- exemple 3: compter les voyelles dans une chaîne (usage typique du for)
- équivalence (?) du for et du while. Règles de bienséance.
Compléments:
[jeudi 1er septembre 2005] (1 heure) [intro]
Bonne rentrée à toutes et tous. Notre premier cours commence avec
quelques généralités:
- Tour d'horizon du cours IFT1010, conseils d'usage, achat d'un livre, etc.