Télécharger la présentation
Publié parSophie Bouche Modifié depuis plus de 9 années
1
Labo 4 : Les structures et les entrées et sorties
Démo : INF3105 Structures de données et algorithmes Groupe : 10 Moniteur : Stéphane HENRY Courriel : Notes de : Kerlyne Fostine
2
Plan de la démonstration
Les structures Déclaration d’une structure Utilisation de structure Imbrication de structure Tableau de structure Pointeur de structure Utilisation de structure en C++ Les entrées et sorties Les fichiers Lecture dans un fichier Écriture dans un fichier
3
Les Structures Déclaration d’une structure struct nom_structure{
type1 champ1; type2 champ2; type3 champ3; }; struct Rationnel{ int numerateur; int denominateur;
4
Les structures (Suite)
Déclaration de variable de structure struct nom_structure nomVariable; struct Rationnel r1; struct Rationnel fraction; struct Rationnel *p;
5
Les structures (suite)
Utilisation de structures Nom_variable_structure.nom_champ; fraction.numerateur = 5; fraction.denominateur = 8;
6
Les structures (Suite)
Exercice I Ecrire un programme qui gère les opérations sur les nombres rationnels. Ecrire une fonction additionnerRationnel qui accepte comme paramètres deux rationnels, qui les additionne et qui retourne leur somme Ecrire un programme qui crée deux rationnels et qui utilise la fonction additionnerRationnel pour les additionner et qui affiche leur somme.
7
Imbrication de structures
struct date { int jour; int mois; int annee; }; struct personne{ char nom[30]; char prenom[30]; struct date dateNaissance; struct personne personne1;
8
Imbrication de structures (Suite)
struct personne{ char nom[30]; char prenom[30]; struct { int jour; int mois; int annee; } dateNaissance; }; struct personne personne1;
9
Imbrication de structures (Suite)
personne1.nom; Personne1.prenom; Personne1.date_naissance.jour
10
Imbrication de structures (Suite)
Exercice II Écrire un programme qui fait la lecture de deux personnes en utilisant la structure personne présentée et qui dit laquelle des deux personnes est plus vieilles que l’autre. Il doit y avoir une fonction qui accepte les deux variables personnes, qui fait la comparaison de leur date de naissance et qui retourne 0 si les deux personnes ont la meme date de naissance 1 si la première personne passée comme paramètre est plus vieille que la deuxième -1 si la deuxième personne passée comme paramètre est plus vieille que la première Le programme doit afficher le nom, le prénom et la date de naissance de la plus vieille personne.
11
Tableaux de structures
struct nom_structure variable[dimension]; struct Rationnel tableau_rationnel[10]; Exercice III Ecrire un programme qui lit un nombre de rationnel fournit par l’utilisateur et qui calcule et affiche leur somme. Il faut faire utilisation de la fonction additionner_rationnel utiliser plus haut.
12
Pointeur sur les structures
Declaration de pointeur struct nom_structure *p1, *p2; struct Rationnel *rationnel1; struct Rationnel r1; r1.num = 13; r1.deno = 25; rationnel1 = &r1; Utilisation de pointeur de structure (*rationnel1).numerateur = 10; (*rationnel1).denominateur = 5; rationnel1->numerateur = 10; rationnel1.->denominateur = 5
13
Pointeur sur les structures (Suite)
Exercice IV Ecrire une fonction qui accepte comme paramètre une structure rationnel et qui la simplifie. Cette fonction ne doit rien retourner comme valeur (Une procédure). Exemple de simplification : 4/10 = 2/5 Pour faire la simplification, il faut faire usage d’une fonction pgcd. Cette fonction doit utiliser le formalisme pointeur. Modifie la fontion additionner_rationnel pour simplifier la somme des rationnels avant de retourner la somme.
14
Utilisation de structure en C++
En C++ on peut déclarer des structures avec des données membres et des fonctions membres comme des classes struct Rationnel{ int numerateur; int denominateur; struct Rationnel additionner(struct Rationnel, struct Rationnel); } Les données ne sont pas encapsulées (publiques) 14
15
Les entrées et sorties Les fichiers
Pour chaque fichier, il faut un flux différent Création d’un flux ifstream flux pour la lecture ofstream flux pour l’écriture Initialisation du flux Ifstream flux(« fichier.extension », mode_ouverture); Ofstream flux(« fichier.extension », mode_ouverture);
16
Les entrées et sorties (Suite)
Mode d’ouverture in : en lecture out : en écriture binary : en mode binaire trunc : en écrasement app : en mode ajout ate : en écriture et à la fin (initialement) Note : Il faut toujours indiquer un des trois modificateurs ios::trunc, ios::app ou ios::ate en plus de ios::out, pour spécifier la procédure à suivre au cas où le fichier existerait déjà.
17
Les entrées et sorties (Suite)
Lecture dans un fichier ifstream fichier(“fichier.ext”, ios::in) ifstream fichier(chaine.c_str(), ios::in); getline(fichier, chaine) : pour lire une ligne entière et placée le contenu de la ligne dans chaine fichier.get(caractère) : pour lire un caractère fichier >> variable : Pour récupérer le contenu du fichier jusqu’à un délimiteur (Meme chose que cin) Fichier.read(const char *buffer, int nbOctets)
18
Les entrées et sorties (Suite)
Ecriture dans un fichier ofstream fichier(“fichier.ext”, ios::out | [ios::trunc ou ios::ate ou ios::app]) ofstream fichier(chaine.c_str(), ios::out | [ios::trunc ou ios::ate ou ios::app]) fichier.put(caractere) : Pour ecrire un caractère fichier<< variable ou chaine de caractere : Pour ecrire dans le fichier. (Même chose que cout) Fichier.write(const char * buffer, int nbOctets)
19
Entrées et sorties (Suite)
Exercice V Ecrire un programme qui lit le contenu du fichier fichier.txt ligne par ligne et qui affiche les lignes jusqu’à la fin.
20
Entrées et sorties (Suite)
Exercice VI Écrire un programme qui fait la lecture des informations d’un nombre de personne donné et les enregistre dans un fichier. Une fois la lecture terminée, le programme doit lire le contenu du fichier et doit afficher son contenu à l’ecran. Le programme doit faire usage de la structure Personne présentée plus haut Il doit y avoir une fonction enregistrer qui accepte comme paramètre une information de type Personne et l’enregistrer dans le fichier Le programme doit faire usage d’une seule variable de type structure pour lire les données
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.