GNU/Linux Magazine Hors-série N°
Numéro
80

Le guide pour apprendre à programmer en C en 5 jours !

Temporalité
Septembre/Octobre 2015
Image v3
Le guide pour apprendre à programmer en C en 5 jours !
Article mis en avant

Résumé

Il est de la plupart des langages de programmation comme des modes. Ils surgissent, séduisent, puis s'estompent. Certains apportent cependant des avancées concrètes, que ce soit en terme d'originalité, de syntaxe, de lisibilité, de performances ou même d'approche. En effet, la diversité des langages de programmation est phénoménale, à tel point que leur classification est toujours ardue et que distinguer au premier abord le langage de programmation le plus adapté à une problématique précise est une chimère. Et cela tombe bien, car comme nous le dirait Jean-Pierre Troll, les bons développeurs ne sont pas élevés en batterie, pensent par eux-mêmes et finissent toujours par trouver le langage qui leur correspond. L'esprit curieux s'enrichira en allant découvrir les nouveautés qui s'offrent à lui. Parce que la culture libre, c'est aussi cela.

Dans ce numéro...


L'invention du langage C a été un des tournants de l'histoire informatique. Sans lui il n'y aurait probablement pas de GNU/Linux et donc, pas de GNU/Linux Magazine (ce qui est inimaginable, on est d'accord).Pourquoi ce langage est-il si important dans l'histoire de l'informatique ? Comment se différencie-t-il ? Quels sont ses concepts de base ? Et surtout, en 2015, est-ce que cela vaut encore la peine d'apprendre un tel langage ?Depuis son invention, ce langage continue à évoluer et à s'améliorer de manière continue, sans faire de bruit. Maintes fois copié, jamais égalé, il a vu et continuera de voir de nouveaux langages concurrents devenir à la mode puis passer de mode.
Entrer dans un nouveau langage n'est jamais chose simple. Alors, on va y aller progressivement. Les jours 1, 2 et 3 seront les jours clés dans votre apprentissage du C. Si vous y survivez, le reste vous paraîtra beaucoup plus simple. Le programme de ce jour consiste à mettre les mains dans le cambouis et à découvrir les concepts de base, la déclaration et l'utilisation des variables et à utiliser la bibliothèque standard.
L'algorithmique est l'art de résoudre une problématique par une succession d'instructions. De l'élégance, la simplicité et la performance de cette suite d'instructions résulte la qualité de l'algorithme. Le sujet principal du jour est l'introduction aux outils que propose C pour écrire des algorithmes et aux notions qu'ils recouvrent. Vous trouverez des conseils pratiques et saurez faire des choix simples, mais néanmoins éclairés. Comme cela s'y prête particulièrement, nous introduirons aussi les tableaux statiques et par conséquent les chaînes de caractères, de manière à compléter les connaissances acquises la veille.
Le principal enjeu de cet article consiste à présenter la notion des pointeurs, qui est une clé essentielle pour comprendre le langage C. Nous présenterons leur intérêt, dans la continuité de ce que nous avons déjà vu ainsi que ce qu'il faut savoir pour que cette notion ne reste pas confuse. Parce que sachez-le, si vous faites du C, vous serez obligé de maîtriser les pointeurs.Dans un second temps, nous allons tout naturellement voir ce que ces pointeurs nous permettent de faire : tableaux dynamiques, chaînes de caractères dynamiques, mais également structures.Il s'agit du dernier article qui présente le cœur du C et il est probablement le plus délicat et le plus important.
Aujourd'hui est un jour à marquer d'une croix blanche. Avant midi, nous aurons écrit un programme du pendu incomplet, mais fonctionnel ! C'est la récompense tant attendue après trois jours livrés corps et âme dans la tempête de la découverte du C. Ce sera en tous les cas le thème majeur de la première partie, parce que pour la suite, on va introduire une amélioration importante : aller chercher le nom d'un fichier en argument, aller l'ouvrir et lire en son sein les mots à deviner. Cela nous permettra de passer au niveau supérieur en découvrant la gestion des arguments et les descripteurs de fichiers.
Nous pouvons sans risque dire que depuis hier, nous maîtrisons suffisamment le C pour aller nous aventurer sur des terres inconnues. Certes nous ne savons pas tout. Nous n'avons pas vu l'intégralité de la bibliothèque standard ou toutes les finesses que la grammaire de C permet. Mais c'est volontaire. On ne va pas perdre de temps à montrer à quel point le langage C permet d'écrire des choses étranges qui ne font pas ce à quoi l'on pourrait s'attendre ou discuter sur les bénéfices de telle ou telle optimisation. Nous sommes là pour découvrir le C et ce qui fait qu'un langage est efficace, c'est ce que l'on peut faire avec. Alors assez avec le langage lui-même et plongeons la tête dans des problématiques concrètes : le temps, l'aléatoire et la base de données avec SQLite sont au programme aujourd'hui.
À la fin du cinquième jour, nous avons déjà une application qui fonctionne correctement et qui nous permet de jouer au Pendu, avec de nombreuses fonctionnalités supplémentaires : liste de mots lus dans un fichier, gestion des meilleurs scores sauvegardés en base de données, etc.Nous sommes maintenant capables de créer des algorithmes C simples, de manipuler des données atomiques ou structurées, mais aussi d'utiliser des bibliothèques plus complexes.En bonus, je vous propose de perfectionner cette application et de la faire passer à un niveau supérieur en lui ajoutant une IHM beaucoup plus adaptée à ce que nous avons vu jusqu'à présent.

Magazines précédents

PHP efficace
GNU/Linux-Magazine Hors-série N°79
PHP efficace
Analyse de données & Big Data
GNU/Linux-Magazine Hors-série N°78
Analyse de données & Big Data
Programmation orientée objet
GNU/Linux-Magazine Hors-série N°77
Programmation orientée objet
Securité & Linux
GNU/Linux-Magazine Hors-série N°76
Securité & Linux
Raspberry Pi
GNU/Linux-Magazine Hors-série N°75
Raspberry Pi
Les systèmes BSD
GNU/Linux-Magazine Hors-série N°74
Les systèmes BSD

Les derniers articles Premiums

Les derniers articles Premium

La place de l’Intelligence Artificielle dans les entreprises

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Sécurisez vos applications web : comment Symfony vous protège des menaces courantes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les frameworks tels que Symfony ont bouleversé le développement web en apportant une structure solide et des outils performants. Malgré ces qualités, nous pouvons découvrir d’innombrables vulnérabilités. Cet article met le doigt sur les failles de sécurité les plus fréquentes qui affectent même les environnements les plus robustes. De l’injection de requêtes à distance à l’exécution de scripts malveillants, découvrez comment ces failles peuvent mettre en péril vos applications et, surtout, comment vous en prémunir.

Bash des temps modernes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les scripts Shell, et Bash spécifiquement, demeurent un standard, de facto, de notre industrie. Ils forment un composant primordial de toute distribution Linux, mais c’est aussi un outil de prédilection pour implémenter de nombreuses tâches d’automatisation, en particulier dans le « Cloud », par eux-mêmes ou conjointement à des solutions telles que Ansible. Pour toutes ces raisons et bien d’autres encore, savoir les concevoir de manière robuste et idempotente est crucial.

Body