Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Premier programme en C :
La boucle for : init7.c et init71.c
Algorithmes et structures de données 9ème cours Patrick Reuter maître de conférences
C++ 6ème cours Patrick Reuter maître de conférences
GEF 243B Programmation informatique appliquée Boucles §
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 243B Programmation Informatique Appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Tests.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Structures §12.3.
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Modélisation II.
GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
GEF 243B Programmation informatique appliquée Listes chaînées II §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Pointeurs et adresses §9.1.
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Flot de contrôle et énoncés de sélection §
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Résolution structurée des problèmes.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Fonctions.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Modules et masquage dinformation.
C.
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Calculs automatisés n°2 Niveau 3ème Consignes Indiquez votre nom. Indiquez si vous êtes côté fenêtres ou côté couloir. Numérotez votre feuille de (1)
Paramètres et pointeurs
Chap. 1 Structures séquentielles : listes linéaires
FLSI602 Génie Informatique et Réseaux
FLSI602 Génie Informatique et Réseaux
Introduction à la POO: Les classes vs les objets
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Récursivité.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
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.
IFT-2000: Structures de données
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Programmation concurrente
Méthode et Outils pour la Programmation
Modélisation Nuage de points.
Répéter dans un programme avec une Instruction itérative
Plan cours La notion de pointeur et d’adresse mémoire.
Structures des données
Le langage C Rappel Pointeurs & Allocation de mémoire.
Ch. PAUL - Piles et Files à l'aide de listes chainées
LES PILES ET FILES.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
et quelques rappels sur certains éléments du langage C
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
8PRO100 Éléments de programmation Les pointeurs de caractères.
Cours LCS N°4 Présenté par Mr: LALLALI
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Transcription de la présentation:

Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1

2 Hiver 2010JGA Beaulieu Revue EchangeInts(int* premierInt, int* secondInt); int a = 8; int b = 7; … EchangeInts(?a,?b);//quel symbole remplace ? … EchangeInts(int* premierInt, int* secondInt) { int temp; temp = ?premierInt; //quel symbole remplace ? ?premierInt = ?secondInt; ?secondInt = temp; return; }

3 Hiver 2010JGA Beaulieu Synopsis Tableaux et pointeurs Variables et adresses Pointeurs constants Similarités entre les tableaux et les pointeurs

4 Hiver 2010JGA Beaulieu Tableaux et pointeurs Les tableaux et les pointeurs sont reliés de très près. Il est important de connaître les similarités et les différences entre les pointeurs et les tableaux Aujourdhui nous revisitons certains concepts qui sont importants pour la compréhension de la relation entre les tableaux et les pointeurs

5 Hiver 2010JGA Beaulieu Variables et adresses Quand nous parlons des variables, nous devons faire une distinction entre la valeur dune variable et son adresse Pour une exécution donnée dun programme, une variable va garder la même adresse (logique) mais sa valeur peut changer Pointeurs et variables La valeur du pointeur, qui est une adresse peut changer durant lexécution dun programme Ladresse (logique) dune variable pointeur cependant est constante

6 Hiver 2010JGA Beaulieu Variables et adresses … void main() { … int a = 145; int *p = NULL; // un pointeur … p = &a; //met ladresse de a //dans le pointeur p. } Symbolique Mémoire a p 46798

7 Hiver 2010JGA Beaulieu … void main() { … int a = 145; int *p = NULL; // un pointeur … p = &a; //met ladresse de a //dans le pointeur p. } Variables et adresses Symbolique Mémoire a p Ce sont des constantes

8 Hiver 2010JGA Beaulieu … void main() { … int a = 145; int *p = NULL; // un pointeur … p = &a; //met ladresse de a //dans le pointeur p. } Variables et adresses Symbolique Mémoire a p Le contenue est variable

9 Hiver 2010JGA Beaulieu Pointeurs constants … void main() { … int a = 145; int *p = NULL; int scores[3] = {1,7,9}; … p = &a; scores[0] = a;//Bon p = scores; //Bon, voir à côté scores = p; //Pas légal } Symbolique Mémoire a p scores 79 scores[2]

10 Hiver 2010JGA Beaulieu Pointeurs constants … void main() { … int a = 145; int *p = NULL; int scores[3] = {1,7,9}; … p = &a; scores[0] = a;//Bon p = scores; //Bon, voir à côté scores = p; //Pas légal } Symbolique Mémoire a 984 p Cest une constante scores 79 scores[2]

11 Hiver 2010JGA Beaulieu Pointeurs constants On se souvient que un tableau a trois caractéristiques : un nom, un nombre fixe déléments et un type Le nom du tableau est une constante; cest ladresse qui pointe au premier octet du tableau. La prochaine diapo peut sembler un peu bizarre mais si vous pensez à scores comme un pointeur constant le tout devient plus évident

12 Hiver 2010JGA Beaulieu Pointeurs constants Tout ces énoncés impriment la même valeur: printf("Valeur de scores - une constante %d\n", scores); printf("Adresse du tableau scores %d\n",&scores); printf("Adresse du premier élément %d\n",&scores[0]);

13 Hiver 2010JGA Beaulieu Pointeurs constants Les similarités entre les tableaux et les pointeurs nous permettent daccéder les données dans un tableau de deux façons différentes: en utilisant un index ou un pointeur Nous pouvons aussi utiliser un index sur un pointeur pour référer aux éléments dans le tableau Nous pouvons déréférencer le nom du tableau, comme un pointeur Et encore plus!!! Rorouzan chap 11 a bien plus dexemples

14 Hiver 2010JGA Beaulieu Pointeurs constants … void main() { … int a[3] = {1,7,9}; int *p = a; //On remarque que a //est une adresse int *r = &a[1]; … } Symbolique Mémoire 1 a 79 a[0]a[1]a[2] 984 p r 46800

15 Hiver 2010JGA Beaulieu Pointeurs constants … void main() { … int a[3] = {1,7,9}; int *p = a; int *r = &a[1]; … *p = 12; //Ceci est familier } Symbolique Mémoire 12 a 79 a[0]a[1]a[2] 984 p r 46800

16 Hiver 2010JGA Beaulieu Pointeurs constants … void main() { … int a[3] = {1,7,9}; int *p = a; int *r = &a[1]; … *p = 12; //Ceci est familier *a = 543;//Regardez! On déréférence //un tableau } Symbolique Mémoire 543 a 79 a[0]a[1]a[2] 984 p r 46800

17 Hiver 2010JGA Beaulieu Pointeurs constants … void main() { … int a[3] = {1,7,9}; int *p = a; int *r = &a[1]; … *p = 12; //Ceci est familier *a = 543; //déréférence un tableau r[0] = 66; //un pointeur indexé r[-1] = 77; r[1] = 111; } Symbolique Mémoire 77 a a[0]a[1]a[2] 984 p r 46800

18 Hiver 2010JGA Beaulieu Quiz Time … void main() { … int a[3] = {1,7,9}; int *p = NULL; int *r = NULL; … r = &a[1]; //dessinez les pointeurs p = &a[2]; //remplissez les boites *p = 8; //changez les valeurs p[-2] = r[0]; //écrivez la valeur } Symbolique Mémoire 1 a 79 a[0]a[1]a[2] p r 46800