Licence CC BY-NC-SA

Le langage C

Dernière mise à jour :

Ce tutoriel a été initialement rédigé sur le feu site Progdupeupl par Mewtow, Mathuin, paraze, informaticienzero et Taurre, sous licence CC BY-NC-SA.

Vous souhaitez apprendre à programmer, mais vous ne savez pas comment vous y prendre ? Vous connaissez déjà le C, mais vous avez besoin de revoir un certain nombre de points ? Ou encore, vous êtes curieux de découvrir un nouveau langage de programmation ? Si oui, alors permettez-nous de vous souhaiter la bienvenue dans ce cours de programmation consacré au langage C.

Pour pouvoir suivre ce cours, aucun prérequis n’est nécessaire : tout sera détaillé de la manière la plus complète possible, accompagné d’exemples, d’exercices et de travaux pratiques.

Remerciements

Avant de commencer, nous souhaitons remercier plusieurs personnes :

  • Mewtow pour sa participation à la rédaction et à l'évolution de ce cours ainsi que pour ses nombreux conseils ;
  • Pouet_forever et SofEvans pour leur soutien lors des débuts de la rédaction ;
  • Dominus Carnufex pour son suivi minutieux et sa bienveillance face à nos (nombreuses) fautes de français ;
  • Karnaj pour ses suggestions et corrections ;
  • toute l’équipe de PdP et de ZdS ;
  • tous ceux qui, au fil du temps et de la rédaction, nous ont apporté leurs avis, leurs conseils, leurs points de vue et qui nous ont aidés à faire de ce cours ce qu’il est aujourd’hui ;
  • et surtout vous, lecteurs, pour avoir choisi ce cours.

Les bases du langage C

  1. Introduction à la programmation

    1. Avant-propos

    2. La programmation, qu’est-ce que c’est ?

    3. Le langage C

    4. L’algorithmique

  2. Rencontre avec le C

    1. Windows

    2. GNU/Linux, *BSD et autres Unixoïdes

    3. Mac OS X

    4. Notre cible

    5. Première rencontre

    6. Les commentaires

  3. Les variables

    1. Qu’est-ce qu’une variable ?

    2. Déclarer une variable

    3. Les représentations octales et hexadécimales

  4. Manipulations basiques des entrées/sorties

    1. Les sorties

    2. Intéragir avec l'utilisateur

  5. Les opérations mathématiques

    1. Les opérations mathématiques de base

    2. Les expressions

    3. Sucre syntaxique

    4. Exercices

  6. Tests et conditions

    1. Les booléens

    2. Les opérateurs de comparaison

    3. Les opérateurs logiques

  7. Les sélections

    1. La structure if

    2. L'instruction switch

    3. L'opérateur conditionnel

  8. TP : déterminer le jour de la semaine

    1. Objectif

    2. Première étape

    3. Correction

    4. Deuxième étape

    5. Correction

    6. Troisième et dernière étape

    7. Correction

  9. Les boucles

    1. La boucle while

    2. La boucle do-while

    3. La boucle for

    4. Imbrications

    5. Boucles infinies

    6. Exercices

  10. Les sauts

    1. L'instruction break

    2. L’instruction continue

    3. Boucles imbriquées

    4. L'instruction goto

  11. Les fonctions

    1. Qu'est-ce qu'une fonction ?

    2. Définir et utiliser une fonction

    3. Les prototypes

    4. Variables globales et classes de stockage

    5. Exercices

  12. TP : une calculatrice basique

    1. Objectif

    2. Préparation

    3. Correction

  13. Découper son projet

    1. Portée et masquage

    2. Diviser pour mieux régner

    3. Les fichiers d'en-têtes

  14. La gestion d'erreurs (1)

    1. Détection d'erreurs

    2. Prévenir l'utilisateur

    3. Un exemple d'utilisation des valeurs de retour

Agrégats, mémoire et fichiers

  1. Les pointeurs

    1. Présentation

    2. Déclaration et initialisation

    3. Utilisation

    4. Pointeurs génériques et affichage

    5. Exercice

  2. Structures

    1. Définition, initialisation et utilisation

    2. Structures et pointeurs

    3. Portée et déclarations

    4. Un peu de mémoire

  3. Les tableaux

    1. Les tableaux simples (à une dimension)

    2. Les tableaux multidimensionnels

    3. Exercices

  4. Les chaînes de caractères

    1. Qu'est ce qu'une chaîne de caractères ?

    2. Définition, initialisation et utilisation

    3. Afficher et récupérer une chaîne de caractères

    4. Lire et écrire depuis et dans une chaîne de caractères

    5. Les classes de caractères

    6. Exercices

  5. TP : l'en-tête <string.h>

    1. Préparation

    2. Correction

    3. Pour allez plus loin : strtok

  6. L'allocation dynamique

    1. La notion d'objet

    2. Malloc et consoeurs

    3. Les tableaux multidimensionnels

  7. Les fichiers (1)

    1. Les fichiers

    2. Les flux : un peu de théorie

    3. Ouverture et fermeture d'un flux

    4. Écriture vers un flux de texte

    5. Lecture depuis un flux de texte

    6. Écriture vers un flux binaire

    7. Lecture depuis un flux binaire

  8. Les fichiers (2)

    1. Détection d'erreurs et fin de fichier

    2. Position au sein d'un flux

    3. La temporisation

    4. Flux ouverts en lecture et écriture

  9. Le préprocesseur

    1. Les inclusions

    2. Les macroconstantes

    3. Les macrofonctions

    4. Les directives conditionnelles

  10. TP : un Puissance 4

    1. Première étape : le jeu

    2. Correction

    3. Deuxième étape : une petite IA

    4. Correction

    5. Troisième et dernière étape : un système de sauvegarde/restauration

    6. Correction

  11. La gestion d'erreur (2)

    1. Gestion de ressources

    2. Fin d'un programme

    3. Les assertions

    4. Les fonctions strerror et perror



Ce cours n'est pas encore terminé, une troisième partie viendra s’y adjoindre d’ici quelques temps.

Ainsi s’achève ce cours, mais pas votre parcours dans le monde de la programmation ! En effet, même si vous avez appris certaines choses, vous ne connaissez pas tout : le C est un langage fabuleux qui réserve bien des surprises. Pour continuer votre apprentissage, voici quelques derniers conseils :

  • Soyez curieux : fouillez sur Internet pour découvrir de nouvelles méthodes, approfondissez celles que vous connaissez, renseignez-vous, testez de nouveaux outils, etc.
  • Entrainez-vous : c’est le meilleur moyen de progresser. Faites des projets qui vous tiennent à cœur, mettez en œuvre des algorithmes connus, réalisez des exercices, etc.
  • Lisez des codes produits par d’autres personnes : découvrez comment elles procèdent, apprenez d’elles de nouvelles techniques ou façons de faire et progressez en suivant leurs conseils. Vous pouvez par exemple commencer en visitant les forums de ce site.
  • Enfin, le plus important : amusez-vous ! ;)

25 commentaires

C'est agrégat en français, il y a une erreur dans le titre. Elle est probablement aussi dans le contenu.

Sinon c'est cool de voir ce tuto sortir, j'en suivais déjà l'évolution sur PdP.

Édité par anonyme

+4 -1
Staff

Merci pour ce tuto ! Par curiosité, sur quoi portera la troisième partie ?

thwx

Le contenu n'est pas encore arrêté, mais elle devrait traiter des sujets suivants : le préprocesseur, la représentation des types et plus précisémment celle des entiers et des flottants, les opérateurs de manipulation de bits, les limites des types et les dépassements de capacité, les énumérations et les unions, les pointeurs de fonction, les fonctions à nombre variable d'arguments, les jeux de caractères et les encodages des chaînes de caractères, le débogage avec gdb et peut-être deux ou trois autres choses comme les sauts non locaux.

Elle comportera également un TP qui consistera sans doute en la création d'un petit allocateur de mémoire à partir d'un tableau alloué statiquement. ;)

+1 -0
Staff

J'ai dansé en voyant le tutoriel! :-D

"Dans C"

Ozmox

Police de l'humour ! Monsieur, vous êtes placé en garde à vue à partir de cet instant pour une durée minimale de 24h, reconductible, en raison de mauvaise blague sur lieu public en présence de forces de l'ordre. Vous avez le droit de garder le silence, toute blague prononcée pourra être retenu contre vous et servira lors de votre passage devant un juge d'obstruction.

J'ai dansé en voyant le tutoriel! :-D

"Dans C"

Ozmox

Police de l'humour ! Monsieur, vous êtes placé en garde à vue à partir de cet instant pour une durée minimale de 24h, reconductible, en raison de mauvaise blague sur lieu public en présence de forces de l'ordre. Vous avez le droit de garder le silence, toute blague prononcée pourra être retenu contre vous et servira lors de votre passage devant un juge d'obstruction.

informaticienzero

J'exige un avocat de qualité espèce de vieux policier! :pirate:

Édité par Ozmox

Éternel curieux

+0 -0

Je viens de voir la mention comme quoi je faisais partie de l'équipe initiale. C'est vrai mais je n'ai eu qu'une contribution super minime dans la partie sur les structures, qui a été refaite en bien mieux depuis par Lucas-84 si je me souviens bien. Pas la peine de me citer donc :)

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte