UdMHaut
UdMBAS

IFT1169
Programmation Avancée en C++

Département d'informatique et de recherche opérationnelle

Direction de l'enseignement de service en informatique
 

Image C++
 
Automne 2024

Accueil

Professeurs et
Démonstrateurs

Horaires et locaux

Notes de cours

Cours
après Cours

Démonstrations
et devoirs

Examens

Liens utiles

Au sujet du
livre de cours

Consultez vos notes

Foire aux questions
(FAQ)

Sessions antérieures

  Démonstration #6  
 
Dernière mise à jour : mercredi 11 septembre 2024 10:52:30
 


Solutionnaire

Buts:

  • [Entrée et Sortie].

  • Q1: Nommer deux types de fichiers qu'on peut utiliser lorsqu'on effectue des opérations d'entrées et de sorties.
  • [Réponse]: Des fichiers textes et des fichiers binaires.

  • Q2: Quelle est l'opération la plus importante lorsqu'on a fini de lire ou d'écrire dans un fichier? Qu'arrive-t-il si on omet cette opération?
  • [Réponse]: L'opération la plus importante est de fermer le fichier à l'aide de la fonction fichier.close(). Si on omet cette opération, on risque de perdre des données et le gestionnaire de fichiers du système d'exploitation ne pourra plus, éventuellement permettre au programme d'ouvrir des fichiers.

  • Q3: Soit le tampon suivant:
       (espace)Examen(espace)Final(espace)IFT1169(return)
      

    Tout en expliquant votre réponse, quel sera l'affichage en sortie après l'exécution des instructions suivantes:

          char Phrase[25];
          cin >> Phrase;
          cout << Phrase;
      
  • [Réponse]: Examen
    Le "cin" renvoie la chaîne en entrée à la variable "Phrase". Cette dernière va recevoir que la première chaîne, puisque la lecture va s'arrêter après le premier espace blanc se trouvant après la chaîne saisie.

  • Q4: Soit le programme suivant, qui compile et s'exécute correctement 1169demo06exo4.cpp.

    Indiquez ce que va contenir le fichier "sortie.txt" après exécution du programme précédent, pour le fichier d'entrée suivant: 1169demo06exo4e.txt.

  • [Réponse]: Ce programme sert à garder qu'un SEUL espace blanc entre les mots.
    • if (ch == ' ' && !flag): si le caractère lu est un espace blanc ET la variable flag (un drapeau) est false, alors, on affichera le caractère lu dans le fichier de sortie. On mettra flag à true pour que cette condition ne soit plus vraie. Si c'est le cas, alors l'espace blanc ne sera pas affiche sous cette condition. Qu'en est-il de la seconde condition?
    • else if (ch != ' '): si le caractère lu n'est pas un espace, on va écrire ce caractère dans le fichier de sortie, on mettra flag à false, pour permettre la saisie de l'espace qui se trouverait après ce caractère.

  • Q5: Le but de cet exercice est d'écrire la fonction Encodage. Cette fonction accepte deux arguments du type string. Le premier est le nom du fichier en entrée et le seconde le nom du fichier en sortie. Le fichier en entrée se trouve donc sur disque et contient une série de lignes chacune d'elle contenant deux champs. Le premier champ est une chaîne de caractères ne contenant aucun espace blanc, alors que le deuxième champ est représenté par un seul caractère. Voici un exemple du format de ce fichier d'entrée: 1169demo06exo5e.txt.

    [Solutionnaire](1169demo06exo5sol.cpp).

    La fonction Encodage réalise les opérations suivantes:

    • Ouvre le fichier fourni en entrée.
    • Ouvre le fichier fourni en sortie.
    • Lit chacune des lignes du fichier d'entrée.
    • Pour chaque ligne elle effectue l'opération ou exclusif entre chaque caractère du premier champ avec le caractère du second champ. Le ou exclusif est représenté par l'opérateur ^.
    • Elle écrit uniquement le résultat de cette opération (le codage donc du premier champ) dans le fichier de sortie.

    La fonction Encodage retourne un des 3 statuts suivants:

    enum StatutEncodage { ErrOuvFicIn, ErrOuvFicOut, EncodageOK };

    La fonction retourne donc ErrOuvFicIn si le fichier spécifié en entrée ne peut-être ouvert, ErrOuvFicOut si le fichier spécifié en sortie ne peut-être ouvert et finalement EncodageOk si elle a réussi l'opération d'encodage des données fournies dans le fichier d'entrée. La déclaration de l'énumérateur StatutEncodage se trouve dans e fichier encode.h

  • Q6: Écrire un programme qui permet de réaliser les 3 questions ci-dessous.

    [Solutionnaire](1169demo06exo6sol.h).

    [Solutionnaire](1169demo06exo6sol.cpp).

    [Solutionnaire](1169demo06exo6esol.txt).

    • Ouvrir un nouveau fichier, essai.txt.
    • Y écrire le texte suivant: Nous allons rechercher le mot clé qui permet d'enclencher un virus lors de l'ouverture de ce fichier. Ce mot clé est : tempête . Si ce mot clé est détecté par le système, alors dites un au revoir à vos données sur disque.
    • Recherchez le mot clé "tempête" et remplacez le par la chaîne: "fausse alerte!"

  • Q7: Le fichier suivant 1169demo06exo7e.txt. contient les notes d'un étudiant. La ligne compte 5 informations : le nom et le prénom de l'étudiant (max. 20 caractères), sa note au quiz 1 sur 20 (pondération 25%), sa note au quiz 2 sur 20 (pondération 25%) et sa note à l'examen final sur 20 (pondération 50%).

    [Solutionnaire](1169demo06exo7sol.cpp).

    Écrire un programme qui demande à l'usager le nom du fichier de résultat et qui écrira dans celui-ci le nom de l'étudiant suivi de sa moyenne sur 20.

    Le fichier de résultat qui doit être fourni par l'usager aura la forme suivante : 1169demo06exo7s.txt.

     


[top]


dift1169@iro.umontreal.ca