1.1- Compiler et exécuter un premier programme en C++



Documents pareils
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

1.6- Génération de nombres aléatoires

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Programmation C++ (débutant)/instructions for, while et do...while

TP1. Outils Java Eléments de correction

Initiation à la programmation en Python

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Télécharger et Installer OpenOffice.org sous Windows

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

IBM SPSS Statistics Version 22. Instructions d'installation sous Windows (licence nominative)

Quelques éléments de compilation en C et makefiles

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

UTILISATION DE L'APPLICATION «PARTAGE DE FICHIERS EN LIGNE»

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

Informatique I. Sciences et Technologies du Vivant (Semestre 1)

1. Introduction Création d'une requête...2

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Qu est ce qu une bibliothèque?

Installation et prise en main

Alfresco Guide Utilisateur

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Traitement de texte : Quelques rappels de quelques notions de base

Introduction à Eclipse

Cours Langage C/C++ Programmation modulaire

COPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER.

Navigation dans Windows

IBM SPSS Statistics Version 22. Instructions d'installation sous Windows (licence simultanée)

Google Drive, le cloud de Google

FreeNAS Shere. Par THOREZ Nicolas

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Un serveur web, difficile?

Créer des étiquettes avec les adresses d'un tableau Calc

MEDIAplus elearning. version 6.6

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

MIGRER VERS LA DERNIERE VERSION DE L'ANTIVIRUS FIREWALL

LES BIBLIOTHEQUES DE WINDOWS 7

l'ordinateur les bases

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Qlik Sense Desktop. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

I. Introduction aux fonctions : les fonctions standards

AxCrypt pour Windows

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

YAPBA M. Logiciel libre de suivi de vos comptes

Virtualisation de Windows dans Ubuntu Linux

Systèmes d'exploitation virtuels

Séance 0 : Linux + Octave : le compromis idéal

Foucart Digeon SISR1-CH7 Mise en place d'un serveur FTP BTS SIO 08/04/2013. SISR1 CH7 Mise en place d'un serveur FTP. - Page 1 -

Gestion des utilisateurs : Active Directory

Manuel d utilisateur BilanKine Version 1.5

MANUEL. de l application «CdC Online» pour Windows. Table des matières

But de cette présentation


TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Initiation à html et à la création d'un site web

Microsoft Application Center Test

Qu'est ce que le Cloud?

PLAN. Qui peut faire quoi? Présentation. L'internaute Consulte le site public

TRAVAILLER SUR LES ORDINATEURS DU LYCEE

PREINSCRIPTION EN LIGNE

Utiliser ma messagerie GMAIL

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

BADPLUS V5 MANUEL D'UTILISATION. Imports de données joueurs à partir de la base fédérale en ligne Poona. Stéphan KIEFFER - Dominique BOSSERT

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Créer un diaporama avec Open Office. Sommaire

MANUEL D'INSTALLATION

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Le service d'agenda en ligne SOGo

Gestion des documents avec ALFRESCO

Trier les ventes (sales order) avec Vtiger CRM

Service de certificat

Tutoriel Inscription et utilisation basique d'un blog hébergé chez Blogger.com

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Manuel d utilisation du web mail Zimbra 7.1

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Assistance à distance sous Windows

Préparer la synchronisation d'annuaires

Module : Informatique Générale 1. Les commandes MS-DOS

VTigerCRM. CRM : Logiciel de gestion des activités commerciales d'une (petite) entreprise

Débuter avec OOo Base

Annexe : La Programmation Informatique

Comment bien démarrer avec. NetAirClub GUIDE ADMINISTRATEUR V1.5. Table des matières

Documentation utilisateur. [EIP] TransLSF

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

SAP Lumira Version du document : Guide de l'utilisateur de SAP Lumira

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Installation et utilisation d'un certificat

Publipostage avec Calc

Accès externe aux ressources du serveur pédagogique

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Rendre un plan de cours interactif avec Médiator

La gestion des boîtes aux lettres partagées

Installation locale de JOOMLA SEPIA

EXTRACTION ET RÉINTÉGRATION DE COMPTA COALA DE LA PME VERS LE CABINET

GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL

PORTAIL INTERNET DE LA GESTION PUBLIQUE Guide d'utilisation du Portail Internet de la Gestion Publique

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Transcription:

1.1- Compiler et exécuter un premier programme en C++ 1- Un premier programme en C++ 2- Compilation et exécution 1- Un premier programme en C++ Le premier programme que propose le cours consiste à afficher "HelloWorld" dans l'invite de commandes. Le code source pour une telle opération est le suivant : #include<iostream> using namespace std; int main() { cout << "HelloWorld"; return 0; } Les sauts de lignes ou les tabulations ne sont pas nécessaires, de même que les espaces, sauf pour les lignes qui commencent par # qui sont des instructions destinées au préprocesseur et les lignes qui commencent par // et qui servent à introduire des commentaires. Ainsi, le code précédent est absolument équivalent à ce code : #include<iostream> using namespace std;int main(){std::cout << "HelloWorld";return 0;} La séparation en différentes lignes ou l'introduction de tabulations ne sont faites que pour faciliter la lecture du code. Noter que chaque instruction est terminée par ';', sauf celles destinées au préprocesseur. On remarque également la présence des accolades qui séparent des blocs d'instructions. Reprenons ce code ligne à ligne : #include<iostream> Les lignes qui commencent par # sont des instructions à destination du préprocesseur. Au chapitre 1.7, on détaillera

précisément le rôle du préprocesseur. On peut juste retenir pour l'instant qu'il est lancé au moment de la compilation du code, avant l'étape de compilation effective. Ici, l'instruction consiste à inclure une librairie, la librairie iostream. L'inclusion de librairies est en élément central en C++ (cf introduction). En incluant une librairie, on peut en utiliser les fonctions, les constantes et les objets. Dans iostream i=>input, o=>output. La librairie permet donc de gérer des flux d'entrées et de sorties. Notamment elle fournit un objet std::cout qui est un flux vers l'invite de commandes et qui permet d'écrire sur l'invite de commandes. L'insertion du nom du fichier entre deux < > indique à la machine d'aller chercher ce fichier à un emplacement spécial, un emplacement où sont présents un certain nombre d'autres fichiers sources pré-implémentés et prévus par la norme. En effet iostream est une librairie de la norme C++ standard. using namespace std; L'instruction sert à spécifier que l'on utilise l'espace de noms std. De sorte, que si la machine trouve cout, et qu'elle ne peut identifier cout ni comme un nom de variable, ni comme un nom de fonction, elle pourra tester si elle peut résoudre l'identifieur (nom de fonction ou de variable) std::cout. Si on avait pas mis cette instruction, plutôt que cout << "Hello world";, il aurait fallu mettre l'instruction std::cout << "Hello world";. int main() On annonce ici qu'on va définir la fonction main qui est la fonction principale du programme. Lors de l'exécution du programme, le système d'exploitation appelle l'exécution de la fonction main(). Toute autre fonction exécutée dans le programme sera soit appelée par main(), soit appelée par une fonction elle même appelée par main(), soit appelée par une fonction appelée par une fonction appelée par main() etc... La fonction main() renvoie un entier dans la norme C++. cout << "HelloWorld"; Ici cout est un objet. Cet objet fait partie de la bibliothèque standard, on peut le manipuler puisqu'on a inclus la librairie iostream. << est un opérateur de redirection de sortie. L'objet cout est un flux de sortie vers l'interface courante utilisée par le programmeur. En l'occurrence, l'invite de commandes sous Windows ou le shell sous Linux. Donc, l'instruction permet d'écrire "HelloWorld" sur l'invite de commande ou le shell. L'instruction std::cout << "HelloWorld"; aurait produit le même résultat. Par contre, si on n'avait pas précisé auparavant using namespace std;, on n'aurait pas eu le choix, il aurait fallu utiliser la dernière instruction. return 0;

Comme la fonction main() est déclarée comme renvoyant un entier, il faut lui faire renvoyer une valeur : 0 indique au système appelant la fonction que l'exécution s'est déroulée sans erreur. Du point de vue du programmeur, il serait équivalent de renvoyer n'importe quelle valeur entière. A noter que le code aurait pu fonctionner sans cette instruction. Pour créer un fichier de code source à partir du code donné plus haut, on saisit le code qui est proposé plus haut et on le saisit dans un éditeur de texte (notepad sous Windows, gedit sous Linux etc...). Il suffit ensuite d'enregistrer le fichier au format cpp. Sous notepad, il faut donc bien mettre "T.cpp" (ne pas omettre les guillemets sous notepad) dans la barre de saisie du nom de fichier. Un premier fichier source a été crée. Il va maintenant falloir le compiler. 2- Compilation et exécution Compilation et exécution sous Windows La compilation consiste à produire un fichier exécutable à partir d'un fichier de code source (ou plusieurs fichiers de code source). Plusieurs compilateurs sont disponibles. Dans ce qui suit, on propose d'en utiliser un qui est lié à un EDI (Environnement de Developpement Intégré) librement disponible : Dev-C++. Une fois cet EDI téléchargé, on peut l'utiliser pour ouvrir le fichier qui a été précédemment créé.

On constate que l'affichage se fait avec des couleurs, ceci pour faciliter la compréhension du code. En vert : les informations à destination du préprocesseur qui apparaissent en haut du document. En noir et gras : les mots clés du langage En noir les instructions (dont les mots clés du langage qui apparaissent en gras) En rouge les chaînes de caractères. En violet les valeurs A partir de là, les modifications seront faites à partir de l'edi, de même que la création de fichiers. Une fois le fichier de code source ouvert dans le navigateur, on peut compiler ce code. Sous Dev-C++ cela se fait avec CTRL+F9 (ou via le menu). Un fichier T.exe apparaît dans le même répertoire que le fichier source T.cpp. Reste à exécuter le code qui vient d'être produit. Pour se faire, on utilise l'invite de commande (Démarrer-Accessoires). Une commande est toujours un fichier (quelque soit le système d'exploitation). Si par exemple j'utilise la commande ping, elle est comprise : C:\Documents and Settings\utilisateur>ping 129.12.12.0 La commande ping a pour nom complet : c:\windows\system32\ping, on peut trouver le fichier qui correspond à la

commande. A un moment donné du temps, le système d'exploitation pointe sur un nombre de répertoires. Lorsqu'on appelle une commande, un fichier exécutable, la machine cherche parmi tous les répertoires sur laquelle elle pointe et dans le répertoire courant : c:\documents and Settings\utilisateur dans la commande précédente. En général, le fichier exécutable n'est pas dans un fichier que la machine explore par défaut. Donc, supposons que mon exécutable soit dans c:\cpp, pour l'exécuter, je fais : C:\Documents and Settings\utilisateur>c:\CPP\T Ce qui exécute le code. Une autre solution consiste à se placer d'abord dans le répertoire c:\cpp : C:\Documents and Settings\utilisateur>cd c:\cpp C:\CPP>T La première instruction cd c:\cpp : cd signifie "change directory" : on change le répertoire de référence pour avoir c:\cpp comme nouveau répertoire de référence. Il suffit ensuite de taper le nom de l'exécutable. Note : on aurait également pu lancer le fichier.exe en double cliquant dessus, mais la fenêtre d'exécution qui est ouverte par Windows pour l'affichage de l'exécution est fermée dès que cette exécution est terminée. C'est pour cette raison que l'on ouvre d'abord l'invite de commande. Compilation et exécution sous Linux On suppose que le compilateur classique gcc est installé sur la machine Linux (il s'agit du compilateur le plus présent sur les machines Linux). On utilise le compilateur g++ (compilateur C++ qui fait partie de gcc). On suppose que $PATH pointe effectivement sur le répertoire qui contient la commande g++. Donc, on invoque le shell de commandes. On suppose que le fichier contenant le code est test.cpp (le même code que celui qui précède). On suppose que le chemin complet de ce fichier est /home/dorat/test.cpp. A partir de là, deux solutions sont possibles : SOL1 : Soit on se place dans le répertoire qui contient le fichier : cd /home/dorat/ Ensuite on peut lancer la compilation : g++ test.cpp Dans ce cas, on constate qu'un fichier a.out a été créé dans le répertoire courant. Pour l'exécuter :

./a.out qui signifie : exécuter la commande a.out qui est dans le répertoire courant. L'exécution aura aussi pu être faite par : /home/dorat/a.out Dans ce cas, on donne le chemin absolu de la commande. On peut vouloir donner un autre nom que a.out (ainsi qu'un autre chemin pour le fichier de destination) : g++ test.cpp -o /home/dorat/executables/hello.out Dans ce cas, le fichier exécutable créé sera /home/dorat/executables/hello.out Ne reste plus qu'à voir le cas où on lance la compilation depuis un autre répertoire que celui dans lequel est le fichier. Dans ce cas, depuis n'importe quel répertoire : g++ /home/dorat/test.cpp -o /home/dorat/executables/hello.out et son exécution depuis n'importe quel répertoire : /home/dorat/executables/hello.out Différents compilateurs Il existe différents compilateurs pour une même plateforme. Ces différents compilateurs fonctionnent différemment et ne donnent pas le même résultat. Certains sont plus exigeants que d'autres quand d'autres acceptent des syntaxes un peu plus larges. Certains donnent plus d'indication sur les erreurs de compilation que d'autres.