Organisation des données Structures de stockage
|
|
- Emmanuelle Labelle
- il y a 8 ans
- Total affichages :
Transcription
1 INGE2/INGE3 S3/S5 Robin FERCOQ Organisation des données Structures de stockage 1
2 Organisation des données Structures de stockage I Données et traitements Méthodes de conception de programmes 2
3 I / Données et traitements Système Informatique : Stockage / Transmission / Traitement d'informations Données : Descriptions ou représentations d'informations Plusieurs niveaux de représentation : Utilisateur humain qui donne du sens aux choses Données structurées représentant des ''objets'' ou des ''collections d'objets'' Données élémentaires caractérisant chaque objet Binaire (représentation machine des données) 3
4 Bonjour Zorg le guerrier! Une bonne hache pour 15 pièces? Informations présentées à l'utilisateur Messages / Images / Animations / Sons joueur "Luc" 0 "magicien" perso "Zorg" 1 "guérisseur" classe 2 2 "guerrier" fortune 12 Types composés Tableaux / Structures 'L' 'u' Types scalaires fondamentaux Caractères / Entiers / Flottants / Pointeurs e Représentation binaire (niveau machine) 4
5 I / Données et traitements! Toutes les méthodes de conception distinguent Traitements : les actions, ordres du programme Données : ce qui est modifié par les actions, nombres ou symboles représentant des informations réelles ou virtuelles Le Modèle dans la méthode MVC articule ce binôme Données 10 notes Traitements saisie utilisateur 10 notes déterminer maximum maximum afficher maximum 5
6 I / Données et traitements! Selon la nature et la complexité du programme le rapport entre données et traitements évolue L'interface utilisateur (Vue) dissocie string.h strlen strcpy strcmp strcat strdup strstr apparence des informations pour l'utilisateur représentation interne des données (codages) Des algorithmes efficaces pour traiter certains problèmes se basent sur des organisations particulières des données On utilise ou on développe des bibliothèques : on compose des structures de plus haut niveau avec des structures de niveau plus élémentaire. Les données se dotent d'interfaces standardisées pour ne plus avoir à manipuler les types de départ 6
7 I / Données et traitements! Autre problème : il y a 2 contextes de stockage Mémoires vives : RAMs Contenu des variables du programme en cours d'exécution (données traitées) Rapide (<1ns) mais volatile Mémoires de masse : disques durs, clés USB Fichiers et systèmes de fichiers Archivage, persistance des données Trop lent et pas assez souple pour servir directement de support de traitement pour un programme : on ne déclare pas une variable dans un fichier, les pointeurs alloués en RAM ne sont pas utilisables 7
8 I / Données et traitements Evolution du rapport données/traitement Logique de flux Entrée/Sortie (Input/Output stdio) Données initiales entrées (saisie ou fichier) Traitements Données résultat sorties (affichage ou fichier) 8
9 I / Données et traitements Evolution du rapport données/traitement Exemple : chiffres nombre en toutes lettres 689,95 entrée (saisie) Traitements Six cent quatre-vingt-neuf euros et quatre-vingt-quinze centimes sortie (impression chèque) 9
10 I / Données et traitements Evolution du rapport données/traitement Exemple : commandes ''filtres'' du système Unix M;Alphonse;1932;Martin F;Béatrice;1964;Guibert F;Charlotte;1988;Le Goff M;Jean Emmanuel;1999;Dupuis entrée (fichier liste.txt) cut -d ';' -f2,4 <liste.txt >out.txt Traitements Alphonse;Martin Béatrice;Guibert Charlotte;Le Goff Jean Emmanuel;Dupuis sortie (fichier out.txt) 10
11 I / Données et traitements Evolution du rapport données/traitement Algorithmes complexes : données intermédiaires Données initiales fichier en entrée Données intermédiaires Traitements Données résultat fichier en sortie 11
12 I / Données et traitements Evolution du rapport données/traitement Exemple : reconnaissance de caractères fichier image Traitements "research" fichier texte 12
13 I / Données et traitements Evolution du rapport données/traitement Exemple : compilation source exécutable } x = a - b/c + d*e; return 5*a + 20*x + 750; fichier source : main.c gcc main.c -o calculs + * a / b d Traitements e c langage machine + constantes fichier exécutable : calculs (unix) ou calculs.exe (windows) 13
14 I / Données et traitements Evolution du rapport données/traitement Modèle "application" : on travaille sur un document Données à modifier Traitements 14
15 ! I / Données et traitements Evolution du rapport données/traitement Modèle "application" : on travaille sur un document charger tout mode "r" Données archivées entrées Données à modifier Traitements mode "w" sauver tout fichier(s) document Persistance clavier souris Vue écran sorties document monté en mémoire vive Programme en cours d'exécution apparence des données pour l'utilisateur Interface utilisateur IHM 15
16 i I / Données et traitements Evolution du rapport données/traitement Architecture Client/Serveur : site web dynamique synchro requêtes mode "r" scripts coté serveur réponses mode "w" fichiers serveur de données Persistance : Base de Données clavier souris requêtes scripts coté client réponses serveur web Serveur site web : données partielles Vue écran navigateur web apparence Pages web consultées dans le navigateur 16
17 I / Méthodes de conception! On passe d'une problématique d'implémentation pour un traitement de données "homogènes" Traitement central du CDC Problème central Sous-problèmes Analyse fonctionnelle descendante T1 Sous-sous-problèmes Sous-sous-sous-problèmes T2 T2.1 T2.2 T2.1.1 T2.1.2 T3 T2.3 T3.1 T3.2 17
18 I / Méthodes de conception exemple illustratif d'analyse descendante pour un traitement compliqué (analyse d'image) 18
19 ! I / Méthodes de conception à une problématique d'organisation et d'assemblage d'ensembles "hétérogènes" de données ajout vol aéroport modif. vol avions passagers id billet nom num. prénom corresp. adresse date vols pistes navig. pilotes mécan. embarquements hotes. données hétérogènes mais cohérentes : organisées et structurées change pilote annonce retard autoriser décollage etc 19
20 I / Méthodes de conception! En résumé on évolue de Une conception centrée sur les traitements Décomposition complexe élémentaire Vers une conception centrée sur les données, nature (types), relations, protocoles d'accès Composition éléments ensembles L'analyse fonctionnelle descendante reste valable pour aborder des traitements complexes Certains choix sur l'organisation des données restent encore guidés par l'efficacité des traitements associés On associe étroitement structures et traitements pour obtenir des "objets" munis de "comportements" 20
21 Organisation des données Structures de stockage II Types de données 21
22 II / Types de données! Les données représentent les informations d'objets (réels ou virtuels) qui apparaissent souvent comme des ensembles d'éléments de même nature : partageant les mêmes attributs ayant des valeurs spécifiques pour chaque élément faisant l'objet d'actions ou traitements similaires Exemples : Ensemble Voiture Attributs : immatr. / proprio. / marque / couleur Actions : fabriquer / rouler / tourner Ensemble Etudiant Attributs : nom / prénom / note(s) / taille Actions : inscrire / appeler / évaluer 22
23 II / Types de données! En info. un tel ensemble est un type de donnée Un élément particulier de cet ensemble est appelé une variable ou instance de ce type Exemple : type Voiture Instance : ma première voiture Instance : la Clio immatriculée RT-187-LA Instance : la Batmobile 23
24 II / Types de données Les types prédéfinis du C ( scalaires ) correspondent à des types "techniques" pour données élémentaires. Bien que de même type float, des notes et des tailles ne doivent pas se retrouver confondus float notes_et_tailles[400]; // Pour 200 élèves??? Les types élémentaires prédéfinis ne permettent pas de décider des bons regroupements pour la conception : pas de sémantique associée 24
25 II / Types de données! 2 approches fondamentales de composition de types tableau collection de données de même type Elements énumérables par boucle, accès direct et efficace au rang i Déclarer/allouer un tableau permet de gérer une collection d'instances de même type, souvent groupées selon une même intention Exemple : t_voiture * mon_parking[500]; struct collection de données de types hétérogènes "Elements" = champs ou attributs de la struct Accessibles seulement par le nom des champs Définir une struct amène un nouveau type Exemple : typedef struct voiture {} t_voiture; 25
26 II / Types de données Exemple simplifié, on gère une promo d'étudiants : on suppose 200 étudiants (nb. fixe pour l'instant) on doit stocker leur noms, prénoms, notes, tailles Une problématique qui revient souvent : Plusieurs tableaux ( de types distincts )? Tableau de structs ou de pointeurs sur structs? 26
27 II / Types de données promo.h #define NB_ETUDIANTS 200 Plusieurs tableaux de types distincts main.c #include "promo.h" int main() { // équivalent à char promo_noms[200][50]; char promo_noms[nb_etudiants][50]; // équivalent à char promo_prenoms[200][50]; char promo_prenoms[nb_etudiants][50]; // pour simplifier : une seule note par étudiant float promo_notes[nb_etudiants]; // pour optimiser les amphis float promo_tailles[nb_etudiants]; 27
28 II / Types de données Plusieurs tableaux de types distincts promo_noms 0 Martin promo_prenoms 0 Adèle promo_notes promo_tailles Dubois 1 Stéphane Legrand 2 Laurent Georges Morin 4 Garnier 4 Alice Dubois 198 Emilie Lefebvre 199 Pierre
29 II / Types de données Plusieurs tableaux de types distincts promo_noms promo_prenoms promo_notes promo_tailles Martin Adèle Dubois Stéphane Legrand Laurent Morin Georges Garnier Alice Dubois Emilie Lefebvre Pierre Ce genre de regroupement est souvent mauvais : - Problèmes de maintient de cohérence (tris ) - La relation entre Martin, Dubois, Morin, Dubois est superficielle 29 - On ne peut gérer un étudiant sans avoir toute la promo
30 ! II / Types de données Grouper autrement Martin Adèle Dubois Stéphane Legrand Laurent Morin Georges Garnier Alice Dubois Emilie Lefebvre Pierre Le regroupement naturel commence par mettre ensemble les données d'un même étudiant 30
31 ! II / Types de données Grouper autrement Martin Dubois Legrand Morin Adèle Stéphane Laurent Georges Garnier Alice Dubois Emilie Lefebvre Pierre Le regroupement naturel commence par mettre ensemble les données d'un même étudiant 31
32 ! II / Types de données Tableau de structs promo 0 Martin Adèle Dubois Stéphane Legrand Laurent Morin Georges Garnier Alice Dubois 199 Lefebvre Emilie Pierre promo[198].note promo[198] t_etudiant Le regroupement naturel commence par mettre ensemble les données d'un même étudiant en définissant un type struct 32
33 ! II / Types de données etudiant.h typedef struct etudiant { char nom[50]; char prenom[50]; float note; float taille; } t_etudiant; Tableau de structs main.c #include "etudiant.h" #include "promo.h" int main() { // equivalent à t_etudiant promo[200]; t_etudiant promo[nb_etudiants]; 33
34 II / Types de données promo Martin 0 Dubois Morin Garnier Dubois Alice Emilie 17.5 Laurent Georges Tableau de pointeurs sur structs 1.87 Stéphane Legrand 2 4 Adèle ! 1.61 promo[198]->note *promo[198] t_etudiant 199 Lefebvre Pierre promo[198] t_etudiant * Il est souvent préférable de gérer les collections de structs par pointeurs Les pointeurs jouent un rôle de référence vers chaque instance 34
35 II / Types de données etudiant.h typedef struct etudiant { } t_etudiant;! Tableau de pointeurs sur structs t_etudiant *etudiant_creer(); main.c #include "etudiant.h" #include "promo.h" int main() { int i; t_etudiant * promo[nb_etudiants]; for (i=0; i<nb_etudiants; i++) // création : utilise un malloc promo[i]=etudiant_creer(); 35
36 II / Types de données! Pointeurs et allocation Les pointeurs sont un exemple de métadonnées Les métadonnées sont des données permettant de trouver ou d'organiser d'autres données Paramètres et retours des sous-programmes : privilégier les passages par adresse plutôt que par valeur pour l'efficacité pas de copies Utilisation systématique de pointeurs sur des instances obtenues par allocation : favorise une autonomie des données référencées par rapport aux "conteneurs" et aux allers-retours des fcts. 36
37 ! II / Types de données promo_alpha Martin Adèle Dubois 12.8 Stéphane Legrand Morin Garnier Dubois Tris Lefebvre Emilie Pierre promo_grands 17.5 Laurent Georges Alice Sélections 1.68 major Instances uniques Pointeurs et collections de pointeurs sur structs : - Les mêmes objets peuvent être référencés dans plusieurs collections sans être dupliqués cohérence Manipulation de pointeurs léger.
38 II / Types de données! Compléments sur les structs La déclaration classique de struct confond La déclaration de la struct et de son contenu La définition d'un type synonyme etudiant.h typedef struct etudiant { char nom[50]; char prenom[50]; float note; float taille; } t_etudiant; 38
39 II / Types de données Compléments sur les structs typedef pratique mais pas obligatoire etudiant.h etudiant.h typedef struct etudiant { char nom[50]; char prenom[50]; float note; float taille; } t_etudiant; struct etudiant { char nom[50]; char prenom[50]; float note; float taille; }; main.c main.c #include "etudiant.h" #include "etudiant.h" int main() { t_etudiant *major; int main() { struct etudiant *major; 39
40 II / Types de données Compléments sur les structs struct et typedef en 2 étapes etudiant.h struct etudiant { char nom[50]; char prenom[50]; float note; float taille; }; typedef struct etudiant t_etudiant; main.c #include "etudiant.h" int main() { t_etudiant *major; 40
41 II / Types de données Compléments sur les structs type struct utilisable avant déclaration contenu etudiant.h typedef struct etudiant t_etudiant; struct etudiant { char nom[50]; char prenom[50]; float note; float taille; }; main.c #include "etudiant.h" int main() { t_etudiant *major; 41
42 II / Types de données Compléments sur les structs type struct utilisable avant déclaration contenu #include "etudiant.h" typedef struct maillon t_maillon; struct maillon { t_etudiant *data; t_maillon *suiv; }; typedef t_maillon * t_liste_etu; main.c #include "liste_etu.h" liste_etu.h int main() { t_liste_etu promo; 42
43 II / Types de données Compléments sur les structs : structs dans structs /// etudiant.h typedef struct etudiant_ { char nom[50] OU char *nom; char prenom[50] OU char *prenom; // t_date date_naissance; t_date date_admission; t_cursus *majeure; t_modele3d *avatar; } t_etudiant; 43
44 II / Types de données Compléments sur les structs : structs dans structs /// date.h typedef struct date { } t_date; /// adresse.h typedef struct adresse { } t_adresse; /// identite.h typedef struct identite { char nom[50]; char prenom[50]; t_date date_naissance; t_adresse lieu_naissance; t_adresse lieu_residence; } t_identite; /// admission.h typedef struct admission { t_date date_depot, date_admission; t_diplome **liste_diplomes; } t_admission; /// etudiant.h typedef struct etudiant { t_identite *id; OU t_identite id;? t_admission dossier_admission; t_evaluations *liste_eval; t_modele3d *avatar; } t_etudiant; 44
45 Organisation des données Structures de stockage III Modularisation, abstraction Interface et implémentation 45
46 III / Modularisation La modularisation d'un programme a pour but son découpage en composants indépendants, et si possible de petite taille. Si tout le monde s'accorde à dire que cette approche est indispensable pour produire du logiciel de qualité, sa mise en œuvre soulève des problèmes variés et fait encore l'objet de controverses. Différents styles, non nécessairement compatibles, ont vu le jour Extrait de : Méthodologie de la programmation en C A. Braquelaire DUNOD 46
47 III / Modularisation On considérera qu'un programme est modulaire lorsqu'il est éclaté en composants, les modules, satisfaisant ces cinq objectifs : Lisibilité Maintenabilité Portabilité Extensibilité Réutilisabilité Extrait de Méthodologie de la programmation en C A. Braquelaire DUNOD 47
48 III / Modularisation!! Nous retiendrons l'approche module = type d'objet qui est à la base des méthodologies "orientées objet" Le C n'est pas un langage orienté objet mais des langages comme le C++ ou Java dérivent d'une "approche objet" déjà possible en C Un module sera défini à partir d'un type composé (généralement un type struct) représentatif d'un ensemble d'éléments partageant les mêmes attributs - avec valeurs spécifiques des comportements ou traitements similaires Exemple type point pour faire de la géométrie chaque point a des attributs x et y de val. spécifique tout point peut être créé, détruit, dessiné, translaté 48
49 III / Modularisation!! Un module est constitué par l'association type/traitements 1/ Définition du type comme collection d'attributs Exemple typedef struct point { float x; float y; } t_point; 2/ Définition d'un ensemble de sous-programmes permettant de "manipuler" des instances de ce type Exemple t_point * point_creer(float x, float y) void point_dessiner(t_point *p, t_vue *v) float point_distance(t_point *p1, t_point *p2) 49
50 III / Modularisation!! Un principe essentiel de modularité est la séparation entre Interface Accessible par les développeurs/utilisateurs du module : ils accéderont toujours aux fonctionnalités du module par l'interface. On dit que l'interface est publique. Implémentation La manière technique de représenter les données et les algorithmes permettant de mettre en œuvre concrètement les traitements demandés. En "orienté objet" on considère que ce genre de "détails" doivent rester privés. Les utilisateurs n'ont pas à mettre les mains dessus. 50
51 !! III / Modularisation En C un tel module se décompose en 2 fichiers : Interface Déclarée dans un fichier en-tête :.h Vo ir p ro je t - Déclaration du type - Prototypes des sous-programmes publiques m od ul e_ po in t Implémentation Définie dans un fichier source :.c - Définitions des sous-programmes publiques 51
52 III / Modularisation Un module C comporte aussi parfois : Vo ir! pr oj et m od ul Interface e_ po Déclarée dans un fichier en-tête :.h in t_ - Constantes et globales associées au type de riv - Déclaration du type e - Prototypes des sous-programmes publiques Implémentation Définie dans un fichier source :.c - Instanciation et initialisation des globales - Définitions des sous-programmes auxiliaires privés - Définitions des sous-programmes publiques 52
53 III / Modularisation!! Lorsque ces principes sont respectés et qu'il est effectivement possible de travailler avec des objets du type défini par le module, sans jamais accéder directement aux données internes mais en s'appuyant sur un répertoire standardisé de comportements ( aux conventions d'appels bien définis ) on obtient un type abstrait de donnée : abstract data type On fait "abstraction" de l'implémentation en disposant de (et en utilisant exclusivement) l'interface. L'implémentation peut être changée sans remettre en cause le code utilisateur du module. Exemple : le type FILE et ses appels associées fopen, fclose, feof, fprintf, fscanf, fgets, fflush 53
54 III / Modularisation! code utilisateur d'objets du type t_machin tout passe par l'interface du module machin Pas d'accès direct à la représentation interne créer malloc appels à l'interface détruire lire free int char * écrire spécifiques return ob->x = ob->x param int int char char Définit le type abstrait de donnée Interface : stable int char Implémentation : interchangeable 54
55 III / Modularisation! type étudiant Interface Implémentation Interface Implémentation Interface type identité Implémentation type date Exemple d'interaction entre plusieurs modules d'après Méthodologie de la programmation en C 55
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étailIntroduction à 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étailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détailChap III : Les tableaux
Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction
Plus en détailINITIATION 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étailChapitre 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étailUniversité de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailSuivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailPROJET 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étailC++ 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étailUE 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étailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailArchitecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application
Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces
Plus en détail2 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étailIntroduction aux SGBDR
1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailDiagramme 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étailCours 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étailTravaux 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étailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailSUPPORT DE COURS. Langage C
Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages
Plus en détailBases 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étailIFT3030 Base de données. Chapitre 2 Architecture d une base de données
IFT3030 Base de données Chapitre 2 Architecture d une base de données Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées
Plus en détailDE 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étailAnnexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Plus en détailDans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.
I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement
Plus en détailInformatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction
Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d
Plus en détailBrefs 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étailConservation des documents numériques
Conservation des documents numériques Qu'est ce qu'un document numérique? Matthieu GIOUX matthieu.gioux@bnf.fr Contexte de la préservation des documents numériques Une croissance en expansion Développement
Plus en détailCours 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étailCORBA. (Common Request Broker Architecture)
CORBA (Common Request Broker Architecture) Projet MIAGe Toulouse Groupe 2 1 CORBA, introduction (1/4) Les systèmes répartis permettent de créer des applications basées sur des composants auto-gérables,
Plus en détailCours 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étailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailCours 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étailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détailINTRODUCTION 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étailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailTravaux Dirigés n 1 : chaînes de caractères
UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void
Plus en détailCours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles
Plus en détailSYSTÈME DE GESTION DE FICHIERS
SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailPour 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étailSYSTÈME DE GESTION DE FICHIERS SGF - DISQUE
SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur
Plus en détailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détailSeance 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étailA QUOI SERVENT LES BASES DE DONNÉES?
BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailTP 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étailTutoriel: Création d'un Web service en C++ avec WebContentC++Framework
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan
Plus en détailHé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étailProgrammation impérative
Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailPolymorphisme, 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étailINF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Plus en détailL informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Plus en détail4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailKMnet Admin LOGICIEL COMPLET ET PERFORMANT D'ADMINISTRATION DES PÉRIPHÉRIQUES.
KMnet Admin LOGI CIEL D'ADMINISI TRATION DES PÉ RIPHÉR ÉRIQUES PO UR LES ENTREPRISES LOGICIEL COMPLET ET PERFORMANT D'ADMINISTRATION DES PÉRIPHÉRIQUES. ADMINISTRATION RAPIDE ET FACILE DES PÉRIPHÉRIQUES
Plus en détailProgramme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée
Plus en détailArchitecture d'entreprise : Guide Pratique de l'architecture Logique
Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailPlan 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étailet Groupe Eyrolles, 2006, ISBN : 2-212-11747-7
Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,
Plus en détailProgrammer 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étailMise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Plus en détailD une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.
PACBASE «Interrogez le passé, il répondra présent.». Le Module e-business Les entreprises doivent aujourd hui relever un triple défi. D une part, elles ne peuvent faire table rase de la richesse contenue
Plus en détailJava 7 Les fondamentaux du langage Java
184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailCOURS WINDEV NUMERO 3
COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d analyse, Manipulation des tables mémoires, Manipulation de données, Création d états, Pré requis : Cours WinDev
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailBTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais
BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3
Plus en détailPrésentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Plus en détailFormation : WEbMaster
Formation : WEbMaster Objectif et Description : Centre Eclipse vous propose une formation complète WebMaster, vous permettant de : Utiliser dès maintenant les nouveautés du web2, ainsi alléger les besoins
Plus en détailInfo0101 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étailhttp://www.linea21.com info@linea21.com
Livre blanc http://www.linea21.com SOMMAIRE SOMMAIRE... 1 PRESENTATION... 2 TIC ET DEVELOPPEMENT DURABLE... 3 PUBLIER ET COMMUNIQUER... 4 LES GROUPES DE TRAVAIL...5 LE TABLEAU DE BORD PERSONNALISE... 6
Plus en détailProcessus d Informatisation
Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue
Plus en détailLes fichiers. Chapitre 4
Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,
Plus en détailQu'est-ce que le BPM?
Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant
Plus en détailet les Systèmes Multidimensionnels
Le Data Warehouse et les Systèmes Multidimensionnels 1 1. Définition d un Datawarehouse (DW) Le Datawarehouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailbasée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
Plus en détailCARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1
CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table
Plus en détailEXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning
EXERCICES UML 1 ) Dans un établissement scolaire, on désire gérer la réservation des salles de cours ainsi que du matériel pédagogique (ordinateur portable ou/et Vidéo projecteur). Seuls les enseignants
Plus en détailArchivage numérique de documents SAP grâce à DocuWare
Connect to SAP Product Info Archivage numérique de documents SAP grâce à DocuWare Connect to SAP relie DocuWare au module SAP ArchiveLink intégré à SAP NetWeaver par le biais d une interface certifiée.
Plus en détailConnexion à 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étailProgrammation Orientée Objet
Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :
Plus en détailTP1 : 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étailMéthodes de développement. Analyse des exigences (spécification)
1 / 16 Méthodes de développement Analyse des exigences (spécification) 1 -Objectifs de l'analyse des exigences... 2 2 - Approfondissement et formalisation du besoin... 2 2.1 Séparation des besoins, contraintes
Plus en détailCours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Plus en détailLe génie logiciel. maintenance de logiciels.
Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction
Plus en détailWEA Un Gérant d'objets Persistants pour des environnements distribués
Thèse de Doctorat de l'université P & M Curie WEA Un Gérant d'objets Persistants pour des environnements distribués Didier Donsez Université Pierre et Marie Curie Paris VI Laboratoire de Méthodologie et
Plus en détailL'accès aux ressources informatiques de l'ufr des Sciences
L'accès aux ressources informatiques de l'ufr des Sciences Infrastructure et document produit par le service des ressources Informatiques de l'ufr des sciences. Introduction : Ce document présente les
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détailCatalogue Formation «Vanilla»
Catalogue Formation «Vanilla» Date : octobre 2009 Table des matières Liste des Formations...2 Contenu des formations...3 Vanilla FastTrack...3 Vanilla Architecture...5 Enterprise Services...6 BIPortail...7
Plus en détailFormation en Logiciels Libres. Fiche d inscription
République Tunisienne Ministère de l'industrie et la Technologie - Secrétariat d'état de la Technologie Unité des Logiciels Libres Formation en Logiciels Libres Fiche d inscription (Une fiche par candidat)
Plus en détail