| PDF С( [Théorie] Les bases du débutant- Partie 1) |

On commence par la question la plus simple qui soit, la plus basique de toutes les questions basiques. Si vous avez l'impression de déjà savoir tout ça, je vous conseille de lire quand même, ça ne peut pas vous faire de mal ! Je pars de zéro pour ce cours, donc je vais devoir répondre à la question :
Que signifie le mot "programmer" ?
Bon, je vais éviter de vous faire comme mon prof de français : je ne vais pas vous donner l'origine du mot "programmer". Et
puis de toute façon si je vous disais que ça vient du latin programmeus je crois que vous auriez un peu de mal à me croire.
Simplement, programmer signifie réaliser des "programmes informatiques". Les programmes demandent à l'ordinateur d'effectuer des
actions.
Votre ordinateur est rempli de programmes en tous genres :
En bref, les programmes sont partout et permettent de faire à priori tout et n'importe quoi sur un ordinateur. Vous pouvez inventer un logiciel de cryptage révolutionnaire si ça vous chante, ou réaliser un jeu de combat en 3D sur Internet, peu importe. Votre ordinateur peut tout faire (sauf le café, mais j'y travaille).

Le célèbre jeu Half-Life 2, programmé en C++
Attention ! Je n'ai pas dit que réaliser un jeu vidéo se faisait en
claquant des doigts. J'ai simplement dit que tout cela était possible, mais soyez sûrs que ça demande beaucoup de travail.
Comme vous débutez, nous n'allons pas commencer par voir comment réaliser un jeu 3D. Ce serait du pur suicide.
Nous allons devoir passer par des choses très simples. Une des premières choses que nous verrons est comment afficher un message
à l'écran. Oui, je sais ça n'a rien de très transcendant, mais rien que ça croyez-moi, c'est pas si facile que ça en a l'air.
Bon, c'est vrai que ça impressionne moins les copains, mais on va bien devoir passer par là. Petit à petit, vous apprendrez suffisamment de choses pour commencer à réaliser des programmes de plus en plus complexes. Le but de ce cours est que vous soyez capables de vous débrouiller tous seuls dans n'importe quel programme écrit en C ou C++.
Mais tenez au fait, vous savez ce que c'est vous, cette histoire de "C / C++" ?
Votre ordinateur est une machine bizarre, c’est le moins que l’on puisse dire. On ne peut s’adresser à lui qu’en lui envoyant des 0 et des 1. Ainsi, si je traduis "Fais le calcul 3 + 5" en langage informatique, ça pourrait donner quelque chose comme :
0010110110010011010011110
(j’invente hein, je ne connais pas la traduction informatique par cœur
Ce que vous voyez là, c’est le langage informatique de votre ordinateur, appelé langage binaire (retenez bien ce mot !). Votre
ordinateur ne connaît que ce langage-là et, comme vous pouvez le constater, c’est absolument incompréhensible, immonde et
imbuvable.
Donc voilà notre premier vrai problème :
Comment parler à l’ordinateur plus simplement qu’en binaire avec
des 0 et des 1 ?
Votre ordinateur ne parle pas l’anglais et encore moins le français. Pourtant, il est inconcevable d’écrire un programme en langage binaire. Même les informaticiens les plus fous ne le font pas, c’est vous dire !
Eh bien, l’idée que les informaticiens ont eue, c’est d’inventer de nouveaux langages qui seraient ensuite traduits en binaire
pour l’ordinateur. Le plus dur à faire, c’est de réaliser le programme qui fait la "traduction". Heureusement, ce programme a
déjà été écrit par des informaticiens et nous n’aurons pas à le refaire (ouf !). On va au contraire s’en servir pour écrire des
phrases comme :
"Fais le calcul 3 + 5"
Qui seront traduites par le programme de "traduction" en quelque chose comme :
"0010110110010011010011110".
Si on fait un schéma de ce que je viens de dire, ça donne quelque chose comme ça :

Schéma ( super-simplifié :p ) de réalisation d’un programme
Là j’ai parlé avec des mots simples, mais il faut savoir qu’en informatique il existe un mot pour chacune de ces choses-là.
Tout au long de ce cours, vous allez d’ailleurs apprendre pas mal de vocabulaire.
Non seulement vous aurez l’air de savoir de quoi vous parlez, mais si un jour (et ça arrivera) vous devez parler à un autre
programmeur, vous saurez vous faire comprendre. Certes, les gens autour de vous vous regarderont comme des extra-terrestres, mais
ça il faudra pas y faire attention.
Reprenons le schéma qu’on vient de voir.
La première case est "Votre programme est écrit dans un langage simplifié". Ce fameux "langage simplifié" est appelé en fait
"langage de haut niveau".
Il existe plusieurs "niveaux" de langages. Plus un langage est haut niveau, plus il est proche de votre vraie langue (comme le
français). Un langage de haut niveau est donc facile à utiliser (chouette !), mais cela a aussi quelques petits défauts comme
nous le verrons plus tard.
Il existe de nombreux langages de plus ou moins haut niveau en informatique dans lesquels vous pouvez écrire vos programmes. En voici quelques-uns par exemple :
Notez que je ne les ai pas classés par "niveau de langage", donc n'allez pas vous imaginer que le premier de la liste est plus facile que le dernier ou l'inverse. Ce sont juste quelques exemples en vrac qui me sont passés par la tête. (et d’avance désolé pour tous les autres langages qui existent, mais faire une liste complète serait vraiment trop long)
Certains de ces langages sont plus haut niveau que d’autres (donc en théorie un peu plus faciles à utiliser), on va voir un peu plus loin notamment ce qui différencie le langage C du langage C++.
Un autre mot de vocabulaire à retenir est : code source. Ce qu'on appelle le code source, c'est tout simplement le code de votre programme écrit dans un langage de haut niveau. C'est donc vous qui écrivez le code source, qui sera ensuite traduit en binaire.
Venons-en justement au « programme de traduction » qui traduit notre langage de haut niveau (comme le C ou le C++) en binaire.
Ce programme a un nom : on l’appelle le compilateur. La traduction, elle, s'appelle la compilation.
Très important : il existe un compilateur différent pour chaque langage de haut niveau. C’est d'ailleurs tout à fait logique :
les langages étant différents, on ne traduit pas le C++ de la même manière qu’on traduit le Delphi.
Vous verrez par la suite que, pour les langages C / C++ par exemple, il
existe même plusieurs compilateurs différents ! Il y a le compilateur écrit par Microsoft, le compilateur GNU etc. On verra tout
ça dans le chapitre suivant.Heureusement, ces compilateurs-là sont quasiment identiques (même s’il y a parfois quelques "légères"
différences que nous apprendrons à reconnaître).
Enfin, le programme binaire créé par le compilateur est appelé : l’exécutable. C’est d’ailleurs pour cette raison que les programmes (tout du moins sous Windows) ont l’extension ".exe" comme EXEcutable.
Reprenons notre schéma de tout à l’heure, et utilisons cette fois des vrais mots tordus d’informaticien. Ca donne

Le même schéma, avec le bon vocabulaire
Comme je vous l’ai dit plus haut, il existe de très nombreux langages de haut niveau. Doit-on commencer par l’un d’entre eux
en particulier ? Grande question.
Pourtant, il faut bien faire un choix, commencer la programmation à un moment ou à un autre. Et là, vous avez en fait le choix
entre :
Voilà en gros les raisons qui m’incitent à vous apprendre le langage C plutôt qu’un autre. Je ne dis pas qu’il faut commencer par ça, mais je vous dis plutôt que c’est un bon choix qui va vous donner de solides connaissances.
Je vais supposer tout au long de ce cours que c’est votre premier langage de programmation, que vous n’avez jamais fait de programmation avant. Si, par hasard, vous avez déjà un peu programmé, ça ne vous fera pas de mal de reprendre à zéro.
Stop, il y a quelque chose que je ne comprends pas… Je vais
apprendre un langage appelé "C / C++" ou je vais apprendre 2 langages : l’un appelé "C" et l’autre appelé "C++" ?
La bonne réponse est que vous allez apprendre en fait 2 langages. Non, ça ne va pas faire 2 fois plus de travail !
Je m’explique. Le langage C et le langage C++ sont très similaires. Quand je désigne les 2 à la fois (comme je l’ai fait
jusqu’ici), j’écris "C / C++".
Voici ce qu’il faut savoir sur la différence entre les 2 avant de continuer :
Il y a plusieurs façons d’apprendre la programmation, je vous l’ai dit plus haut.
Certaines personnes pensent qu’il est bien d’enseigner directement le C++. Elles n’ont peut-être pas tort. Après tout, si le C++
c’est du langage C "avec des trucs en +", ça revient un peu au même.
Pourtant, moi (et cet avis n’engage que moi), je pense que ce serait mélanger les choses. Aussi j’ai décidé que j’allais séparer mon cours en 2 grosses parties :
Vu que vous aurez déjà appris le langage C dans un premier temps, quand on en viendra au langage C++ ça ira bien plus vite. Je n’aurai pas à vous réapprendre toutes les bases du C, j’aurai juste besoin de vous indiquer quels ajouts ont été faits dans le C ++ (enfin, y’a de quoi dire quand même).
Qu’il n’y ait pas de malentendus. Le langage C++ n’est pas "meilleur" que
le langage C, il permet juste de programmer différemment. Il permet disons aussi au final de programmer un peu plus vite et de
mieux organiser le code de son programme.
Ce n’est PAS parce que Half-Life 2 a été codé en C++ qu’il faut absolument faire du C++ pour réaliser des jeux ou des programmes complexes. Le langage C n’est pas un "vieux langage oublié", au contraire il est encore très utilisé aujourd’hui. Il est à la base des plus grands systèmes d'exploitation tels Unix (et donc Linux et Mac OS), ou encore Windows.
Retenez donc : le C et le C++ ne sont pas des langages concurrents, on peut faire autant de choses avec l’un qu’avec l’autre. Ce sont juste 2 manières de programmer assez différentes.
L’avantage, c’est qu’à la fin de ce cours vous saurez aussi bien programmer en C qu’en C++ selon vos besoins.
Voilà une question qui doit bien vous torturer l'esprit ! Alors : faut-il être un super mathématicien qui a fait 10 ans d'études supérieures pour pouvoir commencer la programmation ?
La réponse, que je vous rassure, est non.
Non, un super niveau en maths n'est pas nécessaire. En fait tout ce que vous avez besoin de connaître, ce sont les 4 opérations
de base :
J'espère que vous connaissez tout ça. Et histoire d'en être sûr, je vous expliquerai dans un prochain chapitre comment l'ordinateur réalise ces opérations de base.
Bref, niveau maths, il n'y a pas de difficulté insurmontable.
En fait, tout dépend du programme que vous allez faire : si vous devez faire un logiciel de cryptage, alors oui il vous faudra
connaître des choses en maths. Si vous devez faire un programme qui fait de la 3D, oui il vous faudra quelques connaissances en
géométrie de l'espace.
Chaque cas est particulier.
Pour apprendre le langage C / C++, vous n'avez pas besoin de connaissances pointues en quoi que ce soit.
Mais alors, où est le piège ? Où est la difficulté ?
Il faut savoir comment un ordinateur fonctionne pour comprendre ce qu'on fait. De ce point de vue là, rassurez-vous, je vous apprendrai tout au fur et à mesure.
Un programmeur a aussi certaines qualités comme :
En bref, et pour faire simple, il n'y a pas de véritables connaissances requises pour programmer. Un nul en maths peut s'en sortir sans problème, le tout est d'avoir la patience de réfléchir. Il y en a beaucoup d'ailleurs qui découvrent qu'ils adorent ça !
Alors à votre avis, de quels outils un programmeur a-t-il besoin ?
Si vous avez attentivement suivi le chapitre précédent, vous devez en connaître au moins un !
Vous voyez de quoi je parle ?
?
?
?
Vraiment pas ?
Eh oui, il s'agit du compilateur, ce fameux programme qui permet de traduire votre langage C en langage binaire !
Comme je vous l'avais un peu déjà dit dans le premier chapitre, il existe plusieurs compilateurs pour le langage C / C++. Nous allons voir que le choix du compilateur ne sera pas très compliqué dans notre cas
Bon, de quoi d'autre a-t-on besoin ?
Je ne vais pas vous laisser deviner plus longtemps Voici le strict minimum pour un programmeur :
A priori, si vous êtes un casse-cou de l'extrême, vous pourriez vous passer de débugger. Mais bon, je sais pertinemment que dans moins de 5 minutes vous reviendrez en pleurnichant me demander où on peut trouver un débugger qui marche bien
A partir de maintenant on a 2 possibilités :
Il existe plusieurs environnements de développement. Vous aurez peut-être un peu de mal à choisir celui qui vous plaît au début. Une chose est sûre en tout cas: vous pouvez faire n'importe quel type de programme, quel que soit l'IDE que vous choisissez.
Il m'a semblé intéressant de vous montrer quelques IDE parmi les plus connus. Tous sont disponibles gratuitement. Personnellement, je navigue un peu entre tous ceux-là et j'utilise l'IDE qui me plaît selon l'humeur du jour
Note pour les utilisateurs de Linux : il existe de nombreux IDE sous Linux,
mais les programmeurs expérimentés préfèrent parfois se passer d'IDE et compiler "à la main", ce qui est un peu plus difficile.
Vous aurez le temps d'apprendre à faire cela plus tard. En ce qui nous concerne nous allons commencer par utiliser un IDE. Je
vous conseille d'installer Code::Blocks si vous êtes sous Linux pour suivre mes explications.
Quel est le meilleur de tous ces IDE ?
Tous ces IDE vous permettront de programmer et de suivre le reste de ce cours sans problème. Certains sont plus complets au niveau des options, d'autres un peu plus intuitifs à utiliser, mais dans tous les cas les programmes que vous créerez seront les mêmes quel que soit l'IDE que vous utilisez. Ce choix n'est donc pas si crucial qu'on pourrait le croire.
Durant tout ce cours, j'utiliserai Code::Blocks. Si vous voulez avoir exactement les mêmes écrans que moi, surtout pour ne pas être perdu au début, je vous recommande donc de commencer par installer Code::Blocks.
Code::Blocks est un IDE libre et gratuit, disponible pour Windows, Mac et Linux.
Code::Blocks n'est disponible pour le moment qu'en anglais. Ca ne devrait PAS vous repousser à l'utiliser. Croyez-moi, nous aurons de toute façon peu affaire aux menus : c'est le langage C qui nous intéresse.
Sachez toutefois que quand vous programmerez vous serez de toute façon confronté bien souvent à des documentations en anglais. Voilà donc une raison de plus pour s'entraîner à utiliser cette langue.
Rendez-vous sur la page de téléchargements de Code::Blocks.
J'insiste là-dessus : si vous êtes sous Windows, téléchargez la version
incluant mingw dans le nom du programme d'installation. Si vous prenez la mauvaise version, vous ne pourrez pas compiler vos
programmes par la suite !

L'installation est très simple et rapide. Laissez toutes les options par défaut et lancez le programme.

On distingue 4 grandes sections dans la fenêtre, numérotées sur l'image :
Intéressons-nous maintenant à une section particulière de la barre d'outils. Vous trouverez les boutons suivants (dans l'ordre) "Compiler", "Exécuter", "Compiler & Exécuter" et "Tout recompiler". Retenez-les, nous les utiliserons régulièrement.
Je vous conseille d’utiliser les raccourcis plutôt que de cliquer sur les
boutons, parce que c’est quelque chose qu’on fait vraiment très très souvent. Retenez en particulier qu'il faut taper sur F9 pour
faire " Compiler & Exécuter ".
Pour créer un nouveau projet c'est très simple : allez dans le menu File / New / Project.
Dans la fenêtre qui s'ouvre, choisissez "Console application" :

Comme vous pouvez le voir, Code::Blocks propose de réaliser pas mal de
types de programmes différents qui utilisent des bibliothèques connues comme la SDL (2D), OpenGL (3D), Qt et wxWidgets (Fenêtres)
etc etc... Pour l'instant, ces icônes servent plutôt à faire joli car les bibliothèques ne sont pas installées sur votre
ordinateur, vous ne pourrez donc pas les faire marcher.
Nous nous intéresserons à ces autres types de programmes bien plus tard. En attendant il faudra vous contenter de "Console", car
vous n'avez pas encore le niveau nécessaire pour créer les autres types de programmes.
Cliquez sur "Go" pour créer le projet. Un assistant s'ouvre.
Faites "Next", la première page ne servant à rien.
On vous demande ensuite si vous allez faire du C ou du C++ : répondez C.

On vous demande le nom de votre projet, et dans quel dossier les fichiers source seront enregistrés :

Enfin, la dernière page vous permet de choisir de quelle façon le programme doit être compilé. Vous pouvez laisser les options par défaut, ça n'aura pas d'incidence pour ce que nous allons faire dans l'immédiat (veillez à ce que "Debug" ou "Release" au moins soit coché).

Cliquez sur "Finish", c'est bon !
Code::Blocks vous créera un premier projet avec déjà un tout petit peu de code source dedans
Dans le cadre de gauche "Projects", développez l'arborescence en cliquant sur le petit "+" pour afficher la liste des fichiers du projet. Vous devriez avoir au moins un main.c que vous pourrez ouvrir en double-cliquant dessus.
Et voilà !
Quelques petits rappels sur Visual C++ :
Nous allons bien entendu voir ici la version gratuite, Visual C++ Express

Aperçu de Visual C++ Express
Quelles sont les différences avec le "vrai" Visual ?
Il n'y a pas d'éditeur de ressources (vous permettant de dessiner des images, des icônes, ou des fenêtres). Mais bon, ça entre nous on s'en fout parce qu'on n'aura pas besoin de s'en servir dans ce tutorial Ce ne sont pas des fonctionnalités indispensables bien au contraire.
Vous trouverez les instructions pour télécharger Visual C++ Express à cette adresse :
Site de Visual C++ Express Edition
Sélectionnez Visual C++ Express Français un peu plus bas sur la page.
Visual C++ Express est en français et est totalement gratuit. Ce n'est donc pas une version d'essai limitée dans le temps.
C'est une chance d'avoir un IDE aussi puissant que celui de Microsoft disponible gratuitement, donc ne la laissez pas passer
L'installation devrait normalement se passer sans encombre. Le programme d'installation va télécharger la dernière version de Visual sur Internet. Je vous conseille de laisser les options par défaut.
A la fin, on vous dit qu'il faut vous enregistrer dans les 30 jours. Pas de panique, c'est gratuit et rapide mais il faut le faire. Cliquez sur le lien qui vous est donné : vous arrivez sur le site de Microsoft. Connectez-vous avec votre compte Windows Live ID (équivalent du compte hotmail ou msn) ou créez-en un si vous n'en avez pas, puis répondez au petit questionnaire.
On vous donnera à la fin une clé d'enregistrement. Vous devrez recopier cette clé dans le menu "?" / "Inscrire le produit".
Pour créer un nouveau projet sous Visual, allez dans le menu Fichier / Nouveau / Projet. Sélectionnez "Win32" dans la colonne de gauche, puis "Application console Win32" à droite.
Entrez un nom pour votre projet, par exemple "test" :

Validez. Une nouvelle fenêtre s'ouvre :

Cette fenêtre ne sert à rien
Par contre, cliquez sur "Paramètres de l'application" dans la colonne de gauche :

Veillez à ce que "Projet vide" soit coché comme sur ma capture d'écran.
Puis, cliquez sur "Terminer".
Votre projet est pour l'instant bien vide. Faites un clic droit sur le dossier "Fichiers sources" situé sur votre gauche, puis allez dans Ajouter / Nouvel élément :

Une fenêtre s'ouvre.
Sélectionnez "Fichier C++ (.cpp)" (je sais, on ne fait pas de C++ mais ça n'a pas d'importance ici). Entrez un nom pour votre
fichier : "main.c", comme sur ma capture d'écran :

Cliquez sur "Ajouter". C'est bon, vous allez pouvoir commencer à écrire du code !
Voyons ensemble le contenu de la fenêtre principale de Visual C++ Express :

On va rapidement (re)voir quand même ce que signifient chacune des parties :
Voilà, on a fait le tour de Visual C++. Vous pouvez aller jeter un œil dans les options (Outils / Options) si ça vous chante, mais n'y passez pas 3 heures. Il faut dire qu'il y a tellement de cases à cocher de partout qu'on ne sait plus trop où donner de la tête
Il existe plusieurs IDE compatibles Mac. Il y a Code::Blocks bien sûr, mais ce n'est pas le seul. Je vais vous présenter ici l'IDE le plus célèbre sous Mac : Xcode.
Cette section dédiée à Xcode est une adaptation d'un tuto paru sur
LogicielMac.com, avec l'aimable autorisation de son auteur PsychoH13.
Tous les utilisateurs de Mac OS ne sont pas des programmeurs. Apple l'a bien compris et n'installe pas par défaut d'IDE avec Mac OS. Heureusement, pour ceux qui voudraient programmer, tout est prévu. En effet, Xcode est présent sur le CD d'installation de Mac OS.
Insérez donc le CD dans le lecteur et installez-le. Il se trouve dans les "Developer Tools".
Par ailleurs, je vous conseille de mettre en favoris la page dédiée aux développeurs sur le site d'Apple. Vous y trouverez une foule d'informations utiles pour le développement sous Mac. Vous pourrez notamment y télécharger plusieurs logiciels pour développer. N'hésitez pas à vous inscrire à l'ADC (Apple Development Connection), c'est gratuit et vous serez ainsi tenu au courant des nouveautés.
Lorsque vous lancez Xcode pour la première fois, vous serez probablement surpris. Et y'a de quoi Contrairement à la plupart des logiciels Mac, il n'y a pas de fenêtre de bienvenue. En fait, la première fois, on trouve ça un peu vide... et pourtant, c'est un logiciel très puissant !
Xcode est l'IDE le plus utilisé sous Mac, créé par Apple lui-même. Les plus
grands logiciels, comme iPhoto et Keynote, ont été codés à l'aide de Xcode. C'est réellement l'outil de développement de choix
quand on a un Mac !
La première chose à faire est de créer un nouveau projet, alors commençons par ça Allez dans le menu File / New Project. La fenêtre suivante s'ouvre (attention elle peut changer en fonction de votre version de Xcode) :

Ancienne version

Nouvelle version
Si vous avez l'ancienne version, allez dans "Command line utility" et sélectionniez "Standard tool".
Si vous avez la nouvelle version, allez dans "Application" et sélectionnez "Command Line Tool".
Cliquez ensuite sur Next. On vous demandera où vous voulez enregistrer votre projet (un projet doit toujours être enregistré dès le début) ainsi que son nom. Placez-le dans le dossier que vous voulez.
Une fois créé, votre projet se présentera sous la forme d'un dossier contenant de multiples fichiers dans le Finder. Le fichier à l'extension .xcodeproj correspond au fichier du projet. C'est lui que vous devrez sélectionner la prochaine fois si vous souhaitez réouvrir votre projet.
Dans Xcode, si vous sélectionnez main.c, vous devriez avoir la fenêtre suivante :

La fenêtre est découpée en 4 parties, ici numérotées de 1 à 4 :

Ces 3 boutons vous permettent de naviguer entre, dans l'ordre :

Ces deux boutons signifient :
Pour tester ce premier programme, cliquez sur le bouton "Build and Go" de la barre d'outils.
Votre écran devrait maintenant ressembler à cela :

Au début, vous n'aurez qu'un seul fichier source (main.c). Cependant, plus loin dans le cours, je vous demanderai de créer de nouveaux fichiers source lorsque nos programmes deviendront plus gros.
Pour créer un nouveau fichier source sous Xcode, rendez-vous dans le menu "File / New File". Un assistant vous demande quel type de fichier vous voulez créer. Rendez-vous dans la section "BSD" et sélectionnez "C File" (Fichier C).

Vous devrez donner un nom à votre nouveau fichier (ce que vous voulez). L'extension, elle, doit rester .c. Parfois, nous le verrons plus loin, il faudra aussi créer des fichiers .h (mais on en reparlera). La case à cocher "Also create fichier.h" est là pour ça. Pour le moment, elle ne nous intéresse pas.
Cliquez ensuite sur "Finish". C'est fait ! Votre fichier est créé et rajouté à votre projet, en plus de main.c
Vous êtes maintenant prêts à programmer sous Mac
nombre de visites: 963
