ICS4U

Accueil >

Revue de ICS3U

En bref

Définitions
Algorithme
En informatique, un processus qui traite de l’information en suivant une collection bien ordonnée d’étapes réalisables et sans ambiguïté qui produit un résultat dans un temps fini. De façon générale, les algorithmes peuvent être exprimés sous forme de diagrammes de flux ou de pseudocode. Ils peuvent aussi être implémentés dans un langage de programmation donné.
Environnement de développement
Logiciel qui intègre un éditeur de texte, une console et des outils spécifiques pour la creation de projets, la compilation, le déboggage et l’exécution de programmes dans un langage de programmation donné.
Documentation interne
Les commentaires laissés dans le code pour les autres développeurs. Ceci inclut les commentaires d’en-tête et les javadoc qui sont descriptifs ainsi que les commentaires de ligne qui sont explicatifs. La documentation interne est plus facile quand les noms de variables, de fonctions et de classes sont descriptifs.
Projet Java minimal
Un fichier .java avec le même nom que la classe principale qui contient une méthode avec la signature public static void main(String[] args).
Types de données
Mots-clés ou classes reconnus par Java qui permettent au compilateur de réserver l’espace mémoire approprié et d’utiliser le protocole d’interprétation des bits appropriés pour les valeurs stockées (booléens, nombres entiers, nombres décimaux, caractères). Quelques types de base sont int, double, boolean, char et String. Il y a aussi des types représentant des collections comme des tableaux, p. ex. int[].
Structures de contrôle
Instructions qui permettent de contrôler l’exécution d’un programme. Les structures de contrôle les plus communes sont les structures de sélection (if, else, switch) et d’itération (for, while, do-while). Les structures de contrôles sont déclarées à l’aide de conditions qui s’évaluent à vrai ou faux, le résultat exacte déterminant le bloc de code à exécuter.
Entrée et sortie à la console avec Java
Instructions pour afficher des messages et obtenir les réponses tapées de l’utilisateur via la console. On utilise les méthodes print, println et printf de l’objet System.out pour afficher des messages et une instance de la classe Scanner qui observe l’objet System.in pour obtenir des réponses tapées de l’utilisateur.
Diagramme de dépendances
Diagramme représentant la chaîne d’appels de méthodes d’un programme. Chaque méthode est représentée par une boîte avec son nom, ses paramètres et son type de retour. Une flèche pointe de la méthode appelante à la méthode appelée. Ceci indique que la méthode appelante dépend de l’existance et du bon fonctionnement de la méthode appelée. Ce diagramme sert à guider l’ordre d’implémentation des méthodes (celles qui n’ont aucune dépendances d’abord, puis celles qui dépendent des premières, etc.). NOTE IMPORTANTE : ce diagramme ne représente aucunement la séquence d’exécution du programme, ce qui est le but d’un diagramme de flux.

Objectifs d’apprentissage

À la fin de cette leçon, vous devrez être en mesure de :

Critères de succès

Ressources pour la révision

Bases de Java

  • Le site d’ICS3U > section programmation
    • Installation et configuration de VS code, Git et Java
    • Utiliser Java en ligne de commande (jshell, javac, java)
    • Les bases de Java : types de données, opérateurs, structures de contrôle, fonctions
  • Le tutoriel Java de W3Schools
    • Exemples interactifs et quiz sur les bases de Java

Pseudocode et de diagrammes de flux

Pseudocode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.  Début
2.  Appeller GetNumber
3.  Afficher la valeur retournée
4.  Fin
5.  Définir GetNumber
6.    Assigner à num la valeur -1
7.    Afficher "Entrez un nombre entre 1 et 10 > "
8.    Saisir la réponse texte et la garder dans temp
9.    Si temp est un format valide de nombre, faire l'étape 10
10.     Convertir temp en nombre et l'assigner à num
11.   Sinon, faire l'étape 12
12.     Afficher "Ce n'est pas un nombre valide"
13.   Pendant que num < 1 ou num > 10, répéter les étapes 7 à 12
14.   Retourner num
Diagramme de flux

Diagramme de flux de GetNumber

Voir ce document pour les détails des éléments et des structures dans un diagramme de flux.

Conseils pour les outils d’assistance en programmation

Règle d’or : Si la suggestion ne correspond pas directement à votre intention, le l’acceptez pas.

Cette règle s’applique autant pour les suggestions de correction rapide (fourni par l’environnement de développement) que pour les suggestions des intelligences artificielles génératives (ChatGPT, Copilot, etc.).

Pourquoi?

Généralement, ces outils augmente votre productivité tant que vous comprenez l’impact qu’ils ont sur votre code.

L’inverse est aussi vrai, et souvent l’impact est plus grand! Sans comprendre l’impact de ces suggestions, vous insérez des erreurs ou du code que vous n’êtes pas en mesure de modifier qui peuvent vous causer des problèmes difficiles à trouver et corriger plus tard. Le temps perdu dépasse largement le temps gagné dans ces situations.

Démonstrations

En copiant le code de ces démonstrations, assurez-vous de respecter les noms des fichiers et la structure des fichiers avant de les exécuter. Ils s’exécutent tous avec la commande java <NomDuFichier>.java à partir de la racine du projet.

2024

Le contexte de cette démonstration est un questionnaire où les informations pour chaque question sont structurées dans des fichiers textes.

Durant la démonstration, le code a passé par plusieurs itérations des algorithmes et a finalement été remanié pour être plus modulaire et réutilisable. Le diagramme de dépendances ci-dessous montre la structure finale du code dans Questionnaire.java.

DDD de Questionnaire.java

Les fichiers sont organisés comme suit dans le projet revue :

1
2
3
4
revue
|-- better_questions.txt
|-- Questionnaire.java
`-- questions.txt

Note : il faut inclure une ligne vide à la fin des fichiers .txt

Voici les fichiers individuels :