Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Langage C
  3. Introduction
Extrait - Langage C Maîtriser la programmation procédurale (avec exercices pratiques) (2e édition)
Extraits du livre
Langage C Maîtriser la programmation procédurale (avec exercices pratiques) (2e édition)
2 avis
Revenir à la page d'achat du livre

Introduction

Objectif : apprendre à programmer avec le C

L’objectif premier est d’apprendre à programmer, ce qui signifie maîtriser la conception algorithmique avec au minimum un langage de programmation. À cet égard, le langage C se montre particulièrement efficace pour apprendre et commencer, même si, détaché du C++, il n’aborde pas la dimension objet. De nombreux étudiants en informatique, maintenant intégrés dans un travail, nous affirment que les bases de C leur ont donné la possibilité de s’adapter assez rapidement à d’autres langages et à de nombreuses situations de développement.

Initialement influencé par le langage Fortan, le langage C, à l’origine de nombreux autres langages, procure un moyen d’acquérir un savoir-faire fondamental en programmation informatique qui va permettre de circuler facilement dans la plupart des autres techniques et langages de programmation. Le C se trouve en effet à la racine de langages très utilisés. Il est inclus dans le langage C++ et directement relié aux langages C#, Objective-C, Java, PHP, Perl, Python et JavaScript. Il se retrouve aussi indirectement dans le langage Ruby, qui relève de Perl, Python et C++, le langage Scala associé à Java, et le langage Groovy qui passe par Ruby, Perl et Python.

Alors que le C++, langage...

Contenu

Le livre s’intéresse au langage C standard.

Le code présenté est écrit en C standard. Nous nous sommes référés à la norme ISO/IEC 9899:2018 et, en théorie, ce code est portable. Seule l’utilisation de bibliothèques spécialisées comme Windows.h peut poser problème. Il faut alors trouver un équivalent chez MacOS ou sous Linux.

L’environnement de développement que nous préconisons est Visual Studio de Microsoft, dont la version Community est accessible gratuitement. Mais tout autre environnement pour le C peut être choisi, par exemple Code::Blocks issu d’une communauté libre et que nous présentons, ou encore Clion de chez JetBrains, etc.

Le parcours propose, dans un premier temps, d’installer un environnement de développement, soit Visual Studio soit Code::Blocks. L’étude du langage C débute ensuite avec les types et les instructions fondamentales nécessaires à l’écriture et la recherche d’algorithmes.

À l’issue de cela, l’ouvrage aborde les aspects plus approfondis que sont la récursivité, l’implémentation de listes chaînées dynamiques et les arbres binaires.

Le livre, en fournissant de nombreux exemples, des expérimentations diversifiées, beaucoup de précisions et d’exercices...

Librairies graphiques

Nous pouvons actuellement conseiller deux librairies graphiques :

  • Allegro 5, une librairie écrite en C pour la création de jeux vidéo. Les sites officiels sont http://alleg.sourceforge.net/ et https://www.allegro.cc/. Allegro est une très bonne librairie graphique, très puissante et complète. La communauté est active. Cependant, la prise en main n’est pas forcément évidente pour un débutant et actuellement il y a en ligne peu de documentation en français (une documentation est disponible sur le site http://www.developpez.com).

  • SFML, une librairie en C++. C’est une excellente librairie avec une documentation en ligne très fournie. Cependant, si le C est inclus dans le C++, l’inverse n’est pas vrai, ce qui peut nuire à son utilisation pour des programmes C. Cela dit, il existe un binding pour le C : CSFML. Le site officiel est : http://www.sfml-dev.org

Nous avons souhaité rester centrés sur l’étude du C dans cet ouvrage, et de ce fait l’étude d’une librairie graphique n’y figure pas. De plus, les exemples de code utiles à nos explications sont plus clairs en mode console.

Public visé

Cet enseignement est donné en premier cycle dans une école d’informatique, en général sur deux semestres de la licence. Un premier semestre est consacré à la maîtrise des fondamentaux inclus dans le langage C ainsi qu’à la programmation graphique de jeux vidéo. Lors du semestre suivant, nous approfondissons la question des pointeurs en nous orientant plutôt cette fois sur la programmation objet en C++. Le C est inclus dans le C++, cependant la logique de programmation fondée sur les fonctions s’avère différente de celle fondée sur des architectures d’objets et nous considérons qu’il est essentiel pour nos étudiants de ne pas se retrouver enfermés dans une seule approche de la programmation. Ce second semestre porte ainsi davantage sur une nouvelle approche de la programmation que sur un nouveau langage, le C++ reinterprétant et par là transformant les possibilités du C.

L’ouvrage peut être adapté à différents publics et différents niveaux en école d’ingénieurs, comme à l’université. Récemment, il a permis d’animer des ateliers "geeks" de création numérique mis en place au sein d’une médiathèque. Il s’agissait d’un public d’amateurs créatifs...

Organisation du livre

1. Chapitres

La partie qui concerne l’apprentissage du langage C et les premières armes en algorithmique est très développée. Elle regroupe les dix premiers chapitres.

Le premier chapitre aide à choisir et installer son environnement de développement avec son compilateur.

Le deuxième chapitre permet de maîtriser les différents types de variables primitives et donne le moyen de leur attribuer des valeurs et de les afficher.

Le troisième chapitre porte sur l’écriture et l’organisation d’instructions simples à partir de variables basiques et d’opérations effectuées dessus. À ce niveau, beaucoup de détails sont nécessaires et peu de conception est possible.

Le quatrième chapitre introduit la notion de bloc d’instructions, à savoir un niveau supérieur d’organisation des instructions avec les possibilités fondamentales de sauts, branchements, boucles et écriture de fonctions. À ce niveau, des problèmes algorithmiques peuvent être posés. En même temps se trouve soulevée la question du style pour l’écriture et la mise en page d’un programme.

Les cinquième et sixième chapitres exposent des types de données beaucoup plus puissants : les structures au chapitre Les structures et les tableaux au chapitre Les tableaux. Ces nouveaux types de variables permettent...

Comment apprendre à programmer ?

Du point de vue pédagogique, la réponse sur laquelle nous insistons est : par la pratique. Dans ce domaine, le savoir théorique est indissociable de l’expérimentation répétée à travers des réalisations diverses et variées et de différents niveaux. Avec le temps, la pratique seule permet d’acquérir une intuition spécifique qui permet plus facilement de repérer ou de poser des problèmes et de trouver des solutions ensuite.

1. Comprendre n’est pas savoir faire

Pour les débutants confrontés à un langage de programmation, en général, comprendre ne suffit pas. Il faut aussi savoir faire, et comprendre n’est pas savoir faire.

Pour prendre une image, c’est un peu la même situation pour apprendre à jouer d’un instrument de musique. Si un professeur ou un tutoriel vidéo vous explique comment jouer de la guitare, vous pouvez comprendre les explications, mais vous n’êtes pas devenu guitariste ni compositeur de musique. Devenir guitariste suppose de nombreuses heures de travail sur son instrument. Devenir compositeur et avoir des idées de morceaux de musique ou d’arrangements musicaux supposent également beaucoup de questionnements et de travail. C’est la même chose en programmation et en conception informatique.

Écrire un programme nécessite un minimum d’expertise des outils fondamentaux, c’est-à-dire un minimum d’expérience. En effet, l’expert est celui ou celle qui a de l’expérience, et l’expérience conduit à la maîtrise. La maîtrise, même incomplète, permet de faire des hypothèses de réalisation. Elle permet d’identifier et de poser les problèmes à résoudre afin d’inventer des solutions. En effet, trouver une solution pour résoudre un problème revient souvent à créer cette solution. Et il s’agit d’un processus d’élaboration qui nécessite de l’intuition, de la recherche et de la créativité.

C’est pourquoi, dans la perspective de savoir-faire, le livre propose trois parcours parallèles, complémentaires et solidaires entre...