01 INITIATIONC SDLx

01 INITIATIONC SDLx

Petite initiation au langage C et au graphisme SDL Lorsque l’on utilise l’ordinateur pour résoudre des problèmes qui nous sont posés, pas besoin d’être virtuose en programmation. Un bagage minimal de connaissances suffit, et comme je vais utiliser le langage C, disons qu’il s’agit plutôt de faire du C – que du C + +. Pourquoi le langage C ? Parce que eest le plus œcuménique. Mais si vous préférez aller plus loin avec d’autres langages que le C, poursuivez votre chemin et affirmez votre originalité.

Si vous connaissez d vous donnera des éléments sur la synta d. _ structure interne d’u programme est la m exemple, ce qui s’écrit OF40 p next page mation, ce qui suit ntendu que la asic, Fortran,… { en C s’écrit begin en Pascal. Si vous ne connaissez quasiment rien à la programmation, le rapide survol du langage C qui suit vous donnera un premier aperçu des moyens de traitement de problèmes via l’ordinateur. Au fond, tout se résume en quatre termes : boucles, tests, tableaux, fonctions. II convient de faire avec ! Et maintenant quel langage C choisir ?

Celui que vous voulez. pour satisfaire aux rumeurs qui courent sur Internet, j’ai pris Code Blocks, ayant

Désolé, mais les essais complets ne sont disponibles que pour les utilisateurs enregistrés

Choisissez un plan d'adhésion
lu que son principal concurrent Dev-C++ n’était plus développé depuis 2005, mais par a suite j’ai appris Code Blocks sous Windows, et même Windows Vista, mais si vous préférez le faire sous Linux, ce ne doit pas être plus compliqué. Télécharger Code Blocks sous Windows (Vista) en 5 minutes chrono Allez chez Google, et demandez « télécharger code blocks 8. 02 Prendre la première proposition qui vient, et demandez télécharger.

Nouvelle page : cliquez sur download the binary release. Vous êtes envoyé sur un site où dans la rubrique Windows on vous propose Codeblocks-8. 02mingw-setup. exe à télécharger avec Sourceforge ou BerliOS. Choisissez qui vous voulez, et téléchargez. Quelques econdes plus tard, c’est fini. une icône ronde est apparue sur votre « bureau Cliquez dessus, et obéissez aux instructions sans chercher à faire preuve d’originalité. Quelques secondes encore, et le répertoire CodeBlocks se trouve installé à l’intérieur de vos Programmes (Program Files).

Dans ce répertoire C:NProgram FilesCodeBlocks, vous allez trouver l’exécutable, parfaitement repérable grâce à son carré divisé en quatre petits carrés coloriés (rouge, vert, jaune, bleu). Cliquez dessus, à moins que vous ne fassiez un raccourci à partir de votre bureau. Et la page CodeBlocks apparaît plein écran. Dans le argon informatique, cette page constitue l’IDE (environnement de développement intégré), le centre de pilotage à partir duquel vous allez écrire votre programme dans l’éditeur de texte, puis Ian tion. 2 Code::Blocks on vous propose, au centre de l’écran : Create a new project.

Cliquez dessus. Dans la fenêtre qui apparaît, cliquez sur Console application. Faites next pour aller d’une page à la suivante. On va vous demander si vous voulez C Choisissez C. Puis on vous demande de donner un nom ? ou C++. votre projet. Tapez par exemple dans Project title : bonjour. puis next, et on vous annonce qu’une configuration release est créée. Cest fini. Vous voyez apparaître, dans la colonne Projets à gauche de l’écran, le carré bonjour en dessous de Workspace. Ainsi dans votre espace de travail (workspace) se trouve intégré votre projet bonjour, encore vierge.

Cliquez dessus, et vous voyez apparaître Sources. Cliquez sur Sources, et vous voyez apparaître main. c. Cliquez sur main. c et l? est édité un petit programme déjà tout prêt. Commencez par supprimer #include qui ne sert à rien. Puis remplacez « Hello World », par « Bonjour
» ou ce que vous voulez. Vous avez votre premier programme en C : #include int main() printf(« Bonjour
; return O ; Pas besoin d’être un expert pour se douter que ce programme va nous afficher Bonjour ! Encore convient-il de faire tourner ce programme. pour cela aller dans la rubrique Build en haut de ander build puis run. 40 votre IDE Code Blocks. pour sauvegarder ce programme, allez dans la première colonne File en haut à gauche, et demandez par exemple everything. Ensuite vous pouvez tout fermer, et quitter codeblocks (allez sur votre projet bonjour, puis un clic à droite sur la souris donne un menu où l’on trouve close project). Votre projet va être pieusement conservé dans le répertoire FilesCodeBlocks sous le nom bonjour. 1 Et n allant visiter ce répertoire bonjour, vous allez constater qu’il contient 7 fichiers, tout ça pour le prix d’un seul bonjour. Maintenant quelques explications sur le programme.

Voici comment se présente en général un programme en C : En fait j’ai eu un problème avec Windows Vista, avec un refus total de compiler le moindre programme. Faire un programme stupide de deux lignes pour afficher Bonjour, et en plus qu’il ne marche pas, c’est plutôt frustrant. On peut en déduire qu’on est soi-même stupide, ou bien que c’est une certaine informatique qui l’est. Evidemment j’ai pensé que c’était plutôt la deuxième éventualité. En fait si j’ai bien compris, Windows Vista est un centre de haute sécurité. Il refuse l’exécution de programmes qu’il ne connaît pas.

C’est ce qui se passait avec la laconique réponse de Code Blocks lors de la compilation du programme : permission denied (permission refusée). Pour m’en sortir, j’ai dû désactiver le contrôle sur les comptes 4 0 puisse arriver, voici comment faire : aller dans le panneau de configuration, puis dans la rubrique comptes d’utilisateur. Là, aller à ajouter ou supprimer des comptes d’utilisateur. On tombe sur choisir le compte à modifier. Aller en bas de la page et cliquer sur ouvrir la age principale comptes d’utilisateur. Puis cliquer sur activer ou désactiver le contrôle des comptes d’utilisateurs.

Et une fois arrivé là, enlever la petite croix qui activait le contrôle. 2 #include main() { On commence par mettre quelques #include de fichiers . h où se trouvent certaines fonctions du langage, celles que nous allons utiliser dans le programme, et qui sans cela ne seraient pas reconnues. II faut passer par là, se dire que pendant des annees on va avoir sous les yeux, et taper des milliers de fois ce genre d’idioties. Cela permet au moins de s’aiguiser les doigts en pensant à autre chose. Puis vient e programme principal int main().

Nouvelle plaisanterie : le main est considéré comme une fonction qui ne prend aucun argument (aucune variable) d’où les parenthèses mais qui ramène un nombre entier, d’où le int devant main. Cela explique la présence du return 0 à la fin du programme. La fonction main ramène un entier, et cet entier est O. Vous pouvez mettre si vous préférez return 1000 et le programme principal ramènera 1000 ! s 0 exaspère, vous pouvez toujours simplifier, et écrire le programme suivant main() { printf(« Un petit bonjour
»); Cela va marcher, mais vous recevrez un avertissement (warning) pour votre auvaise conduite.

En fait la seule chose intéressante, c’est de remplir l’intérieur du programme principal, entre les deux accolades où vont se trouver une succession d’instructions, toutes terminées par un point virgule, comme vous avez déjà pu le constater. Cest là que tout se passe, car c’est dans cette zone que le problème que ron veut traiter sera écrit et transmis par nos soins à la machine, et se trouvera résolu lors de l’exécution du programme, si tout va bien ! Evidemment avec notre affichage de Bonjour, une chose que le moindre traitement de texte ferait beaucoup mieux et plus simplement, on n’a pas l’air malin. Affichage sur l’écran Comme on l’a vu, on utilise la fonction printf(). Premier miracle, lorsqu’on exécute ce programme: l’écran ne reste pas désespérément noir. Bonjour apparaît en haut ? gauche de l’écran, suivi d’un message en anglais de fin d’exécution du programme, où Dans ce qui suit, nous omettrons souvent les #include, les déclarations de variables, 6 0 était vendu avec une brochure explicative de 250 pages, où le seul programme qui était expliqué était l’affichage de Hello world, sous une forme sophistiquée quand même.

Résultats des courses : ventes calamiteuses. On retrouve bientôt la disquette Visual C++ dans es livres à 200 F. On arrive aujourd’hui avec une version gratuite sur Internet. 3 l’on vous dit aussi d’appuyer sur une touche pour fermer la fenêtre. Si vous ne voulez pas que votre Bonjour soit pollué par ce message, vous pouvez retarder l’échéance, en faisant : #include < stdio. h> 4include c’est là que se trouve la fonction getch() main() { printf(« Bonjour ; getch() La fonction getch() attend sagement que vous appuyiez sur une touche avant d’envoyer le message de fin. Venons-en au symbole « n, que nous avions placé initialement dans notre « Bonjour
Après l’écriture de Bonjour, il fait descendre d’une ligne. Essayez par exemple printf(« Bonjour
Et adios h). Si l’on fait plutôt printf(« Bonjour apparait aussi mais deux lignes en-dessous du haut de l’écran. Si l’on préfère printf(« Bonjour »), Bonjour apparaît en haut de l’écran, mais décalé vers la droite. C’est dans la bibliothèque stdio. h que se trouve définie la fonction printf().

Si on ne l’incluait pas au début du n aurait un message 0 déclare par exemple en entiers (int), comme int a ; ou en entiers longs (long), ce qui revient aujourd’hui exactement au même que les entiers courts ou en flottants (float) quand on a un nombre à virgule, étant entendu que la virgule est eprésentée par un point ! I s’agit en fait d’un nom donné à une case mémoire. Ce que l’on met dedans peut être variable ou fixe, cela dépend de ce que l’on veut. Si l’on fait ; cela veut dire que 3 est placé dans la case qui s’appelle a.

Le signe = est un symbole d’assignation ou d’affectation : on affecte à a la valeur 3. Tout bêtement on met 3 dans a, ou encore a contient 3. Faisons ce programme : main() {int a ; ; printf(« %d», a) ; } On volt s’afficher 3 sur l’écran. A noter dans printf le symbole %d qui indique que c’est un entier qui va s’afficher, et c’est celui qui est dans a. Si l’on veut mettre dans a un nombre à virgule (un nombre dit flottant : float), on fait • float a ; a=3. 141 59 ; printf(« %f »,a) ; et on voit s’afficher 3. 141 590. Si l’on veut seulement voir s’afficher 3. 14 on peut faire printf(« %1. f »,a). Le chiffre 2 de 1 2 indique que l’on veut deux chiffres derrière 4 D’autres langages C que Code Blocks ont un défaut supplémentaire : la fenêtr 40 Bonjour. la virgule. Quant au 1 de 1. 2, il n’a pas grande Importance ici, essayez avec 10*2, et il se produira un décalage à droite de l’écriture de 3. 14 sur l’écran. On peut aussi changer le contenu de la case a, par exemple : nt a ; a=3 , a=2*a ; Cette dernière instruction indique que la nouvelle valeur de a est deux fois l’ancienne. L’affichage de a donnera 6. Ajouter un, ou incrémentation Faisons : ; i++ ; afficher i.

On voit 1 sur l’écran. Le fait d’écrire i + ajoute 1 à la valeur qu’avait i. C’est seulement un raccourci, on pourrait aussi bien faire i=i+l . De même si l’on fait i avec le contenu de i qui diminue de 1. Et cela se généralise : avec i+=2 le contenu de la case i augmente de 2, ou avec i*=2 le contenu de la case i est multiplié par 2, etc. Boucle et itération La boucle for (1=0 ; i<10 ; i++) indique que la variable i va aller e O à 9 en augmentant de 1 chaque fois (à cause du i++, qui peut s'écrire si l'on préfère i=i+l, ce qui indique qu'à chaque étape le nouvel i est rancien augmenté de 1.

Imaginons que l’on veuille afficher sur l’écran les 10 premiers nombres entiers, de O à 9. On fait : utilise pour cela une variable de cumul, qui vaut O au départ. Puis on lance une boule qui à chaque fois ajoute un nombre entier à cumul. A la fin, cumul contient la somme demandée. {int i, cumul, N ; N=IO ; c’est un exemple cumul=O ; ;i ; i++) cumul + i ; (ou si l’on veut cumule cumul+l , printf(« %d », cumul) ;

Première source d’erreurs, si l’on oublie de mettre cumul à O au départ, on sera surpris des résultats complètement faux que l’on obtiendra, car le langage C est très 5 Si ron fait : ; ) printf(« »,i) ; printf(« »,i) ; on verra s’afficher les nombres de O à 9, car la boucle for porte seulement sur le premier printf, puis on verra s’afficher 10 à cause du deuxième printf, celui-ci étant en dehors de la boucle. A remarquer qu’après la boucle for avec iz10, i prend la valeur finale 10. libre • si l’on ne dit rien, cumul va quand même contenir quelque chose, pour nous n’importe quoi. Calcul de factorielle soit ! 0 0