C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Programmation Orienté Objet en C++
Rappels C.
C++ 6ème cours Patrick Reuter maître de conférences
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Paramètres et pointeurs
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
8. Les tableaux P. Costamagna – ISEN N1.
Principes de programmation (suite)
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
CPI/BTS 2 Programmation Web Introduction au PHP
Initiation à la programmation et algorithmique
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Introduction à la programmation (Java)
Langage Oriente Objet Cours 2.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-2000
Le langage Javascript pour le web
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Standard Template Library
C++ : variables Déclaration de variables
LANGAGE C LP A2I IUT St DIE
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Plan cours La notion de pointeur et d’adresse mémoire.
L’essentiel du langage C
Animateur : Med HAIJOUBI
2.1 - Historique Chapitre 2 : Introduction au langage C++
Le langage C Rappel Pointeurs & Allocation de mémoire.
4 Introduction des objets. Les chaînes et tableaux
La notion de type revisitée en POO
et quelques rappels sur certains éléments du langage C
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Cours n° 1 Présentation du langage C++
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Les types composés Les enregistrements.
ISBN Chapitre 10 L'implémentation des sous- programmes.
Cours LCS N°4 Présenté par Mr: LALLALI
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
8PRO107 Éléments de programmation Les adresses et les pointeurs.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
PRO-1027 Programmation Scientifique en C
Algorithmique Tableaux de données
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Transcription de la présentation:

C++ BY AURÉLIEN MODULO MARION

PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++

BASES DE C++ Introduction Les outils nécessaires Les variables Les structures de contrôle Les fonctions Les pointeurs Exercices

INTRODUCTION C++ : langage de programmation impératif, orienté objet et générique Auteur : Bjarne Stroustrup Langage libre avec de multiples implémentations sur quasiment tous les systèmes

INTRODUCTION : UTILISATION Langage relativement haut niveau tout en étant extrêmement rapide. Utilisé dans tout ce qui nécessite de hautes performances : Finance Jeux Systèmes embarqués Système d’exploitation Télécoms...

LES OUTILS NÉCESSAIRES Le strict nécessaire : un compilateur et un éditeur de texte Conseillé : un IDE Ex : Code::Blocks (Linux, Mac, Windows), Visual Studio (Windows), Xcode (Mac) Disponibles sur : logiciels.via.ecp.fr

LES VARIABLES  une partie de la mémoire utilisée pour stocker une valeur. En C++, elles ont un type explicite. Déclaration : type variable; Attention : Pas de valeur par défaut pour les variables. Chaque instruction se termine par un ;

LES VARIABLES : TYPES Les différents types possibles sont : Caractères : char Chaines de caractère : string Entiers : short int long (unsigned) Nombres à virgules : float double Booléens : bool (pas de type) : void Tous ceux que vous créez vous-même

LES VARIABLES : ARITHMÉTIQUE // assignation int a = 5; // opérations de base // +, -, *, /, % int c = a % 3; // assignation et opération // +=, -=, *=, /=, %= c *= 3; // incrémenter ++c; //décrémenter --c; NomAdresseValeur a0xF5E45 c0x12B36 NomAdresseValeur a0xF5E45 c0x12B32 NomAdresseValeur a0xF5E45 c0x12B36

LES VARIABLES : DIVISION Attention : division entière pour les types entiers ( int ) et division réelle pour les types à virgule ( double ). double a = 5; double b = a/2; // 2.5 int i = 5; int j = i/2; // 2 // MAIS int k = a/2; // 2 NomAdresseValeur a0xF5E45 b0xC4892,5 i0x12512 j0xBB252 k0x12B32

LES VARIABLES : BOOLÉENS bool a = true; bool b = false; a && b; // false a || b; // true ! a; // false Attention : && (resp. ||) sont court-circuitants. Si le premier terme est false (resp. true ), le deuxième terme n’est pas évalué.

LES VARIABLES : CONDITIONS int a = 5; a > 5; // false a <= 5; // true a == 4; // false a != 4; // true Attention : lors de la comparaison de variables qui n’ont pas le même type lors de la comparaison de double avec == de ne pas confondre assignation ( = ) et test d’égalité ( == )

LES VARIABLES : AFFICHAGE Il faut écrire #include en haut du fichier de code. Ensuite, on peut utiliser : int a = 5; std::cout << "a = " << a << std::endl; // affichera : a = 5 Ceci fonctionne pour tous les types vus jusqu’à présent.

LES VARIABLES : SAISIE Il faut écrire #include en haut du fichier de code. Ensuite, on peut utiliser : int a; std::cin >> a; // demandera un entier à l’utilisateur Ceci fonctionne pour les types numériques vus jusqu’à présent.

LES STRUCTURES DE CONTRÔLE

LES STRUCTURES DE CONTRÔLE : IF if( condition ) { // code } else if( condition2 ) { // code } else { // code } if( condition ) // une seule instruction Comme il n’y a pas de else, rien ne se produira si la condition est false.

LES STRUCTURES DE CONTRÔLE : WHILE while( condition ) { // code } while( true ) // une seule instruction Attention aux boucles infinies.

LES STRUCTURES DE CONTRÔLE : FOR for( init; condition; increment ) { // code } for( int i = 0; i < 5; ++i ) // une seule instruction

LES FONCTIONS Permettent de créer des blocs de code réutilisables au comportement paramétrable. typeRetour nom(type1 param1, type2 param2) { // code return variable; } Autant de paramètres qu’on veut Une seule variable peut-être renvoyée. Si pas de variable renvoyée, utiliser : void

LES FONCTIONS : EXEMPLES double pi() { return ; } void afficherNombre(int num) { std::cout << num << std::endl; } int addition(int a, int b) { return a + b; }

LES FONCTIONS : UTILISATION double a = pi(); if(a > addition(2,1)) afficherNombre(a); On peut les utiliser partout où on pourrait utiliser la variable qu’elles renvoient. Il suffit d’écrire son nom et de lui fournir ses paramètres si nécessaire.

LES FONCTIONS : DÉCLARATION Une fonction ne peut appeler que des fonctions déclarées au dessus d’elle. Pour éviter cela, on pré- déclare toutes nos fonctions : double pi(); void afficherNombre(int num); int addition(int a, int b); Ces pré-déclarations sont écrites dans les fichiers.h. Ils peuvent ensuite être inclus partout où on veut utiliser les fonctions avec : # include "monFichier.h"

PREMIER EXEMPLE DE PROGRAMME // dans le fichier main.cpp #include int main() { for(int i = 1; i < 100; i++) if( i%2 ) std::cout << i << std::endl; return 0; } Fonction main : point d’entrée de tout programme en C++ Renvoie un code d’erreur (0 si pas d’erreur).

LA COMPILATION

LES POINTEURS  une variable qui contient l’adresse mémoire d’une autre variable int a = 5: int b = 0; int* ptr = &a; *ptr = 6; // a = 6 NomAdresseValeur a0xF5E45 b0x93B60 ptr0x45870xF5E4 NomAdresseValeur a0xF5E46 b0x93B60 ptr0x45870xF5E4

LES POINTEURS // grosse erreur! ptr = 6; // pointe maintenant vers b ptr = &b; // b = 7 *ptr = 7; NomAdresseValeur a0xF5E45 b0x93B60 ptr0x45876 NomAdresseValeur a0xF5E46 b0x93B67 ptr0x45870x93B6

LES POINTEURS : REMARQUES déclare un pointeur sur type type* déclare un pointeur sur type* type** permet de récupérer l’adresse de la variable var &var permet d’accéder à la variable pointée par ptr (= déréférencer le pointeur ptr ) *ptr accéder à une adresse qui n’appartient pas au programme erreur de segmentation

LES POINTEURS : TABLEAUX int tab[3] = { 0, 2, 5}; tab[0] = 2; // tab[5] = 15; // erreur! Ensemble d’éléments du même type Numérotés de 0 à (taille - 1). La taille du tableau doit être connue à la compilation. NomAdresseValeur tab0xF5E40 0xF5E52 0xF5E65

LES POINTEURS : ALLOCATION DYNAMIQUE int* a = new int(5); // a initialisé à 5 // code qui utilise le pointeur a delete a; a = nullptr; int* tab = new int[n]; // code qui utilise le tableau tab delete[] tab; tab = nullptr;

LES RÉFÉRENCES  une variable qui se comporte comme un alias pour une autre variable (nom supplémentaire pour la variable) int a = 5: int b = 0; int& ref = a; ref = 6; // a = 6 ref = b; // a = 0 // ref est toujours attaché à a NomAdresseValeur ref = a0xF5E45 b0x93B60

LES FONCTIONS : PASSAGE PAR VALEUR void doubler(int a) { a *= 2; } int main() { int a = 5; doubler(a); // a = 5 return 0; }

LES FONCTIONS : PASSAGE PAR POINTEUR void doubler(int* a) { *a *= 2; } int main() { int a = 5; doubler(&a); // a = 10 return 0; }

LES FONCTIONS : PASSAGE PAR RÉFÉRENCE void doubler(int& a) { a *= 2; } int main() { int a = 5; doubler(a); // a = 10 return 0; }

ELÉMENTS NON MENTIONNÉS Structures de contrôle : switch, do while.Surcharge de fonctionsParamètres optionnels d’une fonctionParamètres de la fonction mainLe mot-clé constLes macros : define

DES QUESTIONS ? UNE ADRESSE :

EXERCICES 1. Installer un IDE C Ecrire un programme qui affiche et somme les 150 premiers nombres multiples de Ecrire un programme qui demande 5 nombres à l’utilisateur, les stocke dans un tableau, les trie et les affiche. 4. Idem que l’exercice 3, en demandant à l’utilisateur un nombre n, et ensuite, en demandant n nombres au lieu de 5.