Content text +COURS CP2 Programmation C Avancee ENSA MARRAKECH.pdf
Architecture des ordinateurs - chap.1 29/03/2021 1 Niveau CP2 Année scolaire 2020/2021 Pr. A. KADDARI Méthode de travail : Et s’il vous plait ! Prise des notes est indispensable. Votre participation est primordiale. Un support de cours sera disponible pour chaque chapitre. 2 LES ÉLÉMENTS DE COURS DE CE MODULE Volume horaire Elément n°1 : Programmation avancée C I. Les pointeurs et l’allocation dynamique de la mémoire. II. Les fonctions récursives /La programmation modulaire. III. Les entrées/sorties et manipulation de fichiers. IV. Les structures de données linéaires : liste, piles et files. V Les structures de données non linéaires : graphes et arbres Elément n°2 : Interfaces graphiques en C 3 4 5 Introduction I. Rappel sur quelques notions de base I.1. Les tableaux I.2. Les structures I.3. Les pointeurs II. Allocation dynamique de la mémoire : II.1 Les zones mémoire d’un programme en C II.2 Les types des variables d’un programme en C II.3 Allocation statique II.4 Allocation dynamique III. Allocation dynamique et application sur les tableaux IV. Allocation dynamique et application sur les structures Mémoire centrale Il existe 4 zones de mémoire où le compilateur range les données d’un programme : ◦ Une zone1 : la pile (stack). ◦ Une zone2 : le tas (heap). ◦ Une zone3 : mémoire statique. ◦ Une zone4 : code ou mémoire programme 1 2 3 4 5 6 Architecture des ordinateurs - chap.1 29/03/2021 2 8 Introduction I. Rappel sur quelques notions de base I.1. Les tableaux I.2. Les structures I.3. Les pointeurs II. Allocation dynamique de la mémoire : II.1 Les zones mémoire d’un programme en C II.2 Les types des variables d’un programme en C II.3 Allocation statique II.4 Allocation dynamique III. Allocation dynamique et application sur les tableaux IV. Allocation dynamique et application sur les structures On appelle tableau une variable composée de données de même type, stockée de manière contiguë en mémoire (les unes à la suite des autres) La taille de chacune des cases est conditionnée par le type de donnée lors de sa déclaration. Les éléments du tableau peuvent être: des données de type simple: int, char, float,... des tableaux des pointeurs des structures, ... 9 Les tableaux unidimensionnels ▪ Déclaration En langage C, la syntaxe de déclaration d'un tableau unidimensionnel est la suivante: type Nom_du_tableau [Nombre d'éléments] ▪ type définit le type d'élément que contient le tableau. ▪ Nom_du_tableau est le nom que l'on décide de donner au tableau, le nom du tableau suit les mêmes règles qu'un nom de variable. ▪ Nombre d'éléments est un nombre entier qui détermine le nombre de cases que le tableau doit comporter. 10 • Les tableaux unidimensionnels ◦ Exemples : Un tableau qui contient 8 éléments de type char: char Tableau[8]; Deux tableaux de 100 éléments, l'un contenant des float, l'autre des int : float VecteurA[100]; int VecteurB[100]; 11 Les tableaux unidimensionnels accès et manipulation des éléments d'un tableau L'indice du premier élément du tableau est 0 Un indice est toujours positif L'indice du dernier élément du tableau est égal au nombre d'éléments - 1 On accédera au 5ème élément du tableau en écrivant : Nom_du_tableau[4] Exemple : int tableau[5] ◦ le premier élément de tableau est : tableau[0] ◦ le deuxième élément de tableau est : tableau[1] ◦ le dernier (cinquième) élément de tableau est : tableau[4] 12 7 8 9 10 11 12 Architecture des ordinateurs - chap.1 29/03/2021 3 Les tableaux unidimensionnels Calcul de la taille du tableau Voici différents exemples de tableaux, et leurs tailles respectives: 13 Définition du tableau Taille du tableau (en octets) char Tableau1[12] 1 * 12 = 12 int Tableau2[10] 2 * 10 = 20 float Tableau3[8] 4 * 8 = 32 double Tableau4[15] 8 * 15 = 120 Les tableaux unidimensionnels Exercice 1 : Ecrire un programme C qui permet de lire N notes, de calculer et d’afficher la moyenne puis l'écart entre chaque note et la moyenne 14 #include #define Dim 100 Void main(){ float Tableau[Dim] ; float Som, Moyenne ; int i, N; // lecture de la taille du tableau printf(" La taille N <= 100 : "); scanf("%d",&N); // lecture des notes printf(" introduisez les notes : \n"); for (i=0; iArchitecture des ordinateurs - chap.1 29/03/2021 4 Les tableaux multidimensionnels EXERCICE 2 : Ecrire le programme C qui permet de calculer la somme de deux matrices A et B (L lignes, C colonnes). 19 #include #define Dim 50 Void main(){ float A[Dim][Dim], B[Dim][Dim], Som[Dim][Dim] ; int i,j,L,C; //Lecture des dimensions : printf(" introduisez le nombre de lignes <= 50 : "); scanf("%d",&L); printf(" introduisez le nombre de colonnes <= 50 : "); scanf("%d",&C); 20 //Lecture des données de la matrice A et B printf("lecture de la matrice A : \n") ; for (i=0; i
Related document
Comment
If you encounter an error, problem, .. or have any questions during the download process, please leave a comment below. Thank you.