Formation C / C++ Gilles Maire Gilles@gillesmaire.com 2 Présentation de la form

Formation C / C++ Gilles Maire Gilles@gillesmaire.com 2 Présentation de la formation ●Présentation des langages C et C++ ●Environnement de développement ●Rappel du langage C ●Le langage C++ 3 Présentation du langage C ●C est un langage de bas niveau dans la mesure où il n'est pas très différent des instructions générées par un macro assembleur. En d'autres termes lorsqu'il est sorti en 1972, les personnes qui programmaient en assembleur l'on très vite adopté et il est toujours couramment utilisé ●Ses inventeurs furent Dennis Ritchie († 12 oct 2011) et Ken Thompson et il vit le jour en même temps que Unix dans les laboratoires de Bell. ●+ : ouverts, standardisé, théoriquement portable, simple ●- : pas objet, pas de gestion des exceptions, pièges de portabilité, gestion mémoire primitive et source de bug ou de faille sécurité. 4 Présentation du langage C++ ●Langage des années 1980 toujours issu des laboratoires de Bell inventé par Bjarne Stroustrup qui a ajouté la notion de classes au C ce qui en fait un langage objet. Il a été normalisé le 14 novembre 1997. ●Un programme écrit en C peut être compilé en C++, l'inverse n'est pas vrai car le C++ offre plus de fonctionnalités. ●Il est présent sur toutes les architectures. ●- : on perd la proximité avec le macro assembleur des années 1970, la portabilité n'est toujours que théorique ●+ : on gagne en clarté, le langage est très moderne 5 Évolution du C et du C++ 6 Compilation des programmes Programme C Programme h utilitaire.c Utilitaire.h Fichiers.h des librairies externes Fichier Makefile : organise la compilation des sources Programme Librairie Glibc et autres make => gcc binutils etc .. 7 Fabrication d'un programme ●Un programme C ou C++ est écrit en langage humain ●On l'édite en format ASCII dans un éditeur de texte qui sont plus adaptés que Word ou Open Office ●On peut également l'éditer dans un éditeur de haut niveau qui lance de façon transparente la compilation, l'exécution et le débogage (c'est à dire l'aide à la résolution de problèmes) ●Mais on peut aussi lancer à la main la compilation dans une console. 8 Environnements de développement ●Il existe beaucoup d'environnements de développement, ceux des société Borland, Microsoft, le produit Eclipse d'Oracle, QtCreator de Nokia. On trouve beaucoup de produits Open Source qui tournent sur MacOSX Windows et Unix ainsi que sur le compilateur open source GCC ●Nous allons utiliser l'un d'entre eux Code::blocks. ●Avant d'apprendre C ou C++ nous allons apprendre à utiliser Code::blocks dans les axes suivants : ●éditeur de code ; ●lancement de la compilation ; ●lancement du programme. 9 Installation de Code::Block ●Allez sur le site http://www.codeblocks.org/ ●Dans la partie Download/Binaries on charge ●codeblocks-10.05mingw-setup.exe ●Codeblock est livré avec ●l'environnement lui même ●un compilateur C et un compilateur C++ qui sont nécessaires pour compiler les programmes C et C++ 10 Création d'un nouveau projet 11 Ouvrir un projet C 12 Le premier programme On écrit le programme On compile ! On lance le programme Le programme s'exécute 13 Introduction : Langage C ANSI ●Plate-formes ●Environnement de développement ●Formats de présentation des informations ●Types et opérateurs ANSI ●Entrées/Sorties standards ●Instructions et branchements conditionnels 14 Langage C : plate-forme ●Le langage C est très portable et on le trouve sur tous les systèmes d'exploitation Windows, Linux, Unix, MacOSX ●On le trouve partout où l'on trouve un microprocesseur en effet il reste une abstraction peu élevé par rapport à un Macro Assembleur ●avec un peu d'habitude, un programmeur assembleur qui passe en C peut reconnaître les séquences d'instruction généré par le C ●Il est très rapide et ne manipule pas de notion d'objet comme son cousin le C++ ●Il est très utilisé dès que les temps de réponse demandés sont le plus réduit possible 15 Langage C - Présentation ●Le C permet la programmation structurée. Il possède un environnement constitué de nombreuses librairies de fonctions permettant d'effectuer des opérations de haut niveau. ●Dans ce cours, nous étudierons un C standard c'est-à-dire portable et donc utilisable sur n'importe quel système. ●A quoi ressemble un programme C ? #include <stdio.h> void main() { printf("\nExemple de programme c\n"); } 16 Langage C : caractères autorisés ●Lettres majuscules ●Lettres minuscules sans accent ●Chiffres ●Caractères de soulignement _ ●Caractère d'espace, de tabulation, de retour arrière, de nouvelle ligne, de saut de page ●Caractères spéciaux et de ponctuation :, ! | ; / : \ ? ~ ' + " # ( % ) & [ ^ ] * { - } = < > qui ont tous une signification particulière 17 Langage C : fonction main ●C'est une fonction comme toute autre, elle a donc la même structure : void main() { déclarations ; instruction ; } Le mot void indique que la fonction ne retourne pas de valeur mais elle peut retourner un code d'exécution. ● Nous verrons ultérieurement les passages de paramètres à la fonction main. 18 Exercice 1 ●reprendre le thème du premier exemple, c'est à dire écrire un programme qui affiche une chaîne de caractères à l'écran ●Le compiler et l'exécuter. 19 Langage C : bloc et instructions ●Blocs d'un programme ●Un bloc est une suite d'instructions élémentaires délimitées par des accolades. Un programme C peut contenir un nombre quelconque de blocs. Ces blocs peuvent être inclus les uns dans les autres. Un bloc peut contenir des déclarations et des définitions. ●On peut définir un bloc à tout moment pour y déclarer des variables qui auront une durée de vie limitée au bloc ●Instructions ●Une instruction élémentaire est une expression terminée par un point virgule (seules les instructions du préprocesseur C ne devront pas être suivies d'un point virgule). ●Dans le programme généré par code::blocks on ne trouve qu'un seul bloc qui contient une seule instruction. Cette instruction appelée "printf" est une fonction spécifique du C . Elle permet d'afficher des données. ●La phrase "\nExemple de programme c" placée entre parenthèses sert de paramètre à la fonction printf. Le fait de donner le nom d'une fonction dans une instruction active cette fonction : on appelle la fonction. ●La fonction exécute sa mission, puis le programme continue à l'instruction suivante. Dans notre exemple, le programme se termine car il n'y a pas d'autres instructions. ●La fonction printf est une fonction prédéfinie fournie avec le compilateur. Son code se trouve dans un fichier spécial appelé bibliothèque. 20 Les commentaires ●Le C donne la possibilité de placer des explications dans le texte d'un programme. Cela se fait au moyen de commentaires. ●Un commentaire est une suite de caractères placés entre les délimiteurs : /* et */ ●Exemple : /* ce programme affiche du texte à l'écran */ ●Dans certains cas on trouve des commentaires sous la forme /** */ qui sont toujours des commentaires mais qui sont lus par des programmes de documentation pour faire la documentation de programmation - voir Doxygen 22 Types de données élémentaires ●Type char Le type char est utilisé pour représenter un caractère, plus précisément la valeur entière d'un élément de l'ensemble des caractères représentables. Ce nombre entier est le code ASCII (American Standard for Information Interchange ) du caractère . Un caractère unique occupe un octet. A est le caractère 65, a est 97. ●Type int entier standard. Le type int a une taille de représentation qui dépend du système sur lequel on travaille. Par exemple, sur pc un élément de type int est stocké sur 2 octets alors que sur la machine Alpha ou sur Vax, il occupe 4 octets. 23 Types de données élémentaires suite ●Type short entier court. ●Le type short permet de stocker des données sur 2 octets. Il permet donc de coder les nombres signés entre -32768 et 32767. ●Type long entier long. ●Le type long permet de stocker des données sur 4 octets. Il permet donc de coder les nombres signés entre -2.147.843.648 à 2.147.843.647 . ●La clause signed/unsigned ●Si on ajoute le préfixe unsigned à la définition d'un type de variable entière, le bit de poids fort ne sert plus au signe mais augmente la portée d'une unité ( ex : unsigned short : 0 -> 65532) 24 Les réels ●Type float ●Un nombre du type float est habituellement rangé en mémoire sous la forme suivante : mantisse sur 23 bits, exposant sur 8 bits et signe sur 1 bit .3,4 * 10-38à 3,4 * 10 38 ●Type double ●Le type double est stocké sur 8 octets. Il est codé comme le type float, à ceci près que sa mantisse est sur 52 bits et son exposant sur 11 bits. 1,7*10-308 à 3,4 * 10 308 ●long double ●mantisse de 64 bits et un exposant de 15 bits 3,4 * 10 -4932 à 3,4 * 10 4932 25 Constantes ●Entière 12 , -3 ,06 (octal) 0xFF (hexadécimal), 12L (type long) ●Réel : 2.897,15.1E-2, .0089e2,-4005 E3 ●Caractères : 'a', 'Z', '\'' ●\n : nouvelle ligne \t : tabulation \b : retour arrière ●\r retour chariot \f saut de page \a signal sonore ●\" :quillemet ●\\ : \ ●\ddd code ASCII en uploads/S4/ formation-c.pdf

  • 39
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 01, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 11.3872MB