Bibliothèque#standard#C++#
|
|
|
- Sylvain Pellerin
- il y a 10 ans
- Total affichages :
Transcription
1 IntroducTon# Bibliothèque#standard#C++# ISIMA#A#ZZ2#A#2012# A.#&#C.#Duhamel# B.#Garcia## D.#Hill# L.#Yon# Présence#récurrente#en#développement#des#mêmes# structures#de#données#:#vecteur,#pile,#file,#ensemble # algorithmes#:#chercher,#trier,#insérer,#extraire # Éviter#de#réinventer#la#roue# temps#perdu#(codage,#débogage,#optmisaton)# utliser#l existant#(bibliothèques)# Tous#les#langages#modernes#ont#une#bibliothèque# java,#c#,#perl,#python# C++# 1 2 Pourquoi#uTliser#la#bibliothèque#standard#?# Fiabilité#:#collecTon#de#classes#largement#uTlisées# Portabilité#:#standard,#totalement#en#C++# Efficacité#:#uTlisaTon#intensive#de#la#généricité#et#des# structures#de#données#optmisées#pour#garantr#les# meilleures#performances# Compréhensibilité#:#toutes#les#classes#suivent#les# mêmes#conventons#d utlisaton# Contenu# C#standard# Classes#de#base#:#string,#excepTon,#flux# Mais#aussi#:#traits,#auto_ptr# Conteneurs#et#itérateurs# Algorithmes#et#foncteurs# STL# 3 4
2 Exemple# #include <cstdlib> Exemple#1# Exemple#en#C/C++# DéclaraTons#et#iniTalisaTons# Lire#des#enTers# Trier#la#saisie## Afficher#la#liste# Conteneur# Contenir#des#objets## Itérateur# Parcourir#un#conteneur## Début,#fin#élément#courant,#passer#à#élément#suivant# 5 inline int cmp (const void *a, const void *b) const int size = 1000; int aa = *(int *)a; int array [size]; int bb = *(int *)b; int n = 0; return (aa < bb)? -1 : (aa > bb)? 1 : 0; while (cin >> array[n++]); --n; qsort (array, n, sizeof(int), cmp); for (int i = 0; i < n; i++) cout << array[i] << "\n"; // Exemple inspiré de cpp/stltut/tut.html 6 #include <algorithm> #include <vector> vector<int> v; int input; while (cin >> input) v.push_back (input); sort(v.begin(), v.end()); int n = v.size(); for (int i = 0; i < n; i++) cout << v[i] << "\n"; #include <algorithm> #include <vector> #include <iterator> vector<int> v; int input; while (cin >> input) v.push_back (input); sort(v.begin(), v.end()); copy (v.begin(), v.end(), ostream_iterator<int> (cout, "\n")); 7 8
3 #include <algorithm> #include <vector> #include <iterator> vector<int> v; istream_iterator<int> start (cin); istream_iterator<int> end; back_insert_iterator<vector<int> > dest (v); copy (start, end, dest); sort(v.begin(), v.end()); copy (v.begin(), v.end(), ostream_iterator<int>(cout, "\n")); 9 Classes#uTlitaires#de#la#STL# Classe#chaîne#de#caractères#:#string geston#automatque#de#la#mémoire#(fnc)# surcharge#des#opérateurs#classiques#(+,#<<)# définie#dans#le#namespace#std,#header#<string> utlisaton# #include <string> std::string str1("chaine lue : "), str2; std::cin >> str2; std::cout << str1 + str2 << std::endl; str2[0] = \0 ; st1 += str2; std::cout << str1 << std::endl; utliser#le#plus#possible#string#à#la#place#de#char * 10 #include <string> #include <sstream> Classes#uTlitaires#de#la#STL# Classe#excepTon#:#exception fonctonnalités#de#base#(fnc)# méthode#what()#:#renvoie#une#descripton#(char *)# définie#dans#le#namespace#std,#header#<exception> définiton# stringstream ss; ss << "annee :" << 2012 << endl; string s = ss.str(); s += "."; // s.c_str() permet d'accéder au char * interne clog << s; class exception public: exception () throw(); exception (const exception& rhs) throw(); exception & operator= (const exception& rhs) throw(); virtual ~exception() throw(); virtual const char * what() const throw(); ; 11 dériver#les#exceptons#personnelles#de#exception 12
4 Conteneurs#de#la#STL# Trois#grandes#classes#de#conteneurs# séquences#élémentaires# vecteur,#liste#et#file#à#double#entrée# adaptatons#des#séquences#élémentaires# pile,#file#et#file#à#priorité# conteneurs#associatfs# ensemble#avec/sans#unicité# associaton#avec#clé#unique/multple# Remarques# tous#définis#dans#le#namespace#std utlisaton#intensive#de#la#généricité#(type,#allocaton )# Conteneurs#de#la#STL# FoncTonnalités#communes#à#tous#les#conteneurs# Forme#Normale#de#Coplien# dimensionnement#automatque#de#la#capacité# lorsque#l inserton#d un#élément#viole#la#capacité# doublement#de#la#capacité# permet#une#adaptaton#rapide#à#la#taille#«#finale#»# quelques#méthodes# int C::size () const // nombre d éléments int C::max_size () const // nombre max bool C::empty () const // prédicat de vacuité void C::swap (C & cnt) // échange de contenu void C::clear () // purge# Séquences#élémentaires# FoncTonnalités#communes#à#toutes#les#séquences# inserton# S::iterator S::insert (S::iterator bef, T & elt) S::iterator S::insert (S::iterator bef, int nb, T & elt) S::iterator S::insert (S::iterator it, S::const_iterator first, S::const_iterator last) suppression# S::iterator S::erase (S::iterator pos) S::iterator S::erase (S::const_iterator first, S::const_iterator last) accès#en#bordure#de#la#séquence void S::push_back (T & elt) void S::pop_back () T & S::front () const T & S::front () const T & S::back () const T & S::back () const Le#vecteur# header#:#<vector> déclaraton#:#std::vector<t> v;## méthodes#spécifiques# int V::capacity () const void V::reserve (int nb) X & V::operator[] (int idx) const X & V::operator[] (int idx) const intéressant#par#ses#accès#en#o(1)# déconseillé#pour#les#insertons/suppressions#o(n)# 15 16
5 Le#vecteur#(Exemple)# La#liste# #include <vector> typedef std::vector<int> ivector; header#:#<list> déclaraton#:#std::list<t> l;# méthodes#spécifiques# void L::push_front (const T & elt) void L::pop_front () ivector v1; v1.push_back(i); ivector v2(4); // taille initiale 4 v2[i] = i; std::cout << (v1 == v2)? Ok : Pas Ok << std::endl; return 0; 17 void L::remove (const T & elt) void L::sort () void L::sort (Comparator cmp) void L::merge(list<T> & l) splice, remove_if, unique intéressant#pour#les#insertons/suppressions#en#o(1)# déconseillé#pour#les#accès#directs#en#o(n)# 18 La#liste# La#file#à#double#entrée# #include <list> File#à#double#entrée#(vecteur#circulaire)# header#:#<deque> int main(int, char **) typedef std::list<int> ilist; ilist l; l.push_back((10 + 3*i) % 5); l.sort(); // l.reverse(); // // affiche le debut et la fin std::cout << l.front() << ' ' << l.back() << std::endl; déclaraton#:#std::deque<t> d;# méthodes#spécifiques# int D::capacity () const void D::reserve (int nb) void D::push_front (const T & elt) void D::pop_front () X & D::operator[] (int idx) const X & D::operator[] (int idx) const tous#les#avantages#de#vector return 0; geston#des#insertons/suppressions#en#tête#en#o(1)# 19 20
6 La#file#à#double#entrée# Les#itérateurs# #include <deque> int main(int, char **) typedef std::deque<int> ideque; ideque v1; v1.push_back(i); ideque v2(4); // taille initiale 4 v2[i] = i; std::cout << (v1 == v2)? Ok : Pas Ok << std::endl; return 0; Constat# souhaite#souvent#parcourir#les#éléments#d un#conteneur# soluton#naïve#:#définir#un#pointeur#sur#la#cellule#courante#dans#le#conteneur# limite#:#on#ne#peut#pas#avoir#deux#parcours#en#même#temps# soluton#temporaire#:#sortr#le#pointeur#du#conteneur#(en#l encapsulant#!)# souhaite#parfois#avoir#des#parcours#différents#(avant,#arrière )# soluton#naïve#:#définir#la#stratégie#de#parcours#dans#le#conteneur# limite#:#on#ne#peut#avoir#(proprement)#qu un#seul#type#de#parcours# soluton#temporaire#:#sortr#la#stratégie#du#conteneur#(en#l encapsulant#!)# Itérateur# classe#qui#définit#l accès#à#un#élément#courant#du#conteneur# classe#qui#définit#sa#stratégie#de#parcours# Les#itérateurs# Stratégies#d accès#et#de#parcours#des#conteneurs# chaque#itérateur#définit#sa#propre#stratégie#de#parcours# typiquement#un#pointeur#sur#un#élément#du#conteneur# doit#connaître#l implémentaton#de#son#conteneur# défini#comme#une#classe#imbriquée#dans#le#conteneur# class Conteneur public: class Iterateur ; ; Les#itérateurs# 4#types#d itérateur#par#conteneur# conteneur::iterator# conteneur::const_iterator# conteneur::reverse_iterator# conteneur::const_reverse_iterator# Balises#fournies#par#le#conteneur# rend() 1 2 n-1 n rbegin() possibilité#d avoir#plusieurs#itérateurs#en#même#temps# incompatbilité#des#itérateurs#de#conteneurs#différents# 23 begin() end() parcours#premier# #dernier#:#begin(),#end()# parcours#dernier# #premier#:#rbegin(),#rend()# 24
7 Les#itérateurs# FoncTonnalités# FNC# opérateurs#de#comparaison#!=#et#== opérateur#de#déréférencement#* opérateur#d'incrémentaton#(pré#et#post)#++ Les#itérateurs# UTlisaTon# parcours#d un#conteneur# conteneur c; conteneur::iterator it; for (it = c.begin(); it!= c.end(); ++it) do_something(*it); valeur#de#retour#de#find() permet#une#opératon#immédiate#sur#l objet# complexité#de#l accès#suivant#:#o(1)# conteneur c; conteneur::iterator it = find(c.begin(), c.end(), elt); do_something(*it); Conteneur##associaTf#(1)# Paire# Clé#/#valeur#:#map# Clé#/#Valeurs#:#mulTmap# Clés#comparable# Structure#d arbre#binaire# map<string, string> liste; first# second# liste.insert(make_pair("loic", "[email protected]")); liste["benny"] = "[email protected]"; // creation par recherche 27 Conteneur##associaTf#(2)# const string& first(const pair<string,string>& p) return p.first; int main(int, char**) map<string, string> liste; map<string, string>::const_iterator it = liste.begin(); while(it!=liste.end()) cout << it->first << " " << it->second << endl; ++it; transform(liste.begin(), liste.end(), ostream_iterator<string>(cout, " "), first); return 0; 28
8 Les#foncteurs# Constat# souhaite#souvent#appliquer#un#algorithme#sur#un#conteneur# soluton#naïve#:#le#placer#en#méthode#du#conteneur# limite#:#polluton#de#l API#du#conteneur# soluton#:#placer#les#algorithmes#dans#des#classes#dédiées# souhaite#parfois#avoir#plusieurs#versions#de#l algorithme# soluton#naïve#:#utliser#la#surcharge#(polymorphisme#faible)# limite#:#on#n est#pas#sûr#d appeler#la#bonne#version# soluton#:#utliser#l héritage# Les#foncteurs# Combinaison#de#deux#principes# surcharge#de#l opérateur#() arité#spécifiée#par#le#concepteur# syntaxe#:#type_retour A::operator() (paramètres) intérêt#:#un#objet#se#comporte#comme#une#foncton# note#:#peut#aussi#être#utlisé#pour#remplacer#l opérateur#[] l algorithme#souhaité#est#implémenté#dans#l opérateur#() les#arguments#de#l algorithme#sont#placés#en#argument# Foncteur# classe#qui#implémente#un#algorithme#sur#le#conteneur# une#sousaclasse#par#variante# accès#aux#éléments#du#conteneur#par#les#itérateurs# Les#foncteurs#:#comparateur# principe# pas#d état#interne# opérateur#()#prenant#les#deux#objets#à#comparer# class Comparator ; public: Comparator () bool operator() (const A & a1, const A & a2) const return (a1.val() < a2.val()); Comparator cmp; A a1, a2; std::cout << cmp(a1,a2) << std::endl; Les#foncteurs# ManipulaTon#globale#du#conteneur# trois#enttés# un#conteneur#pour#le#stockage#des#objets# des#itérateurs#pour#les#accès#aux#objets# des#algorithmes#pour#la#manipulaton#des#objets# fonctonnement#conjoint# les#algorithmes#opèrent#sur#le#conteneur#via#les#itérateurs# conteneur itérateurs algorithme 31 32
9 Les#foncteurs#:#générateur#de#nombres#pairs# Principe# état#interne#conservé#par#les#atributs# opérateur#()#sans#paramètres#pour#la#génératon#des# nombres# generate()# class GenPair ; protected: unsigned val; public: GenPair () val = 0; unsigned operator() (void) val += 2; return val; GenPair gen; vector<int> v(10); generate(v.begin(), v.end(), gp); copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); GenPair gen; std::cout << gen() << << gen() << std::endl; // affiche Pour#aller#plus#loin#:#la#bibliothèque#boost# Quelques#liens# # Super#mémento## htp:// #DocumentaTon#officielle#SGI# htp:// ReprésentaTon#UML#de#la#STL# htp://frog.isima.fr/bruno/retrieve.htm?archive=stl_containers## Sur#le#C++#en#général## htp:// # 35 36
INFO-F-105 Language de programmation I Séance VI
INFO-F-105 Language de programmation I Séance VI Jérôme Dossogne Année académique 2008 2009 Un grand merci à Yves Roggeman pour ses relectures et remarques des codes et commentaires qui ont contribuées
Pré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)
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
Programmation en C/C++
INSA de Lyon Département Génie Electrique Module IF1,IF3,IF4 Programmation en C/C++ Thomas Grenier Nicolas Ducros Tanneguy Redarce Lyon, le 3 mars 2015 2 / 63 Table des matières 1 Développement en C++
1. 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
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
COMPARAISONDESLANGAGESC, C++, JAVA ET
REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY
Programmation Par Objets
Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets
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
Introduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string
Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.
Le langage C++ (partie I)
Master Informatique des Organisations 1 ère et 2 ème années Spécialité ID/MIAGE-IF/MIAGE-SITN Le langage C++ (partie I) Maude Manouvrier Qu est ce que le C++? Rappels sur la gestion de la mémoire Premiers
Cours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU [email protected] Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Introduction à C++ et à wxwidgets
Introduction à C++ et à wxwidgets Master IGC 1ère année Année universitaire 2011/2012 Christophe Renaud Version 1.5 19/09/2011 Introduction Objectifs du cours Introduction au langage objet C++ Introduction
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
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--------------------------------------------------------------------------
Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier
Cours de C Petits secrets du C & programmation avancée Sébastien Paumier [email protected] Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression
Java 1.5 : principales nouveautés
Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés
Machines virtuelles fonctionnelles (suite) Compilation ML Java
Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles
Programmation 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
Suivant 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
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
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é)
Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail
Finalités Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Réalisé par sa modestie Arnaud de VILLEDON de NAIDE, le 9 mars 2013 Document sous licence GPL. Vous avez le droit d'en faire
Cours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - [email protected] Julien David (A101 - [email protected]) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
TP : 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
Arbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
Approche Contract First
Exemple HelpDesk Approche Contract First Développement d un premier web service en utilisant l approche contract first (ou WSDL First) Écriture du wsdl avant d écrire le code java Autre possibilité implementation
Introduction 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
Centre 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
Chapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
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
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
Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs
Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement
1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
4. Groupement d objets
Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux
Génération de code binaire pour application multimedia : une approche au vol
Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation
Cours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
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
La programmation orientée objet et le langage C++
Cours précédents La programmation orientée objet et le langage C++ Pablo Rauzy rauzy @ enst fr pablo.rauzy.name/teaching.html#epu-cpp EISE4 @ Polytech UPMC 22 octobre 2014 Cours 5 Nouveautés du C++ par
Langage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne [email protected]
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
LE LANGAGE C++ ENAC 1997 A. DANCEL
LE LANGAGE C++ ENAC 1997 A. DANCEL 1 - GENERALITES "L'homme se découvre quand il se mesure avec l'objet." Antoine de Saint-Exupéry, Terre des hommes 1.1 INTRODUCTION Ce cours est conçu pour permettre aux
Département Automatisation et Informatisation Année 2005-2006. Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers
Département Automatisation et Informatisation Année 2005-2006 Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers 1 Bertrand Cottenceau 1. Introduction du cours de C++...3
Programme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) 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
Introduction au pricing d option en finance
Introduction au pricing d option en finance Olivier Pironneau Cours d informatique Scientifique 1 Modélisation du prix d un actif financier Les actions, obligations et autres produits financiers cotés
Informatique III: Programmation en C++
Informatique III: Programmation en C++ Listes haînées Lundi 9 Janvier 2006 1 2 Introdution Les listes hainées permettent de stoker un nombre d objets qui n a pas besoin d être spéifié a priori. Rajouter
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
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig [email protected] - [email protected] Qu est-ce que la programmation? Programmer Ecrire un
Programmation avec des objets : Cours 7. Menu du jour
1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes
Programmation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
Introduction aux tests du logiciel
Introduction aux tests du logiciel F.X. Fornari [email protected] P. Manoury [email protected] 2011 Contents 1 Présentation du cours 3 2 Introduction aux tests logiciels
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles [email protected]
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles [email protected] Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
CHAPITRE V. Recherche et tri
Cherchez et vous trouverez,... car qui cherche trouve. Matthieu 7 7-8 et Luc 11 9-10 CHAPITRE V Recherche et tri Objectif. Comprendre les techniques de base pour organiser des données ordonnées. Ce chapitre
30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2
2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10
Cours de C. Allocation dynamique. Sébastien Paumier
Cours de C Allocation dynamique Sébastien Paumier [email protected] Illustrations provenant du site http://tux.crystalxp.net/ 1 Les pointeurs pointeur=adresse mémoire+type type* nom; nom pointe sur une
as 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
Depuis des années, les films de science fiction
Steffen Nissen Création d'un réseau de neurones c'est facile Ressources en ligne : Sur le CD vous trouverez les fi chiers codes décrits dans l'article ainsi que la bibliothèque. Depuis des années, les
Architecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Les 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
Partie 1 - Séquence 3 Original d une fonction
Partie - Séquence 3 Original d une fonction Lycée Victor Hugo - Besançon - STS 2 I. Généralités I. Généralités Définition Si F(p) = L [f(t)u (t)](p), alors on dit que f est l original de F. On note f(t)
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
Introduction. Les méthodes. Les méthodes. Identité et égalité. Identité et égalité. La copie d'objets. Identité et égalité.
Introduction La classe object Tous les objets Java héritent de la classe java.lang.object. Elle garantit que tout objet Java contient quelques méthodes fondamentales duplication comparaison Chaque classe
Certificat Big Data - Master MAthématiques
1 / 1 Certificat Big Data - Master MAthématiques Master 2 Auteur : Sylvain Lamprier UPMC Fouille de données et Medias Sociaux 2 / 1 Rich and big data: Millions d utilisateurs Millions de contenus Multimedia
Diagramme de déploiement
Table des matières Table des matières... Diagramme de déploiement... 2 Diagramme de cas d utilisation global... 3 Sous-système : Gestion des utilisateurs... 4 Diagramme de cas d utilisations... 4 Diagramme
IN 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
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
OS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah [email protected] RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Lier Erlang avec d autres langages de programmation
16 Lier Erlang avec d autres langages de programmation Les logiciels actuels, quelle que soit leur taille, sont souvent écrits dans plusieurs langages de programmation. Généralement, les pilotes de périphériques
Package Java.util Classe générique
Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object
STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module
François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,
La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)
Le langage PHP (2) Walid Belkhir Université de Provence [email protected] http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation
Composants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Les arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
Compilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
Programmation MacOSX / ios
Programmation MacOSX / ios Master Ingénierie Informatique 2011-2012 Jean-Baptiste.Yunè[email protected] deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à
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
M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013
Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :
Programmation Réseau. Sécurité Java. [email protected]. UFR Informatique 2012-2013. jeudi 4 avril 13
Programmation Réseau Sécurité Java [email protected] UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Le prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Cours Java Native Interface
Cours Java Native Interface 1999, Cnam Paris jean-michel Douin, [email protected] Version du 28 Mars 2002 http://lmi92.cnam.fr:8080/tp_cdi/{douin/ Notes de cours jni : de Java vers C/C++ et de C/C++ vers Java
IRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
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
Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
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
TD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Manuel d'installation
CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001
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
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
Communication par sockets
Rappel : le réseau vu de l!utilisateur (1) Communication par sockets Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia (demande un service)
SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
4 Exemples de problèmes MapReduce incrémentaux
4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank
Introduction aux systèmes temps réel. Iulian Ober IRIT [email protected]
Introduction aux systèmes temps réel Iulian Ober IRIT [email protected] Sommaire Généralités Caractéristiques récurrentes des STR Types de problèmes soulevées Programmation des STR Prog. concurrente
Développement Logiciel
Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles
Structure d un programme
Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé
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
