2.2- Déclarer, définir et utiliser des objets

Dimension: px
Commencer à balayer dès la page:

Download "2.2- Déclarer, définir et utiliser des objets"

Transcription

1 2.2- Déclarer, définir et utiliser des objets 1- Classes et objets 2- Construction d'objets 3- Destruction d'objets 1 Classes et objets A l'instar du fait de déclarer une fonction avant de l'utiliser, on déclare une classe avant de l'utiliser : on donne le prototype des méthode de ses classes ainsi que les variables de cette classe. Donc pour une classe, on doit distinguer : la déclaration de la classe qui donne les variables et les prototypes des fonctions de la classe. la définition des fonctions de classe. les utilisations de la classe. Bien sûr, avant de pouvoir définir des fonctions de classe ou avant de pouvoir utiliser une variable objet d'une classe, il faut avoir déclaré la classe. Déclaration de classe La déclaration se fait de la manière suivante : //on débute la déclaration de la classe Action //cette déclaration est comprise entre //un niveau de visibilité (voir plus bas) //la déclaration d'un attribut réel nommé coursdujour //la déclaration d'un attribut réel nommé coursancien //la déclaration d'une méthode renvoyant un double/prototype ; //la fin de la déclaration : bien noté qu'elle termine par ;

2 Ici on définit une classe Action qui donne le cours du jour, le coursancien et définit le calcul de la rentabilité. En définissant la classe de cette manière, et si le stockage d'un double représente bien 8 octets, alors le stockage d'un objet Action prendra 16 octets en mémoire. Autant que faire se peut, le nom retenu des variables/ attributs et des fonctions doit être significatif. Par ailleurs, par convention, on écrira le nom des classes avec une majuscule, le nom des attributs ou des méthodes, commençant à l'instar de ce qu'on a toujours fait pour les fonctions et les variables, par une minuscule et avec une majuscule dans le nom si il contient plusieurs mots : calcrentabilite par exemple. Bien noter que la déclaration d'une classe se termine par ';'. Les types des attributs de classe ne sont pas nécessairement des types primitifs, il peut y avoir des types objets : class Employe Date datenaissance; string nom; double salaire; Service serviceemploye; ; Dans ce qui précède, on a un attribut qui est un type primitif : double salaire, un attribut qui est d'un type objet de la librairie standard : string nom, deux attributs qui sont de types objets définis par l'utilisateur : Date, Service. Les déclarations de classe pourront bien sûr être faites dans un fichier header. Définition des méthodes de classe Une fois la déclaration de la classe faite, la définition des méthodes de classe peut se faire avant ou après leur utilisation. La déclaration d'une méthode de classe se fait en utilisant le nom de la classe, un séparateur et le nom de la méthode que l'on veut définir, ansi si on veut définir la méthode calcrentabilite() de la classe Action : double Action::calcRentabilite() return (coursdujour-coursancien)/ coursancien;

3 Pour le reste, le fonctionnement de la définition des fonctions est identique à ce qui a été déclarée au cours 1.4. Déclaration-définition d'une variable objet Un objet est une variable du type d'une classe. En supposant que des déclarations des classes Employe et Action ont été écrites dans le code qui précède, on peut déclarer des variables objets. Comme dans le cas des variables de type primitif, la déclaration des variables objets vaut également définition. La définition des variables de type objet se fait à l'instar des variables de type primitif : Action societegenerale; Accès aux données membres et aux fonctions membres #include <iostream> ; double Action::calcRentabilite() int main() Action societegenerale; societegenerale.coursdujour=5; societegenerale.coursancien=4.9; //L1 //L2 //L3 double variationenvaleur=societegenerale.coursdujour-societegenerale.coursancien; std::cout << "La rentabilite de l'action : " << societegenerale.calcrentabilite(); //L4 //L5 std::cout << "\nla taille : " << sizeof(action); //L6 return 0;

4 Dans ce qui précède, on commence par créer une variable objet de type Action qui a pour nom societegenerale (L1). Ensuite, on affecte 5 à la valeur de son attribut coursdujour (L2) puis on affecte 4.9 à son attribut coursancien (L3). Puis, on crée une variable de type primitif double à laquelle on affecte le résultat du calcul de la variation absolue du cours (L4). La ligne suivante est un appel la méthode calcrentabilite() de l'objet societegenerale (L5). La dernière ligne (L6) affiche la taille d'un objet Action. Pour cette dernière ligne, comme la classe Action a deux attributs de type double, le type Action sera deux fois la taille d'un type double, ie si une variable double occupe 8 octets, une variable Action sera codée sur 16 octets. Private / Public Dans l'exemple précédent, on peut prendre le code qui a été développé en enlevant cette ligne qui intervient dans la déclaration de la classe Action : En essayant de compiler le code obtenu, on obtient une série d'erreurs. Celles-ci indiquent que les éléments Action::coursDuJours, Action::coursAncien sont privées et que double Action::calcRentabilite() est privée. Les instructions qui posent problèmes sont celles qui sont dans le main() et qui tentent d'utiliser ces méthodes / attributs. Effectivement, si on ne précise plus que les attributs ou les méthodes sont public, ils sont tous private par défaut. Quand un attribut est private, il n'est utilisable qu'au sein des méthodes de la classe. On ne pourra donc l'utiliser que dans la définition des méthodes de classe. Pour déclarer comme public, on utilise le mot clé public à l'instar de ce qui a fait lors de la déclaration de la classe Action. De manière générale pour une classe pour laquelle il y a des attributs / méthodes de visibilité privée et des attributs / méthodes de visbilité #include <iostream> void affichagenumaction(); void affectationnumaction(int); private : int numaction; ;

5 double Action::calcRentabilite() void Action::affichageNumAction() std::cout << "Le numero de l'action : " << numaction; void Action::affectationNumAction(int num) numaction=num; int main() Action societegenerale; societegenerale.coursdujour=5; societegenerale.coursancien=4.9; societegenerale.affectationnumaction(3); double variationenvaleur=societegenerale.coursdujour-societegenerale.coursancien; std::cout << "La rentabilite de l'action : " << societegenerale.calcrentabilite(); std::cout << "\nla taille : " << sizeof(action) << "\n"; societegenerale.affichagenumaction(); return 0; Ce code fonctionne, il appelle un certain nombre de remaques : Toujours bien noter que la déclaration de classe se termine par un ; (tester ce qui se passe en l'enlevant) Pour une classe, il est possible de définir des attributs public et private. Dans la fonction donnenumaction, on manipule deux variables : le paramètre et un attribut de l'objet. Les attributs de l'objet peuvent être librement manipulé dans les méthode de l'objet Le code vérifie la règle énoncée plus haut qui est que les attributs privés (private) ne peuvent être manipulés que par des méthodes de l'objet. En effet, dans le main, on ne manipule pas l'attribut numaction. Si on essayait de le manipuler, on provoquera une erreur. Il est en revanche tout à fait possible de manipuler cet attibut via une méthode de la classe : on accède l'attribut dans la fonction affichagenumaction(), on aurait pu également lui affecter une valeur Quel est l'intérêt des niveaux de visbilité? Cf le fait de maintenir la cohérence externe de la classe. Le principe de la programmation objet veut qu'une classe soit réutilisable, soit par le même programmeur, soit par d'autres programmeurs. Il faut donc que les attributs de l'objet constituent un état cohérent de l'objet. Supposons que l'on rajoute un attribut dans la déclaration de la classe :

6 void affichagenumaction(); void affectationnumaction(int); private : int numaction; ; double Action::calcRentabilite() void Action::affichageNumAction() std::cout << "Le numero de l'action : " << numaction; void Action::affectationNumAction(int num) numaction=num; En effet, on veut que la valeur de la rentabilité soit stockée dans un attribut plutôt que recalculée à chaque fois qu'elle est accédée. A chaque appel de calcrentabilite() on recalculait la rentabilité, ici on préfère recalculer la rentabilité seulement si on modifie l'attribut coursdujour ou l'attribut coursancien. Celui qui conçoit la classe le sait ici et donc, si il modifie l'une ou l'autre des valeurs, il appel calcrentabilite() en faisant : societegenerale.coursdujour=5; double rentabilite=calcrentabilite(); Ensuite, on n'aura plus qu'à accéder directement la valeur de la rentabilité sans avoir à la recalculer. On peut vouloir cette optimisation, mais cependant, la forme actuelle de la classe est extrêmement dangereuse. Est ce que le programmeur ne risque pas à terme d'oublier l'instruction d'évolution de la rentabilité dès qu'il modifiera le coursdujour ou le coursancien? Plusieurs jours après construit cette classe avec cette contrainte, s'en souviendra t'il? Ne risque t'il pas d'oublier de parler de cette contrainte en donnant son code à un tiers qui veut utiliser la classe Action, le tiers parvenant rapidement à des abbérations dans l'utilisation de cette classe, si on ne lui a pas exposer les conditions d'utilisation. De fait, on préferera largement la version suivante de la classe :

7 void modifiercoursjour(double); double obtenircoursjour(); void modifiercoursancien(double); double obtenircoursancien(); double obtenirrentabilite(); void affichagenumaction(); void affectationnumaction(int); private : int numaction; ; double Action::calcRentabilite() void Action::affichageNumAction() std::cout << "Le numero de l'action : " << numaction; void Action::affectationNumAction(int num) numaction=num; void Action::modifierCoursJour(double x) coursdujour=x; rentabilite=calcrentabilite(); double Action::obtenirCoursJour() return coursdujour; void Action::modifierCoursAncien(double x) coursancien=x; rentabilite=calcrentabilite(); double Action::obtenirCoursAncien()

8 return coursancien; double Action::obtenirRentabilite() return rentabilite; Ici tous les attributs sont privés. Il n'est plus possible à un utilisateur externe à la classe de modifier ou de lire coursancien ou coursdujour directement. Pour voir la valeur de l'une ou l'autre des variables, il faut en passer par les méthodes : obtenircoursancien(), obtenircoursjour(). Pour modifier la valeur de l'une ou l'autre des variables, il faut en passer par les méthodes modifiercoursancien(double) pou modifiercoursjour(double). Pour ces deux dernières méthodes, on note qu'elles font évoluer la rentabilité. Donc à chaque fois qu'on modifie coursancien ou coursdujours, on modifiera la rentabilite. La classe sera donc maintenue dans un état cohérent. Pour les méthodes obtenircoursancien(), obtenircoursjour(), on parlera d'accesseurs (méthode qui permet d'accéder à la valeur d'un variable) et de modifieur (méthode qui permet de modifier la valeur d'une variable). On note que pour rentabilité, on a seulement défini un accesseur et pas de modifieur : on n'autorise pas la modification directe de l'attribut rentabilité. L'introduction de modifieurs ou d'accesseurs n'est pas une obligation, elle est cependant nécessaire dans la conception d'un grand projet pour maintenir la cohérence des objets. Pour les petits projets ou pour les exercices, il n'est bien sûr pas nécessaire d'introduire ces méthodes. On a donc conçu une classe de manière à maintenir la cohérence interne de la classe, des objets. Cependant, rien n'indique que chaque objet soit cohérent dès la déclaration d'une variable objet. On va donc s'intéresser à ce qui se passe lors de la déclaration des variables objets (et également lors de leur disparition) dans ce qui suit. 2 Construction d'objets Constructeur Il est possible de définir les opérations qui sont à faire lors de la création d'une variable objet. Cela se fait au travers d'une fonction qui s'appelle le constructeur. Sans l'évoquer, nous avons déjà utilisé implicitement une telle fonction. En reprenant le dernier listing de code qui a été présenté, on peut rajouter à la suite la ligne : int main() Action a;

9 Cette ligne de code, que l'on a déjà vu, sert à créer a comme une variable objet de type Action. Il s'agit d'un appel implicite à la fonction constructeur. C'est le seul cas d'appel à une méthode sans qu'il y ait de parenthèses. Lorsque le programmeur n'a pas défini de méthode constructeur, il existe une méthode constructeur par défaut : c'est le cas de tous les listings qui précèdent. On reprend, en la simplifiant la classe Action, ; double Action::calcRentabilite() int main() Action a; Ici lors de l'exécution de l'unique instruction du main, c'est le contructeur par défaut qui est appelé. On peut expliciter la déclaration implicite de la fonction constructeur : Action(); //la déclaration du constructeur par défaut. ; Action::Action() //la définition de la méthode constructeur.

10 double Action::calcRentabilite() int main() Action a; Ici, on a explicité la définition du constructeur. Ce constructeur était déjà défini de manière implicite. Une méthode constructeur à le nom de la classe pour laquelle elle sert à créer des objets et n'a pas de type de retour. Pour vérifier que cette fonction s'exécute bien avec l'unique instrution du main : Action(); //la déclaration du constructeur par défaut. ; Action::Action() //la définition de la méthode constructeur. std::cout << "Ceci vient du constructeur par defaut de Action\n"; double Action::calcRentabilite() int main() Action a; std::cout << coursdujour << " " << coursancien; On compile et on exécute. On constate qu'effectivement l'instruction Action a; exécute bien le code attendu. Par ailleurs, on constate que les valeurs coursdujours et coursancien sont incompréhesibles. A l'instar de ce qui se passe si on déclare une variable double sans l'initialiser, ici les variables attributs de la variables objets se voient affecter un espace mémoire dont on ne sait ce qu'il a contenu auparavant. Donc lors de la création de l'objet a, on a des valeurs incohérentes pour l'objet et donc une source d'erreur possible pour quelqu'un qui utiliserait la variable objet sans avoir initialiser convenablement

11 ces champs. Pour forcer à une initialisation correcte des attributs, on empêche l'utilisation du constructeur par défaut en spécifiant un constructeur. Action(double,double); //la déclaration d'un constructeur ; Action::Action(double x, double y) //la définition de la méthode constructeur. coursdujour=x; coursancien=y; double Action::calcRentabilite() int main() Action a; std::cout << a.coursdujour << " " << a.coursancien; Si on tente de compiler ce code, une erreur est renvoyée, en effet, Action a; appelle le constructeur par défaut, or celui ci n'est plus disponible puisque un constructeur a été explicitement défini. Le programmeur doit donc donner des valeurs à la création de l'objet, la documentation du code (des commentaires à rajouter à côté de la déclaration de la fonction) lui indique à quoi correspond chacun des paramètres de la fonction constructeur. Il suffit donc de remplacer le main par : Action(double,double); //la déclaration d'un constructeur ; Action::Action(double x, double y) //la définition d'une méthode constructeur.

12 coursdujour=x; coursancien=y; double Action::calcRentabilite() int main() Action a(12.5,13); std::cout << a.coursdujour << " " << a.coursancien; On constate qu'effectivement le code fonctionne : les attributs sont bien initialisée. La méthode constructeur récupère des valeurs pour le coursdujour et coursancien. Surcharge de constructeur A l'instar de n'importe quelle méthode de classe, il est possible de surcharger le constructeur. Notamment, il est possible de réintroduire le constructeur par défaut, si on le déclare explicitement lorsqu'un autre constructeur est déjà déclaré. Action(); Action(double,double); Action(double); ; Action::Action() coursdujour=0; coursancien=0; Action::Action(double x, double y) coursdujour=x; coursancien=y;

13 Action::Action(double x) coursdujour=x; coursancien=0; double Action::calcRentabilite() int main() Action a; std::cout << a.coursdujour << " " << a.coursancien << "\n"; Action a2(12,5.7); std::cout << a2.coursdujour << " " << a2.coursancien << "\n"; Action a3(12); std::cout << a3.coursdujour << " " << a3.coursancien << "\n"; Il peut y avoir plusieurs constructeur parce qu'il peut y avoir plusieurs attributs et plusieurs façon de construire un objet. Ces déclarations et les choix dépendent du contexte. Une erreur à éviter Bien noter dans le dernier listing le premier appel de constructeur dans le main. Malgré que le constructeur par défaut soit déclaré comme Action::Action();, il n'est pas possible de déclarer une variable en faisant Action a();, il faut s'en tenir à l'instruction Action a;. L'instruction Action a(); sera acceptée mais elle ne correspond pas au constructeur et provoquera rapidement des erreurs. 3 Destruction d'objets Alors qu'une méthode constructeur est appelée lors de la création d'un objet, une méthode destructeur est appelée lors de sa destruction. Pour s'en rendre compte, il suffit de rendre explicite la déclaration du constructeur par défaut : ~Action() et de lui associer une définition qui affiche un texte. A l'instar du constructeur par défaut, le destructeur par défaut est disponible sans que l'utilisateur ait besoin de la définir.

14 Action(); ~Action(); //on rajoute la déclaration du destructeur par défaut Action(double,double); Action(double); ; Action::Action() coursdujour=0; coursancien=0; Action::Action(double x, double y) coursdujour=x; coursancien=y; Action::Action(double x) coursdujour=x; coursancien=0; double Action::calcRentabilite() Action::~Action() //on donne une définition au destructeur par défaut std::cout << "Ceci vient du destructeur\n"; int main() Action a; std::cout << a.coursdujour << " " << a.coursancien << "\n"; Action a2(12,5.7); std::cout << a2.coursdujour << " " << a2.coursancien << "\n"; Action a3(12); std::cout << a3.coursdujour << " " << a3.coursancien << "\n"; En exécutant ce code, on se rend compte que le texte spécifié par le destructeur s'affiche 3 fois. Cela vient du fait que l'on a construit 3 objets de type Action, le destructeur est donc appelé à 3 reprises.

15 Il peut être intéressant de définir le destructeur par défaut. On peut penser de manière simple au fait d'un logiciel qu'on veut maintenir dans un état cohérent : chaque objet pourrait lancer une procédure de sauvegarde de son état courant lors de la destruction des objets, soit la destruction du logiciel. A noter que lorsque l'on cherche à déclarer un destructeur avec des paramètres cela n'est pas possible : le destructeur ne peut pas être surchargé. Il n'est jamais fait d'appel explicite au destructeur pour les variables locales aux fonctions qui sont définies dans la pile. On verra dans le chapitre suivant qu'on détruira les objets créés dans le tas en utilisant delete et non pas directement le destructeur. 4 Methodes const Parler d'optimisation ici mais, à ne pas forcément voir en C++ Il est possible d'utiliser le mot clé const sur une méthode. Ce mot clé indique la fonction ne contient aucune instruction de modification des membres de la classe. Ainsi dans le code qui suit, la fonction f1 #include <iostream> class A int j; void f1() const; void f2(); void f3() const; A(); ; void A::f1() const j=5; void A::f2() j=5; void A::f3() const

16 std::cout << "Ceci vient de f3\n"; A::A() std::cout << "Appel au constructeur\n"; int main() A vara; vara.f1(); vara.f2(); vara.f3(); return 0; Ceci provoque une erreur à la compilation à cause de la fonction f1 déclarée comme const mais qui contient une instruction de modification de j. En revanche, le code suivant se compile : #include <iostream> class A int j; void f1() const; void f2(); void f3() const; A(); ; void A::f1() const std::cout << "Ceci vient de f1\n"; void A::f2() j=5; void A::f3() const std::cout << "Ceci vient de f3\n"; A::A() std::cout << "Appel au constructeur\n";

17 int main() A vara; vara.f1(); vara.f2(); vara.f3(); return 0; Autant que faire se peut, il vaut mieux déclarer comme const les fonctions qui le sont, pour que le compilateur puisse détecter d'éventuelles erreurs.

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

1.6- Génération de nombres aléatoires

1.6- Génération de nombres aléatoires 1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Tp 1 correction. Structures de données (IF2)

Tp 1 correction. Structures de données (IF2) Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que

Plus en détail

et Programmation Objet

et Programmation Objet FACULTE POLYTECHNIQUE DE MONS Service d Informatique et Programmation Objet Mohammed Benjelloun 2 ème Bachelier Année académique 2008-2009 Table des matières Avant-propos--------------------------------------------------------------------------

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Trier les ventes (sales order) avec Vtiger CRM

Trier les ventes (sales order) avec Vtiger CRM Trier les ventes (sales order) avec Vtiger CRM Dans l'activité d'une entreprise, on peut avoir besoin d'un outil pour trier les ventes, ce afin de réaliser un certain nombre de statistiques sur ces ventes,

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

1. Étape: Activer le contrôle du compte utilisateur

1. Étape: Activer le contrôle du compte utilisateur Contenu : 1. Étape: Activer le contrôle du compte utilisateur 2. Etape : Activer le pare-feu 3. Etape : Utiliser le logiciel anti-virus 4. Etape : Activer les mises à jour automatiques 5. Etape: Créer

Plus en détail

Systeme d'exploitation

Systeme d'exploitation Introduction au dévellopement de Methodes Natives Partie I : appelle de methodes C++ sous windows Auteur: Frank Sauvage. 1 \ introduction aux methodes natives : Les methodes natives sont des methodes devellopées

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 ) P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes

Plus en détail

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE 2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance

Plus en détail

Diagramme de classes

Diagramme de classes Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

Plus en détail

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

La sauvegarde (backup) de votre comptabilité a pour but de vous permettre de retrouver vos données si un incident est survenu.

La sauvegarde (backup) de votre comptabilité a pour but de vous permettre de retrouver vos données si un incident est survenu. Logiciels concernés Ciel Compta Premium, Evolution et Réseau. Depuis la version 10.xx jusqu'à la version 13.xx Sauvegarde Remarque préliminaire La sauvegarde (backup) de votre comptabilité a pour but de

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur

Plus en détail

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

JAVA TD0. Prise en main du langage Environnement de base JAVA 1 JAVA TD0 Prise en main du langage Environnement de base JAVA 1 Mon premier programme public class HelloWorld { public static void main(string [] arg){ System.out.println("Hello, World!"); main(string []

Plus en détail

B2i. LE B2i Brevet Informatique et Internet. Niveau : tous. 1 S'approprier un environnement informatique de travail. b2ico1.odt.

B2i. LE B2i Brevet Informatique et Internet. Niveau : tous. 1 S'approprier un environnement informatique de travail. b2ico1.odt. 1 S'approprier un environnement informatique de travail 1.1) Je sais m'identifier sur un réseau ou un site et mettre fin à cette identification. 1.2) Je sais accéder aux logiciels et aux documents disponibles

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

La programmation des PIC en C. Les fonctions, les interruptions.

La programmation des PIC en C. Les fonctions, les interruptions. La programmation des PIC en C Les fonctions, les interruptions. Réalisation : HOLLARD Hervé. http://electronique-facile.com Date : 26 août 2004 Révision : 1.2 Sommaire Sommaire... 2 Introduction... 3 Structure

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Le stockage local de données en HTML5

Le stockage local de données en HTML5 Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Introduction à l héritage en C++

Introduction à l héritage en C++ Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay Yacine.Bellik@iut-orsay.fr 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition

Plus en détail

Fichiers, dossiers, enregistrer et arborescence

Fichiers, dossiers, enregistrer et arborescence Fichiers, dossiers, enregistrer et arborescence La notion de fichiers Dans les années 1960, les supports magnétiques (disques durs, disquettes,...) étaient encore très chers. D'autres méthodes ont été

Plus en détail

Suite dossier d appel

Suite dossier d appel Suite dossier d appel Table des matières 1. INTRODUCTION... 3 2. TRAITEMENT D'UN APPEL... 4 2.1. TRAITEMENT EN DIRECT... 4 2.2. TRAITEMENT DIFFERE... 4 2.3. MECANISME DU TRAITEMENT D'UN APPEL AU NIVEAU

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Plan Pédagogique du cours

Plan Pédagogique du cours Plan Pédagogique du cours Module: Programmation Orientée Objet Section : informatique Niveau : 3 ème niveau (gestion, industriel, réseau) Volume Horaire : 22,5 heures Cours Intégrés + 45 Travaux Pratiques

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Cours 14 Les fichiers

Cours 14 Les fichiers Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une

Plus en détail

1 sur 5 10/06/14 13:10

1 sur 5 10/06/14 13:10 Time Machine est un outil proposé par Mac OS depuis sa version 10.5 (Leopard) et qui permet d'effectuer des sauvegardes de votre disque dur de manière régulière. Mais au-delà de la simple sauvegarde périodique,

Plus en détail

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail

TP SIN Programmation sur androïde Support : eclipse

TP SIN Programmation sur androïde Support : eclipse TP SIN Programmation sur androïde Support : eclipse Support : Smartphone sur androïde Pré requis (l élève doit savoir): Savoir utiliser un ordinateur Savoir utiliser un Smartphone Programme Objectif terminale

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

TP Service HTTP Serveur Apache Linux Debian

TP Service HTTP Serveur Apache Linux Debian Compte rendu de Raphaël Boublil TP Service HTTP Serveur Apache Linux Debian Tout au long du tp, nous redémarrons le service apache constamment pour que les fi de configuration se remettent à jour - /etc/init.d/apache2

Plus en détail

Conception d'applications de base de données ios plus rapides Guide Pratique FileMaker

Conception d'applications de base de données ios plus rapides Guide Pratique FileMaker Conception d'applications de base de données ios plus rapides Guide Pratique FileMaker Table des Matières Introduction... 3 Conception de modèles... 3 Conception de bases de données... 5 Conception pour

Plus en détail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

Plus en détail

Cours Langage C/C++ Programmation modulaire

Cours Langage C/C++ Programmation modulaire Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

Traitement de texte : Quelques rappels de quelques notions de base

Traitement de texte : Quelques rappels de quelques notions de base Traitement de texte : Quelques rappels de quelques notions de base 1 Quelques rappels sur le fonctionnement du clavier Voici quelques rappels, ou quelques appels (selon un de mes profs, quelque chose qui

Plus en détail

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le 10.09.

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le 10.09. SOFI Gestion+ SOFI Informatique Version 5.4 Echanges de données informatiques Spicers Sofi gestion+ Groupements Actualisé le 10.09.2004 Table des matières 1. Catalogue et tarifs... 4 1.1 Définition EDI...

Plus en détail

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances

Plus en détail

Distinguer entre «Enregistrer» et «Sauvegarder»

Distinguer entre «Enregistrer» et «Sauvegarder» Compétence D1.4 IV - : Pérenniser ses données IV Assurer une sauvegarde 33 Compresser / Décompresser un fichier ou un ensemble de fichiers / dossiers 35 A. Assurer une sauvegarde Distinguer entre «Enregistrer»

Plus en détail

Programmation Orientée Objet en C#

Programmation Orientée Objet en C# Programmation Orientée Objet en C# 1 Introduction 1.1 Présentation Tout bon développeur le sait, le code d'un programme doit être propre, commenté, facile à maintenir et à améliorer. Vous êtes adepte de

Plus en détail

Débuter avec OOo Base

Débuter avec OOo Base Open Office.org Cyril Beaussier Débuter avec OOo Base Version 1.0.7 Novembre 2005 COPYRIGHT ET DROIT DE REPRODUCTION Ce support est libre de droit pour une utilisation dans un cadre privé ou non commercial.

Plus en détail

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 1 : La gestion dynamique de la mémoire Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement

Plus en détail

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application On souhaite réaliser la connexion d'un programme avec des sources de données Ici, des bases de données relationnelles Deux approches sont possibles qui mettent en œuvre chacune son propre jeu de classes

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette

Plus en détail

COMMISSION DES NORMES COMPTABLES. Avis CNC 138/5 Logiciels

COMMISSION DES NORMES COMPTABLES. Avis CNC 138/5 Logiciels COMMISSION DES NORMES COMPTABLES Avis CNC 138/5 Logiciels Introduction La Commission a consacré une étude approfondie au traitement comptable de la création ou de l acquisition d un logiciel par une entreprise,

Plus en détail

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,

Plus en détail