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 :
Approche graphique du nombre dérivé
Algorithmes et structures de données 9ème cours Patrick Reuter maître de conférences
Portée des variables VBA & Excel
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 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 §
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.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
C.
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Défi écriture BEF Couverture. Défi écriture BEF Page 1.
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
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.
XT-SOFT SQL-TUNE. 2 Menu dAccueil 3 Sélection des Statistiques Maintenant allons sur Statistics : PF4 04 par PF4 ou en entrant dans Enter option : la.
Récursivité.
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.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
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
1. ________________________ 2. ________________________ 3. ________________________ 4. ________________________ 5. ________________________ 6. ________________________.
Chapitre 3.1 Révision des concepts de distance entre
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
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Transcription de la présentation:

GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1

21-Jan-14 2 JGA Beaulieu Revue EchangeInts(INT16U* premierInt, INT16U* secondInt); INT16U a = 8; INT16U b = 7; … EchangeInts(?a,?b);//quel symbole remplace ? … EchangeInts(INT16U* premierInt, INT16U* secondInt) { INT16U temp; temp = ?premierInt; //quel symbole remplace ? ?premierInt = ?secondInt; ?secondInt = temp; return; }

21-Jan-14 3 JGA Beaulieu Synopsis Tableaux et pointeurs Variables et adresses Pointeurs constants Similarités entre les tableaux et les pointeurs

21-Jan-14 4 JGA 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

21-Jan-14 5 JGA 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 PoINT16Ueurs 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

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

21-Jan-14 7 JGA Beaulieu … void main() { … INT16U a = 145; INT16U *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

21-Jan-14 8 JGA Beaulieu … void main() { … INT16U a = 145; INT16U *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

21-Jan-14 9 JGA Beaulieu PoINT16Ueurs constants … void main() { … INT16U a = 145; INT16U *p = NULL; INT16U 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]

21-Jan JGA Beaulieu PoINT16Ueurs constants … void main() { … INT16U a = 145; INT16U *p = NULL; INT16U 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]

21-Jan JGA Beaulieu PoINT16Ueurs 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

21-Jan JGA Beaulieu PoINT16Ueurs 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]);

21-Jan JGA Beaulieu PoINT16Ueurs 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

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

21-Jan JGA Beaulieu PoINT16Ueurs constants … void main() { … INT16U a[3] = {1,7,9}; INT16U *p = a; INT16U *r = &a[1]; … *p = 12; //Ceci est familier } Symbolique Mémoire 12 a 79 a[0]a[1]a[2] 984 p r 46800

21-Jan JGA Beaulieu PoINT16Ueurs constants … void main() { … INT16U a[3] = {1,7,9}; INT16U *p = a; INT16U *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

21-Jan JGA Beaulieu PoINT16Ueurs constants … void main() { … INT16U a[3] = {1,7,9}; INT16U *p = a; INT16U *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

21-Jan JGA Beaulieu Quiz Time … void main() { … INT16U a[3] = {1,7,9}; INT16U *p = NULL; INT16U *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