Examens corriges

Examen et Correction Programmation Java NFA031 CNAM 2013

Présentation du document d'examen

Ce document rassemble le sujet et la correction officielle d'un examen de Programmation Java, dispensé dans le cadre de la formation CNAM par l'enseignant Jacques Laforgue. Daté du mercredi 13 février 2013, il correspond à la première session des unités NFA001 et NFA031 pour l'année universitaire 2012-2013. Ce sujet constitue un outil de travail précieux pour les étudiants souhaitant appréhender les exigences des épreuves universitaires en programmation orientée objet.

L'épreuve est conçue pour durer deux heures et trente minutes et se divise en deux parties distinctes. La première partie, d'une durée d'une heure quinze minutes, se déroule sans document et évalue les connaissances théoriques à travers un questionnaire à choix multiples (QCM) et des questions libres. La seconde partie, autorisant l'utilisation de documents, met l'accent sur la mise en pratique et la conception de programmes en Java.

Structure de l'épreuve de cours et QCM

La première partie de l'examen débute par un QCM noté sur 35 points, régie par des règles de notation spécifiques selon la nature des questions. Les questions comportent soit deux propositions avec une seule bonne réponse, soit trois propositions avec une ou plusieurs réponses correctes ou incorrectes, pénalisant les erreurs de manière modulée. Les thèmes abordés englobent les fondamentaux du langage Java : la définition d'un langage orienté objet, le rôle du compilateur et de la machine virtuelle (JVM), la visibilité des attributs au sein des packages, l'utilisation des méthodes statiques et non statiques, ainsi que le rôle des constructeurs.

Les questions libres, notées sur 15 points, permettent d'approfondir des concepts clés tels que l'héritage entre classes avec des exemples de code commentés, la gestion des exceptions et la distinction entre les classes Exception et RuntimeException, ainsi que les fonctions précises des constructeurs et les contraintes liées au constructeur par défaut en Java.

Exercices pratiques de programmation

La seconde partie du document plonge directement dans la réalisation de programmes commentés. Deux exercices principaux structurent cette section orientée vers le développement applicatif. Le premier exercice propose de manipuler une classe dédiée à la géométrie, en l'occurrence la classe Cercle, intégrée dans un package spécifique. Il met en œuvre la saisie utilisateur, la création d'objets, le calcul de périmètres et l'organisation des classes en packages avec les commandes de compilation et d'exécution associées.

Le second exercice, plus conséquent, aborde la gestion de comptes bancaires à partir de fichiers texte. Il illustre l'utilisation de structures de données dynamiques telles que la classe ArrayList, le traitement de chaînes de caractères avec StringTokenizer, la lecture de flux textuels et la gestion rigoureuse des erreurs par le mécanisme des exceptions personnalisées. Les étudiants y découvrent l'implémentation de classes internes, le parcours de collections et le calcul de soldes ou de cumuls financiers.

Conseils pour l'utilisation de ce sujet d'examen

Ce type de document s'avère particulièrement utile pour les révisions de fin de semestre ou la préparation d'examens similaires. Il est conseillé de traiter la première partie en temps limité et sans l'aide de supports extérieurs pour évaluer fidèlement sa maîtrise des concepts théoriques du langage Java. Pour la partie pratique, l'étude du code source fourni permet de comprendre les bonnes pratiques de structuration d'un projet Java, la gestion des packages, l'encapsulation des données et la robustesse du code face aux erreurs d'exécution.

Questions fréquentes

À quel niveau d'études s'adresse cet examen de Java ?

Cet examen est destiné aux étudiants inscrits au CNAM dans le cadre des unités d'enseignement NFA001 et NFA031 consacrées à la programmation Java.

Quelle est la durée totale de l'épreuve ?

La durée totale est fixée à deux heures et trente minutes, réparties en une première heure et quart sans document pour la théorie, suivie d'une seconde partie avec documents pour la programmation.

Quels sont les principaux thèmes abordés dans la partie pratique ?

La partie pratique aborde la création de classes, l'utilisation des packages, la manipulation de listes avec ArrayList, la lecture de fichiers texte et la gestion des exceptions en Java.

Les corrections sont-elles fournies avec le sujet ?

Oui, le document intègre les réponses cochées du QCM ainsi que les corrigés détaillés des questions libres et des programmes demandés.

Testez vos connaissances

Question 1

Quel est le rôle principal du compilateur Java (javac) ?

  1. Créer un fichier exécutable natif spécifique au système d'exploitation de la machine hôte.
  2. Traduire le code source en bytecode contenu dans un fichier .class exécutable par la JVM.
  3. Exécuter directement le programme dans la mémoire vive de l'ordinateur.
  4. Interpréter ligne par ligne le code source pendant son exécution.

Réponse correcte : Traduire le code source en bytecode contenu dans un fichier .class exécutable par la JVM.

Explication : Le compilateur Java transforme le code source en un fichier intermédiaire appelé bytecode (.class), qui sera ensuite exécuté par la Machine Virtuelle Java (JVM).

Question 2

Que se passe-t-il si une classe définit uniquement des constructeurs avec des paramètres ?

  1. Le constructeur par défaut sans paramètre reste accessible automatiquement.
  2. Une erreur d'exécution se produit lors de l'appel du programme principal.
  3. Le constructeur par défaut de Java n'est plus accessible, entraînant une erreur de compilation si on tente de l'utiliser sans argument.
  4. La classe ne peut plus être instanciée de quelque manière que ce soit.

Réponse correcte : Le constructeur par défaut de Java n'est plus accessible, entraînant une erreur de compilation si on tente de l'utiliser sans argument.

Explication : Dès qu'un constructeur explicite avec des paramètres est défini dans une classe, Java ne génère plus automatiquement le constructeur sans paramètre par défaut.

Question 3

Quelle est la différence fondamentale entre les classes Exception et RuntimeException en Java ?

  1. RuntimeException nécessite obligatoirement de déclarer l'exception avec 'throws' ou de la capturer, contrairement à Exception.
  2. Exception nécessite de préciser dans l'en-tête de la méthode ou de capturer l'exception, ce qui n'est pas obligatoire pour RuntimeException.
  3. Il n'y a aucune différence, les deux classes s'utilisent de manière strictement identique.
  4. Exception est réservée aux erreurs matérielles de la machine.

Réponse correcte : Exception nécessite de préciser dans l'en-tête de la méthode ou de capturer l'exception, ce qui n'est pas obligatoire pour RuntimeException.

Explication : Les exceptions de type Exception sont des exceptions contrôlées (checked) qui imposent une gestion explicite, tandis que RuntimeException regroupe les exceptions non contrôlées (unchecked).





Télécharger Examen et Correction Programmation Java NFA031 CNAM 2013 pdf