5. Les modules Découpage d’une application en modules

Slides:



Advertisements
Présentations similaires
Introduction au langage C++
Advertisements

C++ 6ème cours Patrick Reuter maître de conférences
C++ 5ème cours Patrick Reuter maître de conférences
la programmation en langage C
C.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Structures de données IFT-2000 Abder Alikacem Espace de nommage Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Les fonctions.
B.Shishedjiev -Débogueur1 Déboguer? Comment trouver et corriger les erreurs?
Inclusions & dépendances. C compile texte > objet int main () …
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Autres éléments du langage
Les modules. Modules Un module est un ensemble de définitions de constantes, de variables et de fonctions réutilisables de projet en projet. Le langage.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Le Préprocesseur. Sujets abordés: Préprocesseur –Qu’est ce? –Qu’est ce qu’une directive? Les macros –Les définir, les redéfinir, les dé-définir –Les macros.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O. et au.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Le Langage C MIAGE 2. Détails techniques Moniteur: Vincent Barreaud Responsable: Laurent.
Rover 5, technologie et innovation ● Notre problématique : ● Comment la robotique peut-elle assister ● l'homme dans un milieu à risque ? ● Application.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
CINI – Li115 1 Semaine 3 Boucles (suite), tirages aléatoires, bibliothèque graphique ● Imbrication d'instructions if et for ● Boucles for imbriquées ●
1 Le stage informatique de Masters APIM et PIE (2012/2013) Ivana Hrivnacova Vincent Lafage Basé sur le stage informatique du LAL et IPN par (2005/2006):
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
Portage d'une application sur GPU CreditCruncher.
Moteur de recherche Recherche éveillée Conseils et astuces Conseils et astuces.
A9 - Utilisation de composants avec des vulnérabilités connues.
TP 1 Maths De la séquence à la séance… en passant par la classe.
1. Les éléments algorithmiques
Interfaçage entre Maple et du code externe
Après 3 séances Tous les binômes ont commencé l'exercice « Formes »
JAVA.
Suites ordonnées ou mettre de l’ordre
I- ANALYSE DU BESOIN / Plan
Exploitation de logiciels :
Leçon de Programmation Intermédiaire
Programmation en C++ Héritage
Pas de variable globale
2. Expressions relationnelles et alternatives
Programmation en C++ IO en C++/SL
Résolution de grilles Slither Link
INSIA SRT 3 PAM !.
PROJET 4BIS.NET.
Principes de programmation (suite)
Algorithmique Langage C
Master Réseaux et Systèmes Distribués (RSD)
Les fonctions.
Les fonctions.
Collecte de données CAPI
La préparation du champ avant le démarrage de la campagne rizicole
Programmation en C++ IO en C++/SL
6. Les types utilisateurs et les structures de données
Programmation en C++ Classes
Coding party Écrire un programme qui élève un nombre au carré Écrire un programme qui teste si un nombre est pair Écrire un programme qui calcule la factorielle.
Programmation en C++ C++ de base
Formules de calculs et Fonctions. Structure des formules de calcul Commencez toujours votre calcul par le signe =, ensuite sans laisser d’espaces, placez.
Calcul Scientifique Initiation à SCILB
I.1. Définition et composition d’une solution  La dissolution d’une espèce chimique (appelé soluté) dans un grand volume de liquide (appelé solvant) donne.
Qu’est-ce qu’un ordinateur ?. Ordinateur – calculateur Un ordinateur est une machine qui permet de réaliser, d’exécuter des opérations, des calculs, c’est.
Programmation. Définition programmation
Mots de passe Apprenez à composer.
Semaine #3 INF130 par Frédérick Henri.
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
BIOS- OS Environnement logiciel PC / Traitement numérique / Contrôle.
Vrai / Faux A vous de jouer !
Principes de programmation (suite)
Les modules.
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
QCM 5 / Q1 Soit le pointeur de fichier défini par FILE *fp ; on veut ouvrir le fichier " C:/Mesdocuments/essai.txt " en mode écriture. Quelles sont les.
Réalisation d'un point d'accès afin d'échanger des sockets en utilisant une carte raspberry
Transcription de la présentation:

5. Les modules Découpage d’une application en modules 8 décembre 2018 5. Les modules Découpage d’une application en modules Les inclusions multiples L’inclusion circulaire Joan S. Morales - Introduction à l'algo. et la programmation

Le découpage d’une application en modules Après avoir découpé l’application en sous-programmes, on regroupe les sous-programmes qui ont un lien entre eux dans un module Un module est composé d’un fichier .cpp et d’un fichier .h (.h pour header, en-tête) Les prototypes et constantes sont placés dans le .h et les définitions dans le .cpp Si un fichier a besoin d’utiliser une constante ou un sous-programme, il doit inclure le .h correspondant avec #include Joan S. Morales - Introduction à l'algo. et la programmation

Le découpage d’une application en modules (suite) Un projet ne doit contenir qu’un seul programme principal (main) Exemples de modules: sdlclg.cpp et sdlclg.h cmath (*) iostream (*) string (*) (*) Les modules dont on veut garder le code source secret sont plutôt distribués sous la forme de fichiers d’en-têtes et de fichiers .lib. Joan S. Morales - Introduction à l'algo. et la programmation

Avant le découpage Joan S. Morales - Introduction à l'algo. et la programmation

Après le découpage Joan S. Morales - Introduction à l'algo. et la programmation

#include"" ou #include<> ? Les fichiers entourés des symboles < et > sont présumés se trouver dans les répertoires définis dans les paramètres du projet, alors que ceux entourés de guillemets sont présumés se trouver dans le même répertoire que le fichier qui effectue le #include On peut utiliser des chemins relatifs (#include "../sdlclg.h" ), jamais de chemins absolus! Joan S. Morales - Introduction à l'algo. et la programmation

Les inclusions multiples a.h: #include "b.h“ const int A = Nb * 10;   b.h: const int Nb = 2; a.cpp: #include "a.h" #include "b.h"   int main() { // ... } b.h(1): error C2374: ‘Nb' : redéfinition; initialisation multiple    Joan S. Morales - Introduction à l'algo. et la programmation

La solution (*) Pour tous les fichiers d’en-têtes (.h), on ajoute au tout début du fichier: #ifndef NOM_DU_FICHIER_H #define NOM_DU_FICHIER_H Et à la toute fin du fichier: #endif (*) Cette solution est générale et fonctionne pour tous les compilateurs. Avec le compilateur de MS Visual Studio, on peut utiliser simplement #pragma once en tête du fichier. Joan S. Morales - Introduction à l'algo. et la programmation

Le pré-processeur en action... #ifndef A_H const int A = Nb * 10; #endif Le pré-processeur en action... Vrai #define A_H #ifndef B_H #endif Vrai #include "b.h" #define B_H const int Nb = 2; #include "a.h" #ifndef B_H #endif Faux #define B_H const int Nb = 2; #include "b.h" int main() { // ... } Joan S. Morales - Introduction à l'algo. et la programmation

L’inclusion circulaire a.h: #include "b.h"   const int A = 2*B; b.h: #include "a.h"   const int B = 2*A; b.h(1): error C1014: fichiers Include trop nombreux : profondeur = 1024   Joan S. Morales - Introduction à l'algo. et la programmation

Les bonnes pratiques... Inclure seulement les fichiers d’en-têtes vraiment nécessaires dans les .h Inclure seulement les fichiers d’en-têtes vraiment nécessaires dans les .cpp Portez attention à la structure de votre programme pour éviter les inclusions circulaires Ne jamais inclure de fichier .cpp!!! Ne jamais utiliser de chemins absolus pour inclure un .h Joan S. Morales - Introduction à l'algo. et la programmation