Pratique d’examen final 2 – Logique de programmation

Créez un projet Examen_3_LDP. Créez chaque segment de code demandé dans les questions ci-dessous. Une fois terminé, compressez votre projet en format ZIP. Le fichier zip doit suivre le format “<nom>_<prenom>_examen_final.zip” et être envoyez à votre enseignant par MIO. Vous avez un maximum de 3h00 heures pour le compléter, soit jusqu’à 15h00. Les examens remis après cette heure auront une pénalité de 10% pour chaque minute de retard à partir de 15h01. L’examen est sur 50 points. Durant l’examen, il est permis d’utiliser l’Internet, les notes de cours ainsi les exercices et leur corrigés.

Pour la remise, assurez-vous de commencer à compresser vos fichiers suffisament d’avance pour avoir le temps de remettre vos fichiers à temps. Une pénalité de point de 5% par minute de retard sera appliqué à partir de 15h01.

Exercice 1 (12.5 points)

Créez une classe “Evenement”. Un événement a les attributs Titre (string) et Date_Activite (datetime). Définissez son constructeur pour initialiser ses attributs à partir des paramètres.

Créez une classe “Horaire” qui contient une liste d’événement. Bien que l’horaire est vide initialement (Ne possède aucun Evenement dans sa liste), elle offre la méthode “AjouterEvenement(Evenement e)” qui permet d’ajouter un événement à la liste.

Ajoutez une méthode “AfficherEvenement” qui permet d’afficher le titre de chaque évènements avec l’année, le mois et le jour ou il se déroulera (Un événement par ligne).

De plus, la classe “Horaire” offre une méthode “AfficherProchainEvenement” qui affichera la date et l’heure du prochain evenement. Un prochain événement se définit comme celui dont la date est la plus proche d’en ce moment, mais dans le futur uniquement.

Créez les événements suivant:

  • Marche, 2022-12-28 10:30:00
  • Partie de bowling, 2023-12-26 15:00:00
  • Allez faire du vélo, 2023-11-20 13:00:00
  • Fêter le nouvel an, 2024-01-01 01:00:00

Une fois créé, ajoutez les événements à un horaire.

Exécutez sa méthode “AfficherProchainEvenement”. La réponse devrait être:

  • Partie de bowling, 2023-12-26 15:00:00

Exercice 2 (12.5 points)

Créez une méthode TraitementDeFichier. Celle-ci effectue les opérations suivantes:

  • Créez un répertoire sous “C:\examenfinal\”.
  • Créez-y un fichier “version1.txt” avec les lignes suivantes:
    • L’ordinateur est performant
    • Les oiseaux chantent bien
    • Mon ami est sur le point d’arrivé
    • La cafetière fait du bruit
    • J’habite en estrie.
  • Faite une copie de “version1.txt” vers “version2.txt”, mais ne conserver uniquement que les lignes qui commence par la lettre “L”.
  • Afficher dans la console le contenu du fichier “version2.txt”

Exercice 3 (12.5 points)

Créez une méthode “AfficherNombreSurCondition()”. Cette méthode prend en paramètre un tableau de int et une fonction anonyme. La fonction anonyme prenant en paramètre un int et retourne un bool. Lorsque la méthode “AfficherNombreSurCondition ()” est exécutée, elle affichera dans la console toutes les valeurs du tableau qui respecte la condition de la fonction passé en paramètre.

Pour l’exercice, nous utiliserons un tableau qui contient les valeurs suivantes: 12, 355, 12, 54, 144, 1030, 12

Exécuter votre méthode en lui donnant des fonctions anonymes qui effectue les vérifications suivantes:

  • Accepter les nombres dont le dernier chiffre est un 2
  • Accepter les nombres qui sont impairs
  • Accepter les nombres qui sont multiples de 5

Les fonctions anonymes peuvent être créé en utilisant un delegate ou une expression Lambda, au choix.

Exercice 4 (12.5 points)

Créez un classe Maison. Une maison est caractérisée par les attributs suivant:

  • Un Nombre_De_Fenetres (int)
  • Un Nombre_De_Chambre (int)
  • Une Annee_De_construction (int)
  • Un Numero_Civic (int)
  • Un Nom_De_Rue (string)

Créez un constructeur paramétré afin de faire la création initiale de la maison. Le constructeur lancera les exceptions suivantes si ces conditions se produisent:

  • NombreFenetreInvalideException: Si le nombre de fenêtre est inférieur à 2
  • NombreChambreInvalideException: Si le nombre de chambre est inférieur à 1
  • AnneeConstructionInvalideException: Si l’année de construction est en 2023 ou après.

Faite une démonstration de l’instanciation de la classe (création de l’objet)

Exercice 5 (12.5 points)

Créez une méthode “PossedeTotalVingts(int[] tab)”.

La méthode retournera “true” s’il existe une combinaison de 2 nombres dans le tableau qui donne un total 20 ou plus.

Utiliser les tableaux suivants pour tester votre code:

{1, 12, 7, 3, 5} = false

{15, 2, 6, 3, 2} = true (15 + 6 = 21)