1 Pointeurs, références, alias et tableaux

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "1 Pointeurs, références, alias et tableaux"

Transcription

1 1 Pointeurs, références, alias et tableaux 1

2 1.1 Définitions Un pointeur est une variable contenant l'adresse d'un objet en mémoire. Un pointeur est déni par le couple (type, adresse) de l'objet pointé. déclaration : type *identificateur; exemple : p est un pointeur sur un entier, i.e. p contient l'adresse d'une case mémoire contenant un entier. int *p; Si p est un pointeur sur le type Type alors on accède à la valeur pointée par *p exemple float *p; *p=2.0; si x est une variable de type Type, alors &x est l'adresse de x, c'est donc un pointeur sur Type exemple float x; float *px; px = &x; si x est un float, alors float &xalias = x est une déclaration légale, xalias est un alias de x. exemple float x; float &y = x; // initialisation obligatoire 2

3 1.2 Pointeurs et tableaux en C++, pointeurs et tableaux sont très liés : int T[5] ; int *p ; Attention, l'indice d'un tableau à n élément varie de 0 à n-1 l'instruction p = T ; est autorisée car T est aussi un pointeur d'entiers ; équivaut à p = &T[0]; p pointe sur le premier élément de T p+i pointe sur le ième élément suivant; *(p+i) est égal à T[i]. Le nom d'un tableau est un pointeur constant sur le premier élément du tableau. Allocation dynamique d'un tableau de n éléments de type Type : Type *a; a = new Type[n]; delete[]a; //allocation memoire //liberation memoire si l'allocation réussit, new retourne un pointeur sur le premier élément de la mémoire allouée, sinon il retourne NULL. Le programmeur qui alloue de la mémoire dynamiquement a en charge la libération de mémoire qui n'est en aucun cas automatique au cours du déroulement du programme. 3

4 1.3 Chaînes de caractères une chaîne de caractères est un tableau de caractères Certaines fonctions sont disponibles. Ces fonctions sur chaînes de caractères sont déclarées dans <string.h>. Sous UNIX, une aide en ligne est disponible via la commande man string. La n d'une chaîne de caractère est signalée par un caractère NULL (ou '\0'), inséré par le compilateur. on accède aux constantes de type chaîne de caractères au moyen d'un pointeur de type char, pointant sur le premier élément de la chaîne, par exemple char *s; lors de l'instruction char * s=ceci est un message; la chaîne n'est pas recopiée dans s mais s contient l'adresse du premier élément de cette chaîne. Les fonctions les plus utiles : char *strcpy(char *dest, const char *src); recopie src dans dest (la place mémoire de dest doit avoir été réservée) char *strcat(char *dest, const char *src); recopie src à la n de dest (la place mémoire de dest doit avoir été réservée) size_t strlen(const char *s); retourne la taille de la chaîne s La classe string permet une manipulation plus intuitive et ecace des chaines de caractères. Par exemple : # include <iostream> # include <string> using namespace std; int main(void) { string S("Puiseux"); cout << endl << S +" Pierre"<< flush; return 0; } 4

5 1.4 Tableaux multidimensionels, matrices déclaration : type identificateur [dim1][dim2]; exemple : const int MAXDIM=100 ; long double a[maxdim][maxdim] ; les éléments sont rangés par lignes : a[i] est (l'adresse du premier élément de) la ligne numéro i *a[i] est le premier élément de la ligne numéro i. a[i]+j est l'adresse du jème élément de la ligne i a[i][j] est l'élément ième ligne, jème colonne *a[i]+j est l'élément ième ligne, jème colonne aussi Allocation dynamique d'une matrice de taille n*n : double **a; //allocation a = new (double *)[n]; for (i=0;i<n;i++) a[i] = new double[n]; //liberation for (i=0;i<n;i++) delete []a[i]; delete[]a; si l'allocation réussit, new retourne un pointeur sur le premier élément de la mémoire allouée, sinon il retourne NULL 5

6 T[i] T[i][j] 1.5 Remarques sur les pointeurs le C++ n'eectue pas de vérication sur les indices de tableau. C'est au programmeur de prendre ses précautions. a[i] est évalué par le C++ comme *(a+i) dans le cas de transmission de tableau en paramètre d'une fonction, seule l'adresse du premier élément est transmise. La valeur NULL (en fait 0) pour un pointeur est caractéristique d'un pointeur mal initialisé ou mal déclaré. L'incrémentation d'un pointeur p++ (ou p--) a pour eet d'incrémenter p de sizeof(p) octets. Int T[10][5][2]; est un tableau à 10 éléments, chaque élément étant une matrice à 5 lignes, 2 colonnes. désigne donc une matrice (deux dimensions) ; désigne un tableau à une dimension (ou vecteur) d'entiers ; T[i][j][k] désigne un entier. 6

7 1.6 Pointeurs de fonctions une fonction n'est pas une variable. Néanmoins, elle a une adresse en mémoire. On peut donc dénir une variable qui pointe sur une fonction. Déclaration : double (*f) (int,float); int (*g) (); f est un pointeur sur une fonction prenant un int et un float en arguments et dont le résultat est de type double. g est un pointeur sur une fonction sans arguments dont le résultat est de type int. A distinguer de double *f(); qui désigne une fonction renvoyant un pointeur sur double. Peut s'utiliser lorsque la fonction à utiliser peut varier, par exemple pour une méthode de Newton générique (1d), on dénira par exemple : double Newton(double(*f)(double);int itmax); { /*ici, on peut utiliser la fonction f comme on le désire*/ }; //appel : double solution ; double f(double x) ; solution = Newton(f,ITMAX); 7

8 1.7 Allocation dynamique de mémoire Opérateurs new et delete exemple : voir ([1.2] et [1.4]). A privilégier par rapport à la solution suivante (malloc). On peut trouver aussi des fonctions de la famille malloc (langage C): void *malloc(size_t size) ; aloue un bloc de mémoire de size octets dans la zone de mémoire appelée tas (heap). NB : l'instruction calloc(n,s) est équivalente à malloc(n*s). Si l'allocation réussit, malloc renvoie un pointeur sur le bloc nouvellement alloué. Si la place disponible est insusante ou si size vaut 0, malloc renvoie NULL. Le contenu du bloc n'est pas modié. Si l'argument size vaut 0, alors malloc renvoie NULL. exemple : allocation mémoire pour une matrice n*n (produit un résultat analogue à [1.2] et [1.4]): /*tableau de n pointeurs 0-->n-1 */ if ((a = (double * *) malloc (n*sizeof(double *))) == NULL) FatalWarning ("Memoire insuffisante \n"); for (i=0; i<n; i++) if ( (a[i] = (double *) malloc(n*sizeof(double)))== NULL) FatalWarning ("Memoire insuffisante \n"); /* Après utilisation, libérer la mémoire par free */ for (i=0; i<n; i++) free(a[i]); free(a); 8

Cours Langage C/C++ Mémoire et allocation dynamique

Cours Langage C/C++ Mémoire et allocation dynamique Cours Langage C/C++ Mémoire et allocation dynamique Thierry Vaira BTS IRIS Avignon tvaira@free.fr v0.1 La pile et le tas La mémoire La mémoire dans un ordinateur est une succession d octets (soit 8 bits),

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

Plus en détail

Cours Langage C. Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique

Cours Langage C. Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique Cours Langage C Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique I Passage de paramètres à la fonction main Tout exécutable C doit comporter une fonction main dont le

Plus en détail

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

Allocation dynamique en c++

Allocation dynamique en c++ Allocation dynamique en c++ *tableau; tableau * tableau = tableau = new [ no_max ]; tableau = new * [ no_max ] tableau[i] = new int[ 5 ]; tableau tableau[i] = new int[5]; * tableau[0] int int int int int

Plus en détail

L1 Informatique Université Paris 8-2010-2011 Programmation Impérative I Rim Chaabane rchaabane@ai.univ-paris8.fr - Cours 6 - Les pointeurs

L1 Informatique Université Paris 8-2010-2011 Programmation Impérative I Rim Chaabane rchaabane@ai.univ-paris8.fr - Cours 6 - Les pointeurs Les pointeurs Le langage C permet de manipuler des adresses d objets ou de fonctions par le biais de pointeurs. Pour ce faire on peut désigner des variables dites de type pointeur, destinées à contenir

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage I. Stockage de l information en C Ce chapitre rappelle brièvement et complète certaines notions de base vues en première année

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

renforcer le contrôle de type :

renforcer le contrôle de type : renforcer le contrôle de type : définitions, prototypes de fonctions surcharge références conversions de void * préférer le compilateur au préprocesseur considérer les entrées/sorties opérations abstraites

Plus en détail

3 Lien entre pointeurs et tableaux.

3 Lien entre pointeurs et tableaux. programme sont dit dynamiques. On se limite ici aux tableaux statiques à une seule dimension, analogue aux vecteurs manipulés en mathématiques. Ils se déclarent sous la forme : type_d_élément variable_tableau[taille];

Plus en détail

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

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

Plus en détail

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de:

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: C, seconde séance le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: false, c est 0 ( \0 aussi) test d égalité: == pour printf: %d entier, %f flottant, %c caractère,

Plus en détail

Comment bien déclarer et utiliser en C un tableau de dimension 2 (matrice)

Comment bien déclarer et utiliser en C un tableau de dimension 2 (matrice) Comment bien déclarer et utiliser en C un tableau de dimension 2 (matrice) #include #include #define NDIM1 3 #define NDIM2 5 // pour printf, puts, putchar // pour malloc, free // par

Plus en détail

Tableaux à deux dimensions

Tableaux à deux dimensions Cours 8 Tableaux à deux dimensions Un tableau à deux dimensions (tableau 2D) est un tableau contenant des lignes et des colonnes comme celui-ci : 4 22 55 2 5 2 4 4 2 24 2 12 Ce tableau à deux dimensions

Plus en détail

Cours C++ Spécificités du C++ (hors POO) références, allocation dynamique de mémoire...

Cours C++ Spécificités du C++ (hors POO) références, allocation dynamique de mémoire... Cours C++ Spécificités du C++ (hors POO) références, allocation dynamique de mémoire... Spécifités notables du C++ Référence Allocation dynamique de mémoire : opérateur new et delete Librairie standard

Plus en détail

Tableaux dynamiques avec vector

Tableaux dynamiques avec vector Tableaux dynamiques avec vector Tableaux statiques Les tableaux que nous avons vus jusqu'ici sont des tableaux statiques: int tab[3]; Cette forme de tableaux vient du langage C, et est encore très utilisée.

Plus en détail

Langage de programmation C++

Langage de programmation C++ Langage de programmation C++ Mohamed Tounsi Institut Supérieur d'informatique et Mathématiques Monastir Janvier 2013 Mohamed Tounsi (ISIMM) Langage de programmation C++ Janvier 2013 1 / 14 La notion de

Plus en détail

Petit résumé pour IFT1166

Petit résumé pour IFT1166 Petit résumé pour IFT1166 C est un langage populaire (cours IFT 1810, IFT 1160). JAVA (IFT 1870, IFT 1170, IFT 1176) utilise surtout la syntaxe du C++. De plus, Java est un langage purement orienté objet.

Plus en détail

Manipulations 2 Types agrégés : les tableaux en C... 2 Conteneur : les tableaux en C++... 7 Synonyme de type... 9

Manipulations 2 Types agrégés : les tableaux en C... 2 Conteneur : les tableaux en C++... 7 Synonyme de type... 9 TP Développement n 4 2012 tv - v.1.0 Sommaire Manipulations 2 Types agrégés : les tableaux en C.................................. 2 Conteneur : les tableaux en C++..................................

Plus en détail

Objectifs. Pointeurs et tableaux. Arithmétique des pointeurs et sizeof. sizeof. Exemple : liste chaînées. Cast. Débordement de tampons

Objectifs. Pointeurs et tableaux. Arithmétique des pointeurs et sizeof. sizeof. Exemple : liste chaînées. Cast. Débordement de tampons du cours d aujourd hui Programmation «orientée système» LANGAGE C POINTEURS (5/5) des pointeurs Complément (et mise en garde) sur Exemple pratique : listes Forçage de type (casting) Laboratoire d Intelligence

Plus en détail

TP2 : instabilités numériques

TP2 : instabilités numériques TP2 : instabilités numériques Pensez à structurer l implémentation, à mettre des commentaires et à passer les arguments par référence en les protégeant (const) si besoin. On se propose de tester la méthode

Plus en détail

Programmation C++ Le langage impératif. Stéphane Vialette. 12 novembre 2012. LIGM, Université Paris-Est Marne-la-Vallée

Programmation C++ Le langage impératif. Stéphane Vialette. 12 novembre 2012. LIGM, Université Paris-Est Marne-la-Vallée Programmation C++ Le langage impératif Stéphane Vialette LIGM, Université Paris-Est Marne-la-Vallée 12 novembre 2012 Stéphane Vialette (LIGM UPEMLV) Programmation C++ 12 novembre 2012 1 / 67 C++ : chronologie

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot

IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot ESIEE 2011 2012 IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot PARTIE 1: LES FONCTIONS ET LES POINTEURS fichier fonctions.h #ifndef _FONCTION_H_ #define _FONCTION_H_ #include

Plus en détail

Structures de Données et Algorithmes

Structures de Données et Algorithmes Structures de Données et Algorithmes Révision: structures de base en C Nadi Tomeh nadi.tomeh@lipn.univ-paris13.fr Licence 2 Informatique Institut Galilée, Université Paris 13, Sorbonne Paris Cité 18 septembre

Plus en détail

Fiche n 12 : classes et objets (initiation au C++)

Fiche n 12 : classes et objets (initiation au C++) Fiche n 12 : classes et objets (initiation au C++) Nous entrons maintenant dans l'univers de la programmation objet et de C++. Une classe peut être vue comme une évolution d'une structure qui comporte

Plus en détail

Entrée et sortie standards (stdin,stdout et cin,cout)

Entrée et sortie standards (stdin,stdout et cin,cout) Chapitre 4 Entrée et sortie standards (stdin,stdout et cin,cout) Pour réaliser les opérations élémentaires d écriture sur l écran ou de lecture des informations du clavier, le C utilise un ensemble de

Plus en détail

Complément du cours Langage C

Complément du cours Langage C Complément du cours Langage C Licence Fondamentale SMI (semestre 3) Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2013/2014 2013/2014 Pr. Ben Mamoun 1 Chapitre 9 Types structures, unions

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

1 Notions de base 1.1 Structure d'un programme

1 Notions de base 1.1 Structure d'un programme 1 Notions de base 1.1 Structure d'un programme Le langage C++ contient le langage C : tout programme écrit en C à la norme ANSI doit pouvoir être compilé par un compilateur C++. C++ fait la diérence entre

Plus en détail

Travaux Pratiques d Informatique 1

Travaux Pratiques d Informatique 1 Faculté Polytechnique de Mons Service d Informatique Travaux Pratiques d Informatique 1 par Mohammed BENJELLOUN Avec la participation de : J-F Bauwens, Assistant S. Mahmoudi, Assistant E. Malengreau, Assistante

Plus en détail

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs)

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs) Année Universitaire 2006/2007 CHAPITRE 6 : Tableaux Définition Tableaux à une dimension (Vecteurs) Déclaration ; Mémorisation M ; Tableaux à plusieurs dimensions Déclaration Tableaux à deux dimensions

Plus en détail

Langage C notes de cours

Langage C notes de cours Langage C notes de cours K. El Omari IUT GTE, UPPA 1 Présentation générale 1.1 Introduction La programmation par le langage C (ainsi que par d autres langages dit compilés) est basée sur : 1. la rédaction

Plus en détail

Construction et destruction des objets de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets

Construction et destruction des objets de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets Construction et destruction des objets Durée de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets Initialisation des objets Constructeur par recopieinit

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

Plus en détail

Eléments de langage C++ Pierre Puiseux

Eléments de langage C++ Pierre Puiseux Eléments de langage C++ Université de Pau et des Pays de l'adour Pierre Puiseux Département de mathématiques 1 Contents 1 Historique 5 2 Notions de base 6 2.1 Structure d'un programme.............................

Plus en détail

Systèmes Informatiques TD 1: langage C entrées/sorties et la fonction main()

Systèmes Informatiques TD 1: langage C entrées/sorties et la fonction main() Systèmes Informatiques TD 1: langage C entrées/sorties et la fonction main() P. Bakowski bako@ieee.org Fonctions printf() et scanf() Les programmes en langages C ont besoin des fonctions qui permettent

Plus en détail

Les fonctions et les procédures en C

Les fonctions et les procédures en C Les fonctions et les procédures en C Séance 6 de l'ue «introduction à la programmation» Bruno Bouzy bruno.bouzy@parisdescartes.fr Fonctions et procédures Fonction, déclaration, définition, utilisation

Plus en détail

Objectifs. Pointeurs : rappels. Fonctions. Pointeurs : suite. Annexes. Jamila Sam. Objectifs. Pointeurs : rappels. Fonctions.

Objectifs. Pointeurs : rappels. Fonctions. Pointeurs : suite. Annexes. Jamila Sam. Objectifs. Pointeurs : rappels. Fonctions. du cours d aujourd hui suite suite Informatique II : Cours de programmation (C++), & Rappeler ce qu est un pointeur et aborder des exemples d utilisation typiques de ce concept : allocation dynamique,

Plus en détail

Fonctions et procédures. Procedures: déclaration et appel

Fonctions et procédures. Procedures: déclaration et appel Cours 5 : fonctions, procédures, passage des paramètres 1 Fonctions et procédures Idée : capitaliser sur le code déjà écrit pour introduire des nouvelles commandes et opérations. On souhaite donner un

Plus en détail

IFT1166 - INTRA. Directives: IFT1166 - Session Automne, Intra. Mohamed Lokbani. Prénom(s): Date:20 Octobre 1999

IFT1166 - INTRA. Directives: IFT1166 - Session Automne, Intra. Mohamed Lokbani. Prénom(s): Date:20 Octobre 1999 IFT1166 - Session Automne, Intra Mohamed Lokbani IFT1166 - INTRA Nom: Prénom(s): Signature: Code perm: Date:20 Octobre 1999 Durée: 2 heures (de 18h30: 20h:30) Local: 1360 Directives: - Il vous est permis

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Chapitre 9 Gestion de la mémoire Durant l exécution d un programme, les éléments manipulés par le programme sont stockés dans différents types de mémoire. La pile d exécution contient des éléments dont

Plus en détail

Pointeurs et tableaux

Pointeurs et tableaux Pointeurs et tableaux Pointeur Tout mot (octet) de la mémoire est identifié par un numéro unique : son adresse mémoire On peut donc identifier toute zone mémoire servant au stockage d une variable par

Plus en détail

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS 1. PRÉSENTATION. Le langage C a fait son apparition en 1972 pour le développement du système d exploitation Unix. Il est devenu un standard de la norme ANSI en 1983.

Plus en détail

Introduction au langage C++

Introduction au langage C++ Introduction au langage C++ D après les notes d introductives au C++ de Stéphane Menozzi http://www.proba.jussieu.fr/~menozzi/ Maxime Pallud IMACS/X-TEC Bat 404 Tel: 01 69 33 46 86 Mail: pallud@imacs.polytechnique.fr

Plus en détail

La mémoire. Polytech Paris-Sud Cycle ingénieur de la filière étudiant. Louis Mandel Université Paris-Sud 11 Louis.Mandel@lri.

La mémoire. Polytech Paris-Sud Cycle ingénieur de la filière étudiant. Louis Mandel Université Paris-Sud 11 Louis.Mandel@lri. La mémoire Polytech Paris-Sud Cycle ingénieur de la filière étudiant Louis Mandel Université Paris-Sud 11 Louis.Mandel@lri.fr année 2012/2013 Aspects matériels de la mémoire Types de mémoires Type Accès

Plus en détail

NFA032 Programmation objet avec Java

NFA032 Programmation objet avec Java NFA032 Programmation objet avec Java CNAM-Paris-Île-de-France Première session 2013 (sujet bis) Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet

Plus en détail

Sujet d examen 1. Pratique du C. Novembre 2009

Sujet d examen 1. Pratique du C. Novembre 2009 Durée 1 h 30 Documents autorisés Sujet d examen 1 Pratique du C Novembre 2009 Introduction Écrivez lisiblement et n hésitez pas à commenter votre code en langage C. Vous ne pouvez utiliser que les fonctions

Plus en détail

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

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

Plus en détail

Programmation : Exercices

Programmation : Exercices Programmation : Exercices IUT de Villetaneuse R&T 1 ère année Laure Petrucci 6 novembre 2007 1 Premiers programmes Exercice 1.1 : Machine à dessiner On souhaite écrire un programme pour afficher des dessins.

Plus en détail

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ING1025 : INFORMATIQUE EXAMEN INTRA Date Vendredi 10 octobre 2003 Heure De 8h30 à 10h20 Notes Ce questionnaire contient 4 questions sur

Plus en détail

Le langage C. Séance n 4

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

Plus en détail

Soutien Informatique

Soutien Informatique 1/51 Soutien Informatique Nicolas Castagné et François Portet PHELMA 2/51 Sommaire Allocation Mémoire Les types abstraits de données 3/51 Allocation dynamique de mémoire (stdlib.h,string.h) Réserver un

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

Le langage C++ Henri Garreta

Le langage C++ Henri Garreta Faculté des Sciences de Luminy Département d Informatique Le langage C++ Henri Garreta Table des matières 1 Eléments préalables 3 1.1 Placement des déclarations de variables................................

Plus en détail

Programmation I : Cours d introduction à la programmation Pointeurs

Programmation I : Cours d introduction à la programmation Pointeurs Programmation I : Cours d introduction à la programmation Pointeurs Laboratoire d Intelligence Artificielle Faculté I&C Programmation I Pointeurs 1 / 23 Rappel du calendrier Programmation I Pointeurs 2

Plus en détail

X. Juvigny. Septembre 2007

X. Juvigny. Septembre 2007 De C à C++ X Juvigny Septembre 2007 1 Introduction Outre les nouvelles possibilités en programmation orienté objet, le C++ offre de plus de nouvelles caractéristiques par rapport au langage C dont il est

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

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

Plus en détail

6. Lecture/écriture formatées et Fichiers. printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture

6. Lecture/écriture formatées et Fichiers. printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture 1 6. Lecture/écriture formatées et Fichiers printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture 2 Références Site du zèro : Programmer en C http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html

Plus en détail

420KEL Petite révision v. 1,65. Petite révision

420KEL Petite révision v. 1,65. Petite révision Petite révision Quelques petits exercices pour vous rafraîchir la mémoire et vous remettre en forme. Dans les exercices pour lesquels on vous demande de programmer, cherchez à produire un résultat à la

Plus en détail

INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008

INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008 INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008 Ce qu il faut rendre : A la fin du TP il faudra archiver et compresser l ensemble de votre travail (y compris le rapport avec vos noms) avec la commande

Plus en détail

Obert Hervé Stumpf Mathieu Licence 3 RIA. Réseaux & Protocoles. Client pair-à-pair. Projet L3 RIA 2005-2006 Sommaire.

Obert Hervé Stumpf Mathieu Licence 3 RIA. Réseaux & Protocoles. Client pair-à-pair. Projet L3 RIA 2005-2006 Sommaire. Obert Hervé Stumpf Mathieu Licence 3 RIA Réseaux & Protocoles Client pair-à-pair Projet L3 RIA 2005-2006 Sommaire Page 1 sur 10 Introduction - Présentation du projet 3 Fonctionnement coté graine 4 Fonctionnement

Plus en détail

Tableaux. Tableaux en Java (introduction)

Tableaux. Tableaux en Java (introduction) en Java (introduction) Avertissement : ce cours ne présente qu une version «édulcorée» des tableaux. Ne sont abordés que les tableaux de types primitifs et tous les aspects «objets» sont masqués. Philippe

Plus en détail

Expressions rationnelles POSIX (regular expressions)

Expressions rationnelles POSIX (regular expressions) Techniques de compilation Expressions rationnelles POSIX (regular expressions) Généralités Mise en œuvre dans la libc Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/

Plus en détail

TD 5 LES POINTEURS. Définition: Pointeur

TD 5 LES POINTEURS. Définition: Pointeur TD 5 LES POINTEURS d'après le site de F. Faber http://www.ltam.lu/tutoriel_ansi_c Définition: Pointeur Un pointeur est une variable spéciale qui peut contenir l'adresse d'une autre variable. En C, chaque

Plus en détail

Programmation trame GPS

Programmation trame GPS Lycée polyvalent DIDEROT 61, rue David d Angers 75019 PARIS http://www.diderot.org Département IRIS TP Programmation trame GPS Manipulation de trame GPS NMEA Auteur Version - Date Nom du fichier G.VALET

Plus en détail

Déclaration et Implémentation d'une classe

Déclaration et Implémentation d'une classe Définir et Instancier une classe en Java Déclaration et Implémentation d'une classe En algorithmique (comme en C++ la plupart du temps), l'écriture du corps des méthodes (implémentation) se fait après

Plus en détail

Tableaux et boucle For

Tableaux et boucle For Tableaux et boucle For Pierre-Alain FOUQUE Département d Informatique École normale supérieure Plan 1 -Tableaux 2 -Boucles for 3 -Paramètres sur la ligne de commande 2 Limite des types de base Définir

Plus en détail

Programmation Orientée Objet C++ Cours 1

Programmation Orientée Objet C++ Cours 1 Programmation Orientée Objet C++ Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence B. W. Kernighan et D. M. Ritchie - Le langage C : Norme

Plus en détail

LIF 1 TP 3 : Passage de paramètres / Tableaux 1D

LIF 1 TP 3 : Passage de paramètres / Tableaux 1D LIF 1 TP 3 : Passage de paramètres / Tableaux 1D Objectifs : Traduction d algorithmes en langage C Mode de passage des paramètres : données, données/résultats (cas particulier des tableaux). Utilisation

Plus en détail

Janvier 2015. Licence 3 info Université de Lille 1. Vers C++ venant de C et de Java. Adrien Poteaux et Alexandre Sedoglavic.

Janvier 2015. Licence 3 info Université de Lille 1. Vers C++ venant de C et de Java. Adrien Poteaux et Alexandre Sedoglavic. Vers C++ venant Licence 3 info Université de Lille 1 Janvier 2015 Généralités Le C++ est un langage de programmation développé à partir de 1980 par Bjarne Stroustrup. Nous utiliserons la normalisation

Plus en détail

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte:

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte: PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, Tableaux, opérateurs Entrées sorties de base Structures de contrôle Algorithmes de recherche Algorithmes de

Plus en détail

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges Module SIN221 Rendre un syste me communicant Analyse UML et algorithmie Objectifs : Modifier des diagrammes UML suite à la modification du cahier des charges. Caractériser et valider une classe en C++.

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

L1-S2 MPI : Programmation Impérative

L1-S2 MPI : Programmation Impérative L1-S2 MPI : Programmation Impérative Correspondances Langage de Réalisation C++ Ce résumé constitue un aide-mémoire rédigé sous forme d exemples qui illustrent partiellement l utilisation des différentes

Plus en détail

Mise à niveau en langage C Cours/TP 2

Mise à niveau en langage C Cours/TP 2 Mise à niveau en langage C Cours/TP 2 LES TABLEAUX Les tableaux correspondent aux matrices (ou vecteurs) en mathématiques. Un tableau est caractérisé par sa taille et par ses éléments. Les tableaux à une

Plus en détail

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes ISMIN 1A Programmation 1 : Examen de programmation C Réponses Partie 1. Questions ouvertes 1. Soit la déclaration suivante, char tab[] = "". Que contient le tableau tab? Réponse : tab[0] = \0. tab est

Plus en détail

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch Informatique III: Programmation en C++ Lundi 24 Octobre 2005 Chargé de cours François Fleuret francois.fleuret@epfl.ch Assistant Mathieu Salzmann mathieu.salzmann@epfl.ch Assistants étudiants Ali Al-Shabibi

Plus en détail

Chapitre 3 Tableaux à plusieurs dimensions

Chapitre 3 Tableaux à plusieurs dimensions Chapitre 3 Tableaux à plusieurs dimensions Pascal Lando Faculté de mathématiques et d informatique Amiens http://www.laria.u-picardie.fr/~lando pascal.lando@u-picardie.fr 19 février 2007 Plan du cours

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

Plus en détail

I. Introduction. II. But de l'exercice

I. Introduction. II. But de l'exercice Projet M2 LSE SEE : Communication espace noyau / espace utilisateur Table des matières I.Introduction...1 II.But de l'exercice...2 III.Écriture du module...3 A.Squelette du module...3 B.Gestion de l'entrée

Plus en détail

Fonctions de gestion de fichiers

Fonctions de gestion de fichiers Fonctions de gestion de fichiers 1. Ouverture et fermeture d un fichier Le C offre la possibilité de lire et d'écrire des données dans un fichier. Pour des raisons d'efficacité, les accès à un fichier

Plus en détail

I. Introduction à MATLAB

I. Introduction à MATLAB 1. Introduction Le nom MATLAB est la contraction du terme anglais matrix laboratory [1]. Ce logiciel est spécialement conçu pour le calcul scientifique et la manipulation de vecteurs et de matrices. Le

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

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 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 2 : Communication

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 2 : Communication iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 2 : Communication Nom(s) : Groupe : Date : Objectifs : rappels sur la création de processus par la primitive fork()

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 5 de cours/td Université Paris-Diderot Objectifs: Boucles while. Variables booléennes. 1 La boucle while Boucle non bornée [Cours] La boucle non bornée permet de

Plus en détail

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

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

Plus en détail

Introduction à la STL (en C++)

Introduction à la STL (en C++) Licence Sciences, Technologies, Santé Université de Perpignan Via Domitia Semestre 5 (L3) - Mention Mathématiques, Informatique Année universitaire 2012/2013 Programmation Orientée Objet Introduction à

Plus en détail

Programmation C++ (débutant)/les tableaux statiques

Programmation C++ (débutant)/les tableaux statiques Programmation C++ (débutant)/les tableaux statiques 1 Programmation C++ (débutant)/les tableaux statiques Le cours du chapitre 6 : les tableaux statiques Les tableaux Une variable entière de type int ne

Plus en détail

Fascicule de Génie Electrique (Terminale S option SI)

Fascicule de Génie Electrique (Terminale S option SI) Le langage C Ressource Centre d intérêt CI10 : Traitement de Thématique I11 - Les systèmes numériques : Mise en œuvre d un microcontrôleur avec des composants logiciels réutilisables. 1 Les constantes

Plus en détail

Génie Logiciel I. Cours III - Conversion, opérateurs et exceptions. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J.

Génie Logiciel I. Cours III - Conversion, opérateurs et exceptions. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Génie Logiciel I Cours III - Conversion, opérateurs et exceptions Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09 Nicolas Kielbasiewicz (C.D.C.S.P./I.S.T.I.L./I.C.J.)

Plus en détail

Et également retour sur le TP2. Prog Web Server - 2015-2016

Et également retour sur le TP2. Prog Web Server - 2015-2016 Et également retour sur le TP2 C'est un moyen simple de passer en revue un tableau Deux syntaxes À chaque itération, la valeur de l'élément courant est assignée à $value et le pointeur interne à la liste

Plus en détail

ENSTA IN204 Introduction à JAVA

ENSTA IN204 Introduction à JAVA Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -http://www.ensta.fr ENSTA IN204 Introduction à JAVA Olivier Sigaud LIP6/AnimatLab olivier.sigaud@lip6.fr 01.44.27.88.53 Ce document est mis à

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

3ETI, Entrainement Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Entrainement Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (entrainement) durée 1h20 Tous documents et calculatrices autorisés. Le sujet comporte 5 pages Le temps approximatif ainsi que le barème

Plus en détail

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire.

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire. Principes des lang. de progr. INE 11 Michel Mauny ENSTA ParisTech Prénom.Nom@ensta.fr Michel Mauny (ENSTA ParisTech) INE 11 Prénom.Nom@ensta.fr 1 / 37 Gestion et récupération automatique de mémoire lanage

Plus en détail

Programmation en Langage C/C++ par Sylvain Ferey. pour le Forum des Programmeurs Francophones

Programmation en Langage C/C++ par Sylvain Ferey. pour le Forum des Programmeurs Francophones Programmation en Langage C/C++ par Sylvain Ferey pour le Tables des matières Introduction... 5 Réalisation de notre premier programme C... 6 Les types du C / C++... 9 Le type caractère...9 Un signe de

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (2eme session) durée 2h Tous documents et calculatrices autorisés. Le sujet comporte 6 pages Le temps approximatif ainsi que le barème

Plus en détail

Programmation avancée en C++

Programmation avancée en C++ Programmation avancée en C++ La généricité (patrons) Les exceptions L allocation dynamique de mémoire concerne toutes les allocations de mémoire réalisées de manière explicite par le programmeur au cours

Plus en détail