La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Bases de la programmation en C++ 1 Les Types de données complexes Les variables traditionnelles ne permettent de stocker qu’une donnée à la fois.  Lourdeur.

Présentations similaires


Présentation au sujet: "Bases de la programmation en C++ 1 Les Types de données complexes Les variables traditionnelles ne permettent de stocker qu’une donnée à la fois.  Lourdeur."— Transcription de la présentation:

1 Bases de la programmation en C++ 1 Les Types de données complexes Les variables traditionnelles ne permettent de stocker qu’une donnée à la fois.  Lourdeur de programmation.  Besoin de types plus évolués. Les structures.  Peuvent contenir des données hétérogènes Les tableaux.  Permettent de stocker plusieurs données de même type

2 Bases de la programmation en C++ 2 Les structures Définition d’un type personnalisé à partir des types de base. Exemple:  On déclare une structure « Date », qui contient:  Un jour (de type entier).  Un mois (de type entier).  Une année (de type entier).  On a alors créé le type Date.

3 Bases de la programmation en C++ 3 Déclaration d’un type structure  On définit un nouveau type.  On utilise ce type pour déclarer les variables struct NomStructure { Type1 NomChamp1; Type2 NomChamp2; …. }; struct NomStructure NomVariable ; Pas obligatoire en C++

4 Bases de la programmation en C++ 4 Exemple de déclaration struct Client { unsigned int Age ; unsigned float Taille ; }; struct Client Jean, Philippe; Client Paul; Déclaration de 3 variables de type Client Déclaration du type structure Client

5 Bases de la programmation en C++ 5 Exemple de déclaration struct Client { unsigned int Age ; unsigned float Taille ; } Jean ; struct { unsigned int Age ; unsigned float Taille ; } Jean ; ou Attention on ne pourra pas réutiliser ce type de structure (le type n’a pas été déclaré) Déclaration du type structure Client et d’une variable de type Client Déclaration d’une variable de type structure (pas de nom pour la structure)

6 Bases de la programmation en C++ 6 Accès à un champ d’une structure Les éléments d’une structure sont accédés par un point, suivi du nom du champ de la structure à accéder. Exemples NomStructure. NomChamp struct Client { unsigned int Age ; unsigned float Taille ; }; struct Client Jean, Philippe; Client Paul; Jean. Age = 22; Jean. Taille = 180; cin >> Philippe.Taille; cout << Jean. Age ; Philippe = Jean;

7 Bases de la programmation en C++ 7 struct Date { int Jour ; int Mois ; int Annees ; }; int main () { //déclaration avec affectation Date Anniv={22,04,1978}; Date Demain; Demain = Anniv; cout<< Demain.mois<

8 Bases de la programmation en C++ 8 Exemple d’imbrication de structures struct Date { int Jour ; int Mois ; int Annees ; }; struct Personne { float taille; Date date_naissance; }; int main () { Personne Paul; //déclaration simple //déclaration avec affectation Personne Jean={180,{6,8,1985} }; // on aurait aussi pu écrire // Personne Jean={180, 6,8,1985 }; Paul. date_naissance. Jour = 5; Paul. date_naissance. Mois = 12; Paul. date_naissance. Annees = 1984; Paul. Taille=179; Jean={182,{6,9,1983} }; } Uniquement à la déclaration

9 Bases de la programmation en C++ 9 Exemple de passage de structure en paramètre struct Client { int Age ; float Taille ; }; Client plus_grand (Client c1, Client c2) { if (c1. Taille > c2. Taille ) return c1; else return c2; } int main () { Client Max; Client Jean = {23,180.0 }; Client Paul = {22,190.0 }; Max = plus_grand(Jean, Paul ); cout<< Max.age; // la console va inscrire 22 }

10 Bases de la programmation en C++ 10 Les tableaux Suite de n données du même type, stockées de manières consécutive en mémoire. Un tableau est donc une suite de cases (espace mémoire) de même taille. La taille de chacune des cases est conditionnée par le type de donnée que le tableau contient. Les éléments du tableau peuvent être:  des données de type simple: int, char, float, long, double,... (la taille d'une case du tableau est alors le nombre d'octets sur lequel la donnée est codée).  des tableaux.  des structures. Lorsque le tableau est composé de données de type simple, on parle de tableau monodimensionnel (ou vecteur) Lorsque celui-ci contient lui même d'autres tableaux on parle alors de tableaux multidimensionnels (aussi matrice ou table)

11 Bases de la programmation en C++ 11 Les tableaux unidimensionnels Déclaration d’un tableau: Exemple: un tableau de 10 entiers type Nom_du_tableau [Nombre d'éléments] ; Le type d’élément que contient le tableau (int, char, etc…) Le nom de la variable de type tableau Entier qui détermine le nombre d’élément du tableau Pas de variable! int tab [10]; int

12 Bases de la programmation en C++ 12 Accéder aux éléments On accède à un élément par son indice. ( numéro d’ordre dans le tableau) Syntaxe: Règles:  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 Exemple: un tableau de 10 entiers Nom_du_tableau [indice] int tab [10]; int Indices

13 Bases de la programmation en C++ 13 Exemple de manipulation Manipulation des éléments comme des variables normales: //Déclaration d’un tableau de 10 entiers ( [0….9] ). int Toto[10]; Int h=10; int Toto[h]; //erreur de compilation! H est une variable et pas une constante //On affecter la valeur 6 au huitième élément Toto[7] = 6; //On affecte au 10ème élément le résultat de l'addition des éléments 1 et 2 Toto[9] = Toto[0] + Toto[1]; //On affecte 5 au (i+2)ème élément int i = 3; Toto[i+2] = 5;

14 Bases de la programmation en C++ 14 Initialisation d’un tableau Valeur par valeur (bof…) int Toto[10]; //déclaration //Initialisation Toto[0]=8; Toto[1]=32; //etc… Utilisation d’une boucle (mieux!) int Toto[10]; //déclaration int Indice; //var locale for (Indice = 0; Indice < 10; Indice++) { Toto[Indice] = 0; } A la déclaration int Toto[10] = {1, 2, 6, 5, 2, 1, 9, 8, 1, 5}; // toutes les éléments ont une valeur int Toto[10] = {1, 2, 6, 5}; // les éléments non définit sont initialisé à 0 // au moins un élément doit être définit

15 Bases de la programmation en C++ 15 Restriction On ne peut pas affecter une série de valeurs en dehors de la déclaration. On ne peut pas affecter un tableau à un autre. On ne peut pas comparer deux tableaux. int t[3] = {4, 5, 8}; // OK int t[3] ; t = {1, 2, 6, 5}; // ERREUR int x[3],int y[3] ; // déclaration de deux tableaux d’entier … x = y; // ERREUR int x[3],int y[3] ; // déclaration de deux tableaux d’entier … if(x == y) // ERREUR

16 Bases de la programmation en C++ 16 Exemple : produit scalaire de deux vecteurs int main() { int u[10], v[10]; // déclaration de deux vecteurs de 10 éléments : entrées int Produit_scalaire = 0; //sortie int ind; // var local cout<< "saisie de u"<> u[ind]; cout<< "saisie de v"<> v[ind]; for (ind=0;ind<10;ind++) // calcul du produit scalaire Produit_scalaire = Produit_scalaire + u[ind] * v[ind] ; cout<< "Le produit scalaire de u et v est: "<< Produit_scalaire <

17 Bases de la programmation en C++ 17 Les tableaux Multidimensionnels Déclaration d’un tableau: Exemple: un tableau d’entiers à 2 dimensions (3 lignes, 4 colonnes) type Nom_du_tableau [dim1][dim2]…[dimn] ; Le type d’élément que contient le tableau (int, char, etc…) Le nom de la variable de type tableau Nombre d’élément dans chaque dimension int tab [3][4]; Tableau[0][0]Tableau[0][1]Tableau[0][2]Tableau[0][3] Tableau[1][0]Tableau[1][1]Tableau[1][2]Tableau[1][3] Tableau[2][0]Tableau[2][1]Tableau[2][2]Tableau[2][3]

18 Bases de la programmation en C++ 18 Initialisation d’un tableau Valeur par valeur int Toto[3][5]; //déclaration //Initialisation Toto[0][0]=8; Toto[1][2]=32; //etc… Utilisation d’une boucle int Toto[3][5]; //déclaration int i,j; //var locale for (i = 0; i < 3; i++) { for (j = 0; j < 5; j++) { Toto[i][j] = 0; } A la déclaration int Toto[3][5] = {1, 2, 6, 5, 2, 1, 9, 8, 1, 5,8,3,6,7,9}; // de la forme: // { [0][0], [0][1], [0][2], [0][3], [0][4], [1][0], [1][1], [1][2], [1][3],etc ….}

19 Bases de la programmation en C++ 19 Passage de tableaux en paramètre Cas monodimensionnel. Cas Multidimensionnel. void Fonction( int x[ ] ) { ….. } int main() { int tab[20]; ….. Fonction ( tab); } Ne pas préciser la taille du tableau Pas de passage par valeur ou référence Le tableau d’origine peut être modifié dans tout les cas! void Fonction( int x[ ][4] ) { ….. } int main() { int tab[10][4]; ….. Fonction ( tab); } Ne pas préciser la première taille

20 Bases de la programmation en C++ 20 Transtypages Permet de changer le type d’une valeur. Exemple: (type) expression Type désiré Expression à convertir int i=5, j=2; float result1; float result2; Result1 = i / j; // Result1 prend la valeur 2 Result2 =(float) i / (float) j; // Result2 prend la valeur 2.5 // i et j ont été transformés en float pour cette opération

21 Bases de la programmation en C++ 21 Exercice4 Boite à outils pour vecteur  Faire entrer 2 vecteurs à l’utilisateur (taille = 3)  Faire entrer un operateur (‘*’ ou ‘+’)(produit scalaire, addition)  Rendre le produit vectoriel ou l’addition des deux vecteur  Utiliser 2 fonctions Addition et produit_scalaire. float produit_scalaire(int u[ ], int v[ ]) void Addition (int u[ ], int v[ ],int Result[ ]) Declarer une structure homme  Date naissance;  Reel taille;  int age.  Faire une fonction qui retourne le plus agé de 2 hommes.  L’appeler dans le main


Télécharger ppt "Bases de la programmation en C++ 1 Les Types de données complexes Les variables traditionnelles ne permettent de stocker qu’une donnée à la fois.  Lourdeur."

Présentations similaires


Annonces Google