Example: barber

C++ : LES BASES - math.univ-lyon1.fr

Cours d informatiqueO. Marguin 2003/2004C++:LESBASESSOMMAIRE :Chapitre 1:Pr esentationduC++ .. est-cequ unprogramme? .. Environnement de d eveloppement int egr e .. 2 Chapitre 2:El ements du langage (1).. Compl ements ..13 Chapitre 3:El ements du langage (2).. Enum erations .. Cha nes de caract`eres .. Pointeurs, r ef erences .. R ecapitulatif des op 1 PRESENTATION DU C++Apparu au d ebut des ann ees 90, le langage C++ est actuellement l un des plus utilis es dans le monde,aussi bien pour les applications scientifiques que pour le d eveloppement des logiciels. En tant qu h eritierdu langage C, le C++ est d une grande efficacit e. Mais il a en plus des fonctionnalit es puissantes, commepar exemple la notion de classe, qui permet d appliquer les techniques de la but de ce cours est de pr esenter la syntaxe de base du langage C++. Certains traits propres au C,dont l usage s av`ere p erilleux, sont pass es sous silence.

Chapitre 1 PRESENTATION DU C++ Apparu au d´ebut des ann´ees 90, le langage C++ est actuellement l’un des plus utilis´es dans le monde, aussi bien pour les applications scientifiques que pour le d´eveloppement des logiciels.

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of C++ : LES BASES - math.univ-lyon1.fr

1 Cours d informatiqueO. Marguin 2003/2004C++:LESBASESSOMMAIRE :Chapitre 1:Pr esentationduC++ .. est-cequ unprogramme? .. Environnement de d eveloppement int egr e .. 2 Chapitre 2:El ements du langage (1).. Compl ements ..13 Chapitre 3:El ements du langage (2).. Enum erations .. Cha nes de caract`eres .. Pointeurs, r ef erences .. R ecapitulatif des op 1 PRESENTATION DU C++Apparu au d ebut des ann ees 90, le langage C++ est actuellement l un des plus utilis es dans le monde,aussi bien pour les applications scientifiques que pour le d eveloppement des logiciels. En tant qu h eritierdu langage C, le C++ est d une grande efficacit e. Mais il a en plus des fonctionnalit es puissantes, commepar exemple la notion de classe, qui permet d appliquer les techniques de la but de ce cours est de pr esenter la syntaxe de base du langage C++. Certains traits propres au C,dont l usage s av`ere p erilleux, sont pass es sous silence.

2 La programmation-objet, quant `a elle, sera abord eedans un autre Qu est-ce qu un programme ?( ) Programmer un ordinateur, c est lui fournir une s erie d instructions qu il doit ex ecuter. Ces in-structions sont g en eralement ecrites dans un langage dit evolu e, puis, avant d etre ex ecut ees, sont traduitesenlangage machine(qui est le langage du microprocesseur). Cette traduction s appellecompilationetelle est effectu ee automatiquement par un programme appel le programmeur, cette traduction automatique implique certaines contraintes : ildoit ecrire les instructions selon une syntaxe rigoureuse, ildoitd eclarer les donn ees et fonctions qu il va utiliser (ainsi le compilateur pourra r eserver auxdonn ees une zone ad equate en m emoire et pourra v erifier que les fonctions sont correctementemploy ees).( ) Un programme ecrit en C++ se compose g en eralement de de fichiers-sources : ceux qui contiennent effectivement des instructions ; leur nom poss`ede l , ceux qui ne contiennent que des d eclarations ; leur nom poss`ede l (signifiant header ouen-t ete).

3 ( ) Un `a regrouper des d eclarations qui sont communes `a plusieurs ,etpermet une compilation correcte de ceux-ci. Pour ce faire, dans un pr evoit l inclusionautomatique des lui sont n ecessaires, gr ace auxdirectives de compilation# que le fichier `a inclure s ,on ecrira#include < >s il s agit d un fichierde la biblioth`eque standard du C++, ou#include " "s il s agit d un fichier ecrit par nous-m emes.( ) Le lecteur peut d`es `apr esent se reporter au (page 8) pour voir un exemple de programme ecrit en C++. Il convient de noter que : contrairement au Pascal,le C++ fait la diff erence entre lettres minuscules et majuscules:parexemple, les motstotoetTotopeuvent repr esenter deux variables diff erentes. pour rendre un programme plus lisible, il est conseill e d y mettre des commentaires ; en C++, touttexte qui suit//jusqu `alafindelaligneestuncommentaire, tout programme comporte une fonction (et une seule) appel eemain(): c est par elle que com-mencera l ex Environnement de d eveloppement int egr e( ) Le d eveloppement d un programme passe par trois phases successives :1) ecriture et enregistrement des diff erents fichiers-source,2) compilation s epar ee des , chacun d eux donnant unfichier-objetportant le m emenom, mais avec l ,3) lien des fichiers-objets (assur ee par un programme appel elinker) pour produire un uniquefichier-ex ecutable, portant l ; ce dernier pourra etre lanc eetex ecut e directe-ment depuis le syst`eme d exploitation.

4 ( ) Ce d eveloppement est grandement facilit e lorsqu on travaille dans unenvironnement de d evelop-pement int egr e(en abr eg e:EDI), qui g`ere l ensemble des fichiers et t aches `a effectuer sous la forme d unprojet. Ce qui suit est une br`eve description de l EDIV isual C++(version ) de premi`ere chose `afaireestdecr eer un nouveau projet, qu on nomme par eciseensuite le type de projet. Pour l instant nous nous contenterons de Win 32 Console Application (`al ex ecution, les entr ees de donn ees se feront depuis le clavier et les affichages dans une fen etre-texte detype DOS). Il faut savoir que Visual C++ permet de cr eer d autres types de projets et propose tousles outils n ecessaires `alaconstructiondev eritables applications Windows, avec gestion des fen etres,menus, dialogues etc. (c est un outil de d eveloppement extr emement efficace pour qui ma trise bien laprogrammation-objet).

5 L EDI cr ee automatiquement sur le disque un r epertoire appel emonprojdestin e`a regrouper tous lesfichiers relatifs au espace de travail (Workspace) de Visual C++ est divis eentroiszones: `a droite, la fen etre d editionpermettant de taper les fichiers-source ; `a gauche, la liste des fichiers-sources inclus dans le projet ; enbas, la fen etre o`u s affichent les messages du compilateur et `es avoir cr e e les fichiers-source, on construit le projet (menubuild, commandebuild ),ce qui g en`ere un programme ex ecutable appel peut alors demander l ex ecution du programme (menubuild, commandeexecute ).Remarque: l espace de travail peut etre sauvegard e`a tout instant (dans un fichier dont l extension ), ce qui permet de le r eouvrir plus tard, lors d une autre s eance de 2 ELEMENTS DU LANGAGE (1) Variables( )TerminologieUnevariableest caract eris ee par : sonnom: mot compos e de lettres ou chiffres, commen cant par une lettre (le caract`eretient lieude lettre), sontypepr ecisant la nature de cette variable (nombre entier, caract`ere, objet etc.)

6 , savaleurqui peut etre modifi ee ` l ex ecution d un programme, `a toute variable est attach ee uneadresse: nombre entier qui indiqueo`usetrouvestock ee en m emoire la valeur de cette variable.( )Types de basea)vide:void. Aucune variable ne peut etre de ce type. On en verra l usage au paragraphe ( ).b)entiers, par taille-m emoire croissante : char,stock e sur un octet ; valeurs : de 27`a27 1( 128 `a 127), short,stock e sur 2 octets ; valeurs : de 215`a215 1( 32768 `a 32767), long,stock e sur 4 octets ; valeurs : de 231`a231 1, int,co ncide avecshortoulong, selon l )r eels, par taille-m emoire croissante : float,stock e sur 4 octets ; pr ecision : environ 7 chiffres, double,stock e sur 8 octets ; pr ecision : environ 15 chiffres, long double,stock e sur 10 octets ; pr ecision : environ 18 trouve parfois le motunsignedpr ec edant le nom d un type entier (on parle alors d entiernon sign e;un tel entier est toujours positif).

7 ( )Valeurs litt erales (ou explicites)a) caract`eres usuels entre apostrophes, correspondant `a des entiers de typechar. Par exemple : A (= 65), a (= 97), 0 (= 48), (= 32). La correspondance caract`eres usuels entiers detypecharest donn ee par latable des codes conna tre les caract`eres sp eciaux suivants : \n :retour`alaligne, \t : ) cha nes de caract`eres entre guillemets, pour les exemple :"Au revoir!\n".On reviendra plus tard sur le typecha ne de caract`eres(cf ).c) valeurs enti`eres, par exemple :123,-25000,133000000(ici respectivement de typechar,short,long).d) valeurs r eelles, qui comportent une virgule, par exemple , , (signifiant 4,21 102).3( )D eclaration des variablesEn C++, toute variable doit etre d eclar ee avant d etre utilis g en erale d une d eclaration :<type> <listedevariables>;o`u:<type>est un nom de type ou de classe,<listedevariables>estunouplusieursnomsdevariables,s epar es par des :int i, j, k; // d eclare trois entiers i, j, kfloat x, y; // d eclare deux r eels x, y( )D eclaration + initialisationEn m eme temps qu on d eclare une variable, il est possible de lui attribuer une valeur initiale.

8 On pourra ecrire par exemple :inti,j=0,k;float x, y = ;En particulier, on peut d eclarer uneconstanteen ajoutantconstdevant le nom du type, par exemple :const double PI = ;const int MAX = 100;Les valeurs des constantes ne peuvent pas etre modifi Expressions( )D efinitionEn combinant des noms de variables, des op erateurs, des parenth`eses et des appels de fonctions (voir( )), on obtient r`egle simple `a retenir :En C++, on appelle expression tout ce qui a une valeur.( )Op erateurs arithm etiques+: addition,-:soustraction,*: multiplication,/: division. Attention : entre deux entiers, donne le quotient entier,%: entre deux entiers, donne le reste / ,19/5vaut3,19% les expressions, lesr`egles de priorit esont les r`egles usuelles des math ematiciens. Par exemple,l expression5+3*2a pour valeur11et non16. En cas de doute, il ne faut pas h esiter `a mettre desparenth`eses.++:incr ementation.

9 Siiestdetypeentier,lesexpressionsi++et++ iont toutes deux pour valeurla valeur dei. Maisellesont egalement uneffet de bordqui est : pourlapremi`ere, d ajouter ensuite 1 `alavaleurdei(post-incr ementation), pour la seconde, d ajouter d abord 1 `alavaleurdei(pr e-incr ementation).--:d ecr commei++et++i, mais retranchent 1 `alavaleurdeiau lieu d ajouter ( )Op erateurs d affectation=( egal)Forme g en erale de l expression d affectation :<variable>=<expression>Fonctionnement :1. l <expression>est d abord evalu ee ; cette valeur donne la valeur de l expressiond affectation,2. effet de bord : la<variable>re coit ensuite cette :i=1i=j=k=1(vaut 1 et donne `ai,jetkla valeur 1)+=,-=,*=,/=,%=Forme g en erale :<variable> <op erateur>=<expression>L expression est equivalente `a:<variable>=<variable> <op erateur> <expression>Par exemple, l expressioni+=3 equivaut `ai=i+3.( )Conversion de typeL expression d affectation peut provoquer une conversion de type.

10 Par exemple, supposons d eclar es :int i;float x;Alors, siivaut 3, l expressionx=idonne `axla valeur (conversion entier r eel). Inversement, sixvaut , l expressioni=xdonne `aila valeur 4, partie enti`ere dex(conversion r eel entier).On peut egalement provoquer une conversion de type gr ace `a l op erateur()(type casting). Avecxcommeci-dessus, l expression(int)xest de typeintet sa valeur est la partie enti`ere dex.( )Op erateurs d entr ees-sortiesCe sont les op erateurs<<et>>, utilis es en conjonction avec des objets pr ed efiniscoutetcind eclar esdans< >(ne pas oublier la directive#include < >en d ebut de fichier).Formes :cout <<<expression>: affichage `al ecran de la valeur de<expression>,cin >> <variable>: lecture au clavier de la valeur de<variable>( )Formatage des sorties num eriquesOn peut modifier l apparence des sorties gr ace aux expressions suivantes :endlprovoque un passage `a la lignesetfill(c)fixe le caract`ere de remplissage (si ce n est pas un blanc)setprecision(p)fixelenombredechiff resaffich essetw(n)fixe la largeur de l affichagesetbase(b)fixelabasedenum erationLes quatremanipulateursci-dessus, saufsetprecision(), n agissent que sur la prochaine sortie.


Related search queries