INF3105 Introduction au langage C++
|
|
|
- Aimé Alain
- il y a 9 ans
- Total affichages :
Transcription
1 INF3105 Introduction au langage C++ Éric Beaudry Université du Québec à Montréal (UQAM) 2016É Éric Beaudry (UQAM) INF3105 / Intro C É 1 / 67
2 Sommaire 1 Introduction 2 Les fondements du langage C++ 3 Fonctions 4 Entrées et sorties 5 Mémoire 6 Classes 7 Const 8 Opérateurs Éric Beaudry (UQAM) INF3105 / Intro C É 2 / 67
3 C++ dans INF3105 L objectif principal d INF3105 apprendre le langage C++. C++ est plutôt le langage que nous allons utiliser pour mettre en pratique les concepts fondamentaux de structures de données. Les séances en classe ne font pas un tour complet de C++. Nous nous limiterons aux bases du C++. Il faut compléter l apprentissage de C++ dans les labs et dans ses heures de travail personnel. Conseil : prenez une journée complète durant un week-end pour faire un tutoriel en ligne sur C++. Éric Beaudry (UQAM) INF3105 / Intro C É 3 / 67
4 Historique Origine du C++ «++» dans «C++» signifie un incrément au langage C. C++ C + Extension de programmation orientée objet. Développé par Bjarne Stroustrup au Bell labs d AT&T dans les années Standardisation / Normalisation Normalisé par ISO (Organisation mondiale de normalisation) depuis 1998 (C++98). C++03, C++11, C++14, C++17. Influence Le C++ est très utilisé en industrie et en recherche (efficacité). Le C++ a influencé d autres langages comme Java et C#. Éric Beaudry (UQAM) INF3105 / Intro C É 4 / 67
5 Caractéristiques et paradigmes Impératif. Procédural. Fortement typé. Orienté objet. Générique. Langage de haut niveau (mais plus bas que Java). Compilé en langage machine. Multiplateforme.... Éric Beaudry (UQAM) INF3105 / Intro C É 5 / 67
6 Exemple de fichier source C++ bienvenue.cpp #include <iostream> // La fonction main est le point d entree a l execution int main(){ std::cout << "Bienvenue au cours INF3105 en C++!" << std::endl; return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 6 / 67
7 Fichiers sources Fichiers d entête (.h,.hpp) Les fichiers d entête (header), ayant pour extension.h ou.hpp, contiennent généralement des déclarations. Fichiers sources (.cc,.cpp,.c++) Les fichiers sources ayant pour extension.cc,.cpp ou.c++, contiennent généralement les définitions (l implémentation). Ces fichiers peuvent aussi contenir des déclarations. Éric Beaudry (UQAM) INF3105 / Intro C É 7 / 67
8 Déclaration vs Définition Déclaration La compilation se fait en une seule passe (excluant l édition des liens). Tout doit être déclaré avant d être utilisé. Une déclaration ne fait que déclarer l existence de quelque chose lié à un identificateur (symbole). Exemples : variables, fonctions, classes, etc. Définition La définition est le code des functions, constructeurs, etc. Après la compilation, il y a une passe d édition des liens (linker). Tout symbole utilisé doit être défini à l édition des liens. Éric Beaudry (UQAM) INF3105 / Intro C É 8 / 67
9 Déclaration vs Définition : Exemple 1 helloworld.cpp #include <iostream> int main(int argc, char argv) { allo(); // Error: symbol allo undefined! return 0; // Declaration et definition d une fonction allo() void allo(){ std::cout << "Hello World!" << std::endl; Éric Beaudry (UQAM) INF3105 / Intro C É 9 / 67
10 Déclaration vs Définition : Exemple 2 helloworld.cpp #include <iostream> // Declaration et definition d une fonction allo() void allo(){ std::cout << "Hello World!" << std::endl; int main(int argc, char argv) { allo(); return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 10 / 67
11 Déclaration vs Définition : Exemple 3 helloworld.cpp #include <iostream> // Declaration de la fonction allo(). Aussi appelle prototype de fonction. void allo(); int main(int argc, char argv) { allo(); return 0; // Definition de la fonction allo() void allo(){ std::cout << "Hello World!" << std::endl; Éric Beaudry (UQAM) INF3105 / Intro C É 11 / 67
12 Exemple de fichiers sources allo.h void allo(); // Declaration allo.cpp #include <iostream> #include "allo.h" // optionnelle void allo(){ // Definition std::cout << "Hello World!" << std::endl; helloworld.cpp #include "allo.h" // inclure allo.cpp pourrait fonctionner, mais fortement deconseille int main(int argc, char argv) { allo(); return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 12 / 67
13 Organisation et compilation Sources Fichiers sources (.c,.cc,.cpp) Fichiers d'entête (.h,.hpp) Fichiers d'entête (.h,.hpp) Bibliothèques (ou librairies) Bibliothèques statiques (.a /.lib) Bibliothèques dynamiques (.so /.dll) Préprocesseur Fichiers intermédiaires Chargeur (exécution) Compilateur C++ Fichiers objets (.o /.obj) Éditeur de liens (Linker) Fichier exécutable ( /.exe) Éric Beaudry (UQAM) INF3105 / Intro C É 13 / 67
14 Quelques mots réservés Types void, bool, char, short int, int, long, float, double unsigned Boucles et instructions de contrôles if, else, while, do, for, switch... case Structures class, struct, union Éric Beaudry (UQAM) INF3105 / Intro C É 14 / 67
15 Types Type (mot clé) Description Taille (octets) Capacité bool Booléen 1 {false, true char Entier / caractère ASCII 1 { 128,...,127 unsigned char Entier / caractère ASCII 1 {0,..., 255 unsigned short Entier naturel 2 {0,..., unsigned short int short Entier 2 { 2 15,..., short int unsigned int Entier naturel 4 {0,..., int Entier 4 { 2 31,..., unsigned long Entier naturel 8 {0,..., long Entier 8 { 2 63,..., float Nombre réel 4 ± ±38 ( 7 chiffres) double Nombre réel 8 ± ±308 ( 15 chiffres) long double Nombre réel 8 ± ±308 ( 15 chiffres) Éric Beaudry (UQAM) INF3105 / Intro C É 15 / 67
16 Déclaration variables Une variable est une instance d un type de données. En C++, les variables sont considérées comme des objets. Chaque variable est nommée à l aide d un identificateur. L identificateur doit être unique dans sa portée. Exemple // Declaration d un entier (sans initialisation) int a; / Declaration de nombres reels (sans initialisation) / float f1, f2, f3; / Declaration de nombres avec initialisation explicite / int n1(12), n2=20; Éric Beaudry (UQAM) INF3105 / Intro C É 16 / 67
17 Initialisation des variables Constructeur : lors d une initialisation explicite. Constructeur sans argument : si aucune initialisation n est explicitée. Par défaut, les types de base ne sont pas initialisés. Avantage : Efficacité. Inconvénient : L exécution peut dépendre du contenu précédent en mémoire. Inconvénient : L exécution peut être pseudo non déterministe (comportement «aléatoire»). Problème : Source potentielle de bugs. Éric Beaudry (UQAM) INF3105 / Intro C É 17 / 67
18 Énoncés et expressions Comme dans la plupart des langages de programmation, le corps d une fonction en C++ est constitué d énoncés (statements). Sommairement, un énoncé peut être : une déclaration de variable(s) ; une expression d affectation ; une expression ; une instruction de contrôle ; un bloc d énoncés entre accolades {. À l exception d un bloc {, un énoncé se termine toujours par un point-virgule (;). Éric Beaudry (UQAM) INF3105 / Intro C É 18 / 67
19 Énoncés / Affectation Affectation // Declaration int a; // Affectation a = ; Éric Beaudry (UQAM) INF3105 / Intro C É 19 / 67
20 Expressions En C++, une expression peut être : un identificateur (variable) ou un nombre ; une expression arithmétique ou logique ; un appel de fonction ; une autre expression entre parenthèses ( ) ; un opérateur d affectation (=, +=, etc.) ; etc. Éric Beaudry (UQAM) INF3105 / Intro C É 20 / 67
21 Exemples d expressions ; (4+5) (6 8); a ; a = b = c = d; // est l equivalent de : c = d; b = c; a = b; Éric Beaudry (UQAM) INF3105 / Intro C É 21 / 67
22 Exemples d expressions a++; // a = a + 1; a+=10; // a = a + 10; a =2; // a = a 2; a/=2; // a = a / 2; b = a++; // b=a; a=a+1; // post increment b = ++a; // a=a+1; b=a; // pre increment b = a ; // b=a; a=a 1; // post decrement b = a; // a=a 1; b=a; // pre decrement Éric Beaudry (UQAM) INF3105 / Intro C É 22 / 67
23 Instructions de contrôle if, while, for, do...while, switch... case, break,... Éric Beaudry (UQAM) INF3105 / Intro C É 23 / 67
24 Tableaux int tableau1[5] = {0, 5, 10, 15, 20; int tableau2[10] = {0, 5, 10, 15, 20; int tableau3[] = {0, 5, 10, 15, 20; Éric Beaudry (UQAM) INF3105 / Intro C É 24 / 67
25 Non-vérification des indices des tableaux Essayez : #include <iostream> using namespace std; int main() { int tab1[5], tab2[5]; for(int i=0;i<5;i++){ tab1[i] = i; tab2[i] = i + 10; for(int i=0;i<16;i++) cout << " " << tab1[i]; cout << endl; for(int i=0;i<15;i++) tab1[i] = 99 i; for(int i=0;i<5;i++) cout << " " << tab1[i]; cout << endl; for(int i=0;i<5;i++) cout << " " << tab2[i]; cout << endl; return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 25 / 67
26 Non-vérification des indices des tableaux Essayez : #include <iostream> using namespace std; int main() { int tab1[5], tab2[5]; for(int i=0;i<5;i++){ tab1[i] = i; tab2[i] = i + 10; for(int i=0;i<16;i++) cout << " " << tab1[i]; cout << endl; for(int i=0;i<15;i++) tab1[i] = 99 i; for(int i=0;i<5;i++) cout << " " << tab1[i]; cout << endl; for(int i=0;i<5;i++) cout << " " << tab2[i]; cout << endl; return 0; Résultat (peut varier) Éric Beaudry (UQAM) INF3105 / Intro C É 25 / 67
27 Non-vérification des indices des tableaux Aller chercher un indice dans tableau se fait par une arithmétique de pointeurs. Exemple : tab2[10] est équivalent à *(tab2 + 10). Note : le +10 est implicitement multiplié par sizeof(int) à la compilation. La non-vérification des indices = Source potentielle de bugs. Éric Beaudry (UQAM) INF3105 / Intro C É 26 / 67
28 Pointeurs et références Pointeur = adresse mémoire. Pointeurs différents en Java. Référence = encapsulation d un pointeur utilisable comme un objet. Passage de paramètres par valeur ou par référence. Le passage par pointeur est un passage par valeur d une adresse pointant vers un objet donné. Éric Beaudry (UQAM) INF3105 / Intro C É 27 / 67
29 Pointeurs Dans la déclaration de variable, la porté d un symbole étoile * se limite à une variable. int n = 3; int ptr_n = &n; int tableau = new int[100]; //Declare le pointeur p1 et l objet o1 int p1, o1; //Declare les pointeurs p2, p3, p4 et l objet o2 int p2, p3, o2, p4; Éric Beaudry (UQAM) INF3105 / Intro C É 28 / 67
30 Déférencement de pointeurs Déférencer = aller chercher (le contenu de) la case mémoire. int n=0; int pointeur = &n; pointeur = 5; // effet : n=5 std::cout << "n=" << pointeur << std::endl; Éric Beaudry (UQAM) INF3105 / Intro C É 29 / 67
31 Arithmétique des pointeurs Code 1 (lisibilité) int tableau[1000]; int somme = 0; for(int i=0;i<1000;i++) somme += tableau[i]; Code 2 (possiblement plus efficace, car moins d opérations) int tableau[1000]; int somme = 0; int fin = tableau+1000; // pointe sur l element suivant le dernier element for(int i=tableau;i<fin;i++) somme += i; Éric Beaudry (UQAM) INF3105 / Intro C É 30 / 67
32 Références int n = 2; int& ref_n = n; n = 3; std::cout << "ref_n=" << ref_n << std::endl; Éric Beaudry (UQAM) INF3105 / Intro C É 31 / 67
33 Fonctions Similaire à Java et C. Éric Beaudry (UQAM) INF3105 / Intro C É 32 / 67
34 Passage de paramètres void test(int a, int b, int c, int& d, int & e){ a=11; // effet local b++; // change l adresse locale de b c=13; // change la valeur pointee par c d=14; // change la valeur referee par d e=c; // change la valeur du pointeur (adresse) pour celle de c. int main(){ int v1=1, v2=2, v3=3, v4=4, p5=&v1; test(v1, &v2, &v3, v4, p5); cout<<v1<< \t <<v2<< \t <<v3<< \t <<v4<< \t << p5<< \t <<endl; // affiche : return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 33 / 67
35 Entrée standard et sortie standard Pour avoir accès aux flux standards de la bibliothèque standard de C++, il faut inclure le fichier d entête iostream. Ce dernier définit les trois flux suivant : std::cin : flux d entrée depuis l entrée standard (stdin) ; std::cout : flux de sortie vers la sortie standard (stdout) ; std::cerr : flux de sortie vers la sortie d erreurs (stderr). Éric Beaudry (UQAM) INF3105 / Intro C É 34 / 67
36 Exemple demo01.cpp #include <iostream> using namespace std; int main(int argc, char argv){ int a, b; cout << "Entrez deux nombres:" << endl; cin >> a >> b; int somme = a + b; cout << "La somme est " << somme << endl; return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 35 / 67
37 demo02.cpp #include <fstream> int main(int argc, char argv){ int a, b; std::ifstream in("nombres.txt"); // Lire deux nombres depuis le fichier d entree nombres.txt in >> a >> b; int somme = a + b; std::ofstream out("somme.txt"); out << somme << endl; return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 36 / 67
38 Tas (heap) Pile d'exécution Éric Beaudry (UQAM) INF3105 / Intro C É 37 / 67
39 Allocation mémoire Automatique (fait automatiquement par le compilateur). Dynamique (allouée explicitement sur le tas (heap)). Toute mémoire allouée dynamiquement doit être libérée dynamiquement. Algorithmes d allocation/libération (dépendant du compilateur/système d exploitation). Éric Beaudry (UQAM) INF3105 / Intro C É 38 / 67
40 Allocation sur la pile short int f1(){ short int d = 4; short int e; return d; short int f2(short int a){ short int c = a + f1(); a += 2; return c; int main(){ short int x=3; short int y=5; y = f2(x); f1(); return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 39 / 67
41 main()???????????????????????????? f2()???????????? main() x y c a x y???????????????????????????? 00 03???????? f1() f2() main() e d c a x y???????????? 00 04???????????? 00 03???????? f2() main() c a x y???????????? 00 04???????? ???????????????????? 00 04???????? ???????? main() x f1() main() y e d x y???? Éric?? Beaudry?????? (UQAM) 00 04???????? INF ???? / Intro?? C++?? É 40 / 67
42 Allocation sur le tas (heap) struct A{ short int v1, v2; ; int main(){ char c = 0; short int tab = new short int[6] {0x00, 0x01, 0xc712, 0x03, 0x14, 0x3b05; A a1; a1.v1=0x00b5; a1.v2=0x0073; A a2 = new A(); a2 >v1=0; a2 >v2=2; A a3 = new A[3]; a3[1].v1=0x7fff; a3[1].v2=0x0020; // Sur la diapo suivante : etat de la memoire jusqu ici delete[] tab; delete a2; delete[] a3; return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 41 / 67
43 Allocation mémoire A B C D E F 0x0_???? c b x1_ 00 02???????? 7f ff 00 20???????????? 0x2_???????????????????????????????? 0x3_???????????????? b E 12 c tab a1.v1 a1.v2 a2 a3 Tas Pile a1 struct A{ short int v1, v2; ; int main(){ char c = 0; short int tab = new short int[6] {0x00, 0x01, 0xc712, 0x03, 0x14, 0x3b05; // supposons une machine 8 bits (taille des pointeurs = 8 bits) A a1; a1.v1=0x00b5; a1.v2=0x0073; A a2 = new A(); a2 >v1=0; a2 >v2=2; A a3 = new A[3]; a3[1].v1=0x7fff; a3[1].v2=0x0020; // Le schema ci haut montre l etat de la memoire jusqu ici. delete[] tab; delete a2; delete[] a3; return 0; Éric Beaudry (UQAM) INF3105 / Intro C É 42 / 67
44 Représentation abstraite de la mémoire Pile d'exécution c 0 tab a1.v1 00b5.v a2 a3 Tas (Heap) c b05 0 2? 7fff?? 20? Ici, on fait abstraction des adresses mémoire des blocs alloués sur le tas (heap). Éric Beaudry (UQAM) INF3105 / Intro C É 43 / 67
45 Classes en C++ Similaire à Java. En fait, c est Java qui est inspiré (et simplifié!) de C++. Constructeurs. Constructeur par défaut. Constructeur par copie. Destructeurs. Surcharge d opérateurs (+, -, +=, -=, =, ==, <, (), etc.). Éric Beaudry (UQAM) INF3105 / Intro C É 44 / 67
46 Classe Point class Point { public: double distance(const Point& p) const; private: double x, y; ; Éric Beaudry (UQAM) INF3105 / Intro C É 45 / 67
47 Constructeurs Un constructeur porte le nom de la classe et peut avoir zéro, un ou plusieurs arguments. Comme son nom l indique, le rôle d un constructeur est de construire (instancier) un objet. Un constructeur effectue dans l ordre : 1 appelle le constructeur de la ou des classes héritées ; 2 appelle le constructeur de chaque variable d instance ; 3 exécute le code dans le corps du constructeur. Éric Beaudry (UQAM) INF3105 / Intro C É 46 / 67
48 Destructeurs Un constructeur porte le nom de la classe et peut avoir zéro, un ou plusieurs arguments. Comme son nom l indique, le rôle d un destructeur est de détruire (désinstancier) un objet. Un destructeur effectue dans l ordre : 1 exécute le code dans le corps du destructeur ; 2 appelle le destructeur de chaque variable d instance ; 3 appelle le destructeur de la ou des classes héritées. Éric Beaudry (UQAM) INF3105 / Intro C É 47 / 67
49 Déclaration class Point { public: Point(); // constructeur sans argument Point(double x, double y);... ; Définition Point::Point(){ x = y = 0.0; Point::Point(double x_, double y_) : x(x_), y(y_) // le deux points (":") est pour l initialisation { Éric Beaudry (UQAM) INF3105 / Intro C É 48 / 67
50 Classe avec gestion de mémoire class Tableau10int{ public: Tableau10int(); ~Tableau10int(); private: int elements; ; Éric Beaudry (UQAM) INF3105 / Intro C É 49 / 67
51 Constructeur et Destructeur Tableau10int::Tableau10int() { elements = new int[10]; Tableau10int::~Tableau10int() { delete [] elements ; Éric Beaudry (UQAM) INF3105 / Intro C É 50 / 67
52 Héritage et Fonctions virtuelles class FormeGeometrique{ public: virtual double aire() = 0; ; class Carre : public FormeGeometrique{ public: Carre(double dimension) { m_dimension(dimension); virtual double aire() {return m_dimension m_dimension; protected: int m_dimension; ; class Rectange : public FormeGeometrique{ public: Rectange(double h, double l) { m_hauteur(h); m_largeur(l); virtual double aire() {return m_hauteur m_largeur; protected: int m_hauteur, m_largeur; ; Éric Beaudry (UQAM) INF3105 / Intro C É 51 / 67
53 Mot clé this Le pointeur this pointe sur l objet courant. C est un paramètre implicite. class A{ public: int f(int v=0); private: int a; ; int A::f(int v){ int t = this >a; // t=a this >a = v; // a=v return a; Éric Beaudry (UQAM) INF3105 / Intro C É 52 / 67
54 Mot clé const Le mot clé const est très important en C++. L objectif est d aider le programmeur à éviter des bogues. Permet de spécifier que quelque chose ne doit pas être modifié. Si le programme tente de modifier un objet const, le compilateur va générer une erreur. Important : const ne doit être utilisé comme un dispositif de sécurité. Le mécanisme de const est seulement une aide au programmeur. Éric Beaudry (UQAM) INF3105 / Intro C É 53 / 67
55 Contexte d utilisation de const Utile pour spécifier : une constante (ex. : const double pi= ;) que l objet référencé par une référence doit être constant (ex. : const Point& rp = p;) que l objet pointé par un pointeur ne doit pas être modifié (ex. : const Point* rp = &p;) Très utilisé dans le passage de paramètres. Éric Beaudry (UQAM) INF3105 / Intro C É 54 / 67
56 Exemple double Point::distance(Point& p2){ p2.x = x; y =p2.y; return sqrt(p2.x p2.x + y y); int main(){ Point p1 =..., p2 =...; double d = p1.distance(p2); // p1 et p2 ont ete modifies par Point::distance(...). Éric Beaudry (UQAM) INF3105 / Intro C É 55 / 67
57 Exemple double Point::distance(const Point& p2) const{ p2.x = x; // genere une erreur car p2 est const y =p2.y; // genere une erreur car this est const return sqrt(p2.x p2.x + y y); int main(){ Point p1 =..., p2 =...; double d = p1.distance(p2); Éric Beaudry (UQAM) INF3105 / Intro C É 56 / 67
58 Exemple double Point::distance(const Point& p2) const{ double dx = p2.x x; // OK double dy = p2.y y; // OK return sqrt(dx dx + dy dy); int main(){ Point p1 =..., p2 =...; double d = p1.distance(p2); Éric Beaudry (UQAM) INF3105 / Intro C É 57 / 67
59 Opérateurs Symboles : +, -, *, /,!, +=, -=, ˆ, <<, >>, (), etc. Les opérateurs peuvent être appelés de façon «naturelle». Exemple : au lieu d écrire int a = plus(b,c);, on écrit tout simplement int a=b+c;. Exemple : au lieu d écrire int a = divise(plus(b,c),2);, on écrit tout simplement int a=(b+c)/2;. Nous pouvons faire la même chose avec nos propres types de données. Vecteur a(10,5), b(5,10); Vecteur c=a+b; au lieu de c=plus(a,b);. Éric Beaudry (UQAM) INF3105 / Intro C É 58 / 67
60 Surcharge d opérateurs Les opérateurs sont des fonctions avec le mot clé operator comme préfixe. Différence : appel plus naturel qu un appel de fonction. vecteur.h class Vecteur { public: Vecteur(double vx_=0, double vy_=0):vx(vx_),vy(vy_){ Vecteur& operator += (const Vecteur& v); Vecteur operator + (const Vecteur& v) const; private: double vx, vy; ; Éric Beaudry (UQAM) INF3105 / Intro C É 59 / 67
61 Surcharge d opérateurs vecteur.cpp #include "vecteur.h" Vecteur& Vecteur::operator += (const Vecteur& autre) { vx+=autre.vx; vy+=autre.vy; return this; Vecteur Vecteur::operator + (const Vecteur& autre) const{ return Vecteur(vx+autre.vx, vy+autre.vy); Éric Beaudry (UQAM) INF3105 / Intro C É 60 / 67
62 Opérateurs << et >> pour les E/S point.h class Point{ private: double x, y; friend std::istream& operator >> (std::istream& is, Point& p); friend std::ostream& operator << (std::ostream& os, const Point& p); ; Éric Beaudry (UQAM) INF3105 / Intro C É 61 / 67
63 Opérateurs << et >> pour les E/S point.cpp std::istream& operator >> (std::istream& is, Point& p){ char parouvr, vir, parferm; is >> parouvr >> p.x >> vir >> p.y >> parferm; assert(parouvr== ( && vir==, && parferm== ) ); return is; std::ostream& operator << (std::ostream& os, const Point& p){ os << "(" << p.x << "," << p.y << ")"; return os; Éric Beaudry (UQAM) INF3105 / Intro C É 62 / 67
64 Exercice d abstraction Un type d objet doit savoir comment se lire et s écrire... Mais doit faire abstraction des types des objets qui le composent. class Immeuble { public: private: string nom; Point position; double hauteur; int nbclients; ; friend std::istream& operator >> (std::istream& is, Immeuble& im); Éric Beaudry (UQAM) INF3105 / Intro C É 63 / 67
65 Mauvaise approche... std::istream& operator >> (std::istream& is, Immeuble& im){ is >> im.nom; // Debut mauvais code char parouvr, vir, parferm; is >> parouvr >> im.position.x >> vir >> im.position.y >> parferm; assert(parouvr== ( && vir==, && parferm== ) ); // Fin mauvais code is >> im.hauteur; is >> im.nbclients; return is; ; C est une mauvaise idée d aller lire directement le point. Il faut traiter un point de façon abstraite. Éric Beaudry (UQAM) INF3105 / Intro C É 64 / 67
66 Bonne approche... std::istream& operator >> (std::istream& is, Immeuble& im){ is >> im.nom; is >> im.position; // Appel operateur >> pour Point is >> im.hauteur; is >> im.nbclients; return is; ; Éric Beaudry (UQAM) INF3105 / Intro C É 65 / 67
67 Chaîne d appels à >> Version en plusieurs énoncés istream& operator>>(istream& is, Immeuble& im) { is >> im.nom; is >> im.position; is >> im.hauteur; is >> im.nbclients; return is; ; Version en un seul énoncé istream& operator>>(istream& is, Immeuble& im) { is >> im.nom >> im.position >> im.hauteur >> im.nbclients; return is; ; Éric Beaudry (UQAM) INF3105 / Intro C É 66 / 67
68 Chaîne d appels à >> Pourquoi return is;? Version en un seul énoncé istream& operator>>(istream& is, Immeuble& im){ is >> im.nom >> im.position >> im.hauteur >> im.nbclients; return is; ; Équivalence d appels istream& operator>>(istream& is, Immeuble& im){ operator>>( operator>>( operator>>( operator>>(is, im.nom), im.position), im.hauteur), im.nbclients); return is; ; Éric Beaudry (UQAM) INF3105 / Intro C É 67 / 67
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
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
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
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
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,
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
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
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
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
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
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
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++.
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
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
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
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
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é)
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
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.............................
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
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
Introduction à l algorithmique et à la programmation M1102 CM n 3
Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY [email protected] IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d
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
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
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--------------------------------------------------------------------------
Introduction à l héritage en C++
Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay [email protected] 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition
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
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
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
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
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
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
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]
Programmation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
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
UE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski [email protected]
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski [email protected] Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
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
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/
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
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
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
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
Langage C. Patrick Corde. [email protected]. 22 juin 2015. Patrick Corde ( [email protected] ) Langage C 22 juin 2015 1 / 289
Langage C Patrick Corde [email protected] 22 juin 2015 Patrick Corde ( [email protected] ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts
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
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
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
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
Notions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
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
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
Conventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert [email protected] Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
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.
Chapitre 10 Arithmétique réelle
Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013
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
TP, première séquence d exercices.
TP, première séquence d exercices. Benoît Valiron [email protected] 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la
Génie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
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
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
INITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
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
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.
LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. [email protected] www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour [email protected] www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
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
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)
Programmation Classique en langage C
DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric
Avertissement : Ce cours suppose la connaissance et la maîtrise du langage C CONTENU DU COURS BIBLIOGRAPHIE
Enseignement : GI 62 - C++ - Programmation orienté objet (C++) Objectif : Ce module se situe dans la continuité des modules (ii12) et UEL RAN Informatique et permet d'acquérir les bases de la modélisation
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...
Chap 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
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
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
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
Initiation. à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,
SUPPORT 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
Programmation C. J.-F. Lalande. 15 novembre 2012
Programmation C J.-F. Lalande novembre 0 Ce cours est mis à disposition par Jean-François Lalande selon les termes de la licence Creative Commons Attribution - Pas d Utilisation Commerciale - Partage à
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)
Principes des langages de programmation INF 321. Eric Goubault
Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage
Programmation en langage C
Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex [email protected] http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des
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
Introduction au C++ et à la programmation objet
Introduction au C++ et à la programmation objet Version 1.12b (Mars 2013) par Emmanuel Courcelle [email protected] 1 Cours C++ - Emmanuel Courcelle / CUTIS / Formation permanente du C.N.R.S.
Java Licence Professionnelle CISII, 2009-2010
Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd [email protected] Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :
Programmation stochastique
Programmation stochastique (Partie 1) IFT-6512 Hiver 2008 Présentation succinte COIN-OR? COmputational INfrastructure for Operations Research. Préalablement, COIN-OR tenait pour Common Optimization INterface
Objets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
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
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
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
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
Aide mémoire UML & Java 1ère partie : Introduction. [email protected]
Aide mémoire UML & Java 1ère partie : Introduction [email protected] 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................
GOL502 Industries de services
GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation
Rappels Entrées -Sorties
Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C [email protected] ibrahimguelzim.atspace.co.uk
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.
Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une
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
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
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 [email protected] 2 Programmation Impérative
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
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
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
