1 Introduction au langage C++ •Premier programme •Les entrées-sorties •Les affe

1 Introduction au langage C++ •Premier programme •Les entrées-sorties •Les affectations •Les structures de contrôle •Les fonctions •Les structures de données simples 2 Premier programme #include<iostream.h> int main(int argc, char * argv[]) { cout<<" Bonjour U-AUBEN 1 !"; cout<<endl; return 0; } 3 4 #include<iostream.h> int main(int argc, char * argv[]) { cout<<" Bonjour ESI 1!"; cout<<endl; return 0; } Il va être nécessaire d'utiliser les fonctions d'entrée-sortie Tout programme C++ doit contenir une fonction principale 5 #include<iostream.h> int main(int argc, char * argv[]) { ……. return 0; } y= f (x) y= cos(x) Introduction à la notion de fonction en C++ 6 longueur d’un vecteur lié à l’origine (0,0) (x,y) f ( x , y )= √ x2+ y2 f  2→ ?  f (  ,  ) double longueur(double x, double y); 7 #include<iostream.h> int main(int argc, char * argv[]) { ……. return 0; } main est une fonction prenant deux arguments et retournant une valeur entière. main retourne la valeur 0. 8 Avertissement….Warning -------------------Configuration: Premier - Win32 Debug-------------------- Compiling... Bonjour.cpp C:\ESI1\EspaceW\Premier\Bonjour.cpp(8) : warning C4508: 'main' : function should return a value; 'void' return type assumed Linking... Premier.exe - 0 error(s), 1 warning(s) 9 Les entrées-sorties 10 #include<iostream.h> int main(int argc, char * argv[]) { double x; cout<<" lecture d’une valeur " ; cin>>x ; cout<<" écriture de la valeur lue"<<x ; return 0; } Programme cin>> cout<< 3.14159 3.14159 11 Les variables La plupart des langages sont basés sur la même technique fondamentale, à savoir la manipulation de valeurs contenues dans des variables. Une variable est un emplacement donné dans la mémoire de la machine et repéré par un nom . Cette notion simple est en fait la notion la plus importante de la programmation. Nous n’aurons pas, en effet, à nous préoccuper de savoir où sont stockées les informations dont nous avons besoin. On peut voir une variable comme une boîte dans laquelle, à chaque instant, une et une seule VALEUR est rangée. Pour connaître ou modifier cette valeur il va falloir ouvrir la boîte (instruction de lecture ou d’écriture). 12 Pour des raisons d’économie de place et d’efficacité des calculs, on précisera d’abord quel sera le type des valeurs qui pourront être rangées dans cette boîte. Une variable qui contiendra un entier n’aura pas la même taille qu’une variable devant contenir un réel. Une variable pourra contenir autre chose que des nombres : un caractère, une chaîne de caractères...... Une fois le type d’une variable décidé (déclaration) il n’est plus possible de le changer. #include<iostream.h> int main(int argc, char * argv[]){ double x; char c; char nom[50]; return 0; } 13 Attention aux habitudes de l’algèbre Il y a deux différences essentielles entre les variables en mathématiques et celles de l’informatique. En général, x, y, a, b ....... désignent des variables en mathématiques. En informatique, il sera préférable de donner à chaque variable un nom significatif. Une variable informatique ne peut contenir qu’une seule valeur à tout moment 14 Cette boîte est repérable grâce à son nom : c’est le moyen de désigner/référencer cette boîte. Moyenne Une variable en informatique = boîte capable de contenir une information le contenant de l’information L’information contenue dans la variable correspond à son contenu 15,25 15 Soit x un élément de N x désigne n’importe quelle valeur de N ax2 + bx +c =0 x désigne en même temps les deux racines éventuelles de ce trinôme. 16 Le type d’une variable (1) Les informations contenues en mémoire sont codées en binaire. En particulier le contenu de chaque variable sera lui aussi codé en binaire. Dans ces conditions, le contenu binaire d’une variable n’est pas suffisant pour connaître sa valeur. Il faudra préciser quel est le type de la variable considérée. 0 1 1 0 1 1 1 0 17 Le type d’une variable (2) 1. le nombre de bits utilisés par la variable Le type d’une variable considérée précise : 2. la signification à donner aux différents groupes de bits décrivant ce type 18 Les types numériques Réels Entiers float 4 octets short 1 octet double 8 octets int 2 octets long 4 octets 0 1 1 1 0 0 1 0 8 7 6 5 4 3 2 1 un octet Il y a 28 combinaisons possibles de 0 et de 1. Un octet ne peut donc représenter que 256 objets distincts. Deux octets On représente les entiers (int) compris entre -32768 et 32767. Quatre octets On représente les entiers (long) compris entre -2 147 483 648 et 2 147 483 647. 19 Quatre octets On représente les réels (float) compris entre 3,4 10-38 et 3,4 1038 Huit octets On représente les réels (double) compris entre 1,7 10-308 et 1,7 10308 mantisse exposant 0.5298014 -21 20 x=3.14; y=7.345; cout<<endl<<endl<<" Le capitaine "<<nom<<" a " <<ceil(4*sin(x)+3*log(y)-1)<<" ans"<<endl; 21 Affecter une valeur à une variable Si on imagine une variable comme une boîte contenant une valeur, affecter une valeur à une variable signifie mettre cette valeur dans la boîte. double x; double y; x=3.14; 3.14 x=2*x; 6.28 22 double x; x=3.14; mettre dans la boîte de nom x, le nombre 3.14. x=x+1; mettre dans la boîte de nom x, la valeur actuelle de la boîte augmentée de 1. 0=1; Attention ! Ce n’est pas une équation !!! 23 X ? y ? Voici deux variables de type réel. Prédire la valeur de ces variables après l’exécution des instructions suivantes : 2) y=1.5; 1) X=10.5; 3) X=X+y; 4) X=X+1; 5) X=y*3; 6) y=X-1; X 10.5 y 1.5 X 12.0 X 13.0 X 4.5 y 3.5 24 Les structures de contrôle 25 L’intérêt essentiel de l’ordinateur (et sa puissance) proviennent de deux concepts : la possibilité d’effectuer des choix dans les traitements réalisés la possibilité de répéter plusieurs fois la même instruction (ou le même groupe d’instructions) Ce sont les structures de contrôle du déroulement des algorithmes. Ces structures apparaissent dans tous les langages évolués. 26 Un algorithme est une suite précise, non ambiguë, d'étapes pouvant être exécutées automatiquement pour arriver à un résultat à partir de données. Algorithme 27 Un exemple 1 Choisissez un nombre entier naturel différent de zéro. 2 Si cet entier est impair alors multipliez-le par 3 et ajoutez 1. 3 S’il est pair alors divisez-le par 2. 4 Si l’entier obtenu est 1 alors vous avez terminé, sinon recommencez en 2 avec ce nombre. 3 3 10 5 16 8 4 28 si (N est impair) alors remplacer N par 3N+1 sinon remplacer N par N/2 finsi Choisir un nombre entier N si (N ≠1) alors exécuter à nouveau le travail de la boîte bleue sinon STOP finsi N 3 10 5 29 Tant que (N≠1) faire si (N est impair) alors N ← 3N+1 sinon N ← N/2 finsi Fintantque Choisir un nombre entier N affectation affectation 30 Tantque (N≠1) faire si (N est impair) alors N = 3N+1 sinon N = N/2 finsi Fintantque 31 On peut dire qu’un algorithme comporte deux types d’instructions : •les instructions de base (affectation, lecture, écriture) •les instructions de structuration de l’algorithme si cond alors ...... sinon ..... finsi Tant que cond faire ...... ...... Fintantque 32 La syntaxe de l’alternative ….. si condition alors instruction1 sinon instruction2 finsi …. if (N%2 = =1) N=3*N+1; else N=N/2; VRAI FAUX N 3 33 Exemple if (N%2 = =1) N=3*N+1; else N=N/2; VRAI FAUX N 3 10 5 34 ….. si condition alors instruction11 instruction12 instruction13 … sinon instruction21 instruction22 … finsi …. VRAI FAUX 35 En C++, on peut regrouper des instructions entre deux accolades pour former un bloc d’instructions. Ce bloc d’instructions peut alors être vu comme une instruction (une méta-instruction) if (N%2 = =1) { cout<<“N est impair.”<<endl; N=3*N+1; cout<<“Sa nouvelle valeur est “<<N<<endl; } else { cout<<“N est pair.“<<endl; N=N/2; cout<<“ Sa nouvelle valeur est “<<N<<endl; } 36 si condition alors instruction1 finsi …. si condition alors instruction1 sinon  finsi .... 37 calcul de . si est >0 alors calcul des deux racines réelles sinon finsi Une méthode décrivant le calcul des racines d’un polynôme du 2d degré Une instruction peut-être, elle-même, une structure de contrôle x2+ x−6 si <0 alors pas de racines réelles sinon calcul de la racine double finsi −3 x2+2 x−6 x2+2x+1 38 39 La syntaxe du « tant que » ….. tant que condition faire instruction1; instruction2; instruction3; … … fin tant que …. VRAI FAUX 40 Tant que (N≠1) faire si (N est impair) alors N = 3N+1 sinon N = N/2 finsi Fin tant que 41 Les règles à respecter Règle N°1 : Initialiser la condition. long A,C; cin>>A; while (C!=0) { A = A+1; C = 2*A-3*C+1; } Qui donne la première valeur à C ? 42 Les règles à respecter Règle N°2: Vérifier que la condition peut être modifiée à l’intérieur de la boucle. long A,C; cin>>A>>C; while (C!=0) { A = A+1; cout<<C; } La variable C ne peut jamais être modifiée !!! 43 La boucle répéter ....... jusqu’à En théorie la structure tant uploads/Ingenierie_Lourd/ chap1-cpp.pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager