Licence CC 0

Le langage C

Dernière mise à jour :
Auteurs :
Catégorie :
Temps de lecture estimé : 1 jour et 9 heures

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 ;
  • @Arius, @Saroupille, @amael et @Glordim pour la validation de ce cours ;
  • @Pouet_forever, SofEvans, @paraze et Mathuin pour leur soutien lors des débuts de la rédaction ;
  • @Dominus Carnufex et @patapouf pour leur suivi minutieux et leur bienveillance face à nos (nombreuses) fautes de français ;
  • @Karnaj pour ses suggestions et corrections ;
  • @Maëlan pour sa relecture attentive du chapitre sur les encodages ;
  • toute l’équipe de Progdupeupl et de Zeste de Savoir ;
  • 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. La programmation, qu’est-ce que c’est ?

    2. Le langage C

    3. Notre cible

  2. Les outils nécessaires

    1. Windows

    2. GNU/Linux et *BSD

    3. Mac OS X

    4. Première rencontre

    5. Les commentaires

  3. Les variables

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

    2. Déclarer une variable

    3. Initialiser une variable

    4. Affecter une valeur à une variable

    5. Les représentations octales et hexadécimales

  4. Manipulations basiques des entrées/sorties

    1. Les sorties

    2. Interagir 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

    4. Priorité des opérations

  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. Les structures

    1. Définition, initialisation et utilisation

    2. Structures et pointeurs

    3. Portée et déclarations

    4. Les structures littérales

    5. Un peu de mémoire

  3. Les tableaux

    1. Les tableaux simples (à une dimension)

    2. La vérité sur les tableaux

    3. Les tableaux multidimensionnels

    4. Les tableaux littéraux

    5. 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 aller plus loin : strtok

  6. L'allocation dynamique

    1. La notion d'objet

    2. Malloc et consoeurs

    3. Les tableaux multidimensionnels

    4. Les tableaux de longueur variable

  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'erreurs (2)

    1. Gestion de ressources

    2. Fin d'un programme

    3. Les assertions

    4. Les fonctions strerror et perror

Notions avancées

  1. La représentation des types

    1. La représentation des entiers

    2. La représentations des flottants

    3. La représentation des pointeurs

    4. Ordre des multiplets et des bits

    5. Les fonctions memset, memcpy, memmove et memcmp

  2. Les limites des types

    1. Les limites des types

    2. Les dépassements de capacité

    3. Gérer les dépassements entiers

    4. Gérer les dépassements flottants

  3. Manipulation des bits

    1. Les opérateurs de manipulation des bits

    2. Masques et champs de bits

    3. Les drapeaux

    4. Exercices

  4. Internationalisation et localisation

    1. Définitions

    2. La fonction setlocale

    3. La catégorie LC_NUMERIC

    4. La catégorie LC_TIME

  5. La représentation des chaînes de caractères

    1. Les séquences d'échappement

    2. Les tables de correspondances

    3. Des chaînes, des encodages

  6. Les caractères larges

    1. Introduction

    2. Traduction en chaîne de caractères larges et vice versa

    3. L'en-tête <wchar.h>

    4. <wchar.h> : les fonctions de lecture/écriture

    5. <wchar.h> : les fonctions de manipulation des chaînes de caractères

    6. L'en-tête <wctype.h>

  7. Les énumérations

    1. Définition

    2. Utilisation

  8. Les unions

    1. Définition

    2. Utilisation

  9. Les définitions de type

    1. Définition et utilisation

  10. Les pointeurs de fonction

    1. Déclaration et initialisation

    2. Utilisation

    3. Pointeurs de fonction et pointeurs génériques

  11. Les fonctions et macrofonctions à nombre variable d'arguments

    1. Présentation

    2. L'en-tête <stdarg.h>

    3. Méthodes pour déterminer le nombre et le type des arguments

    4. Les macrofonctions à nombre variable d'arguments

  12. Les sélections génériques

    1. Définition et utilisation

  13. T.P. : un allocateur statique de mémoire

    1. Objectif

    2. Première étape : allouer de la mémoire

    3. Correction

    4. Deuxième étape : libérer de la mémoire

    5. Correction

    6. Troisième étape : fragmentation et défragmentation

    7. Correction

Annexes

  1. Index

    1. Index



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 ! ;)

55 commentaires

Reprise du dernier message de la page précédente

@lorenzodelmedico : désolé du retard de ma réponse, il semble que je sois pas notifié quand un commentaire est publié… Quoi qu’il en soit, merci de ton retour, je vais tâcher de corriger cela auy plus vite. :)

#JeSuisArius

+0 -0

Équipe technique

@thglife on y travaille !

Pour l’immense majorité des tutoriels c’est déjà le cas. Pour celui-ci, nous avons découvert des petits problèmes, il faut dire que le tuto est grand et pousse notre moteur de génération de PDF dans ses retranchements, mais on va y arriver ! La preuve, le premier des problèmes a été réglé aujourd’hui, nous continuons pour fournir les dernières corrections d’ici peu.

En attendant, je te propose d’utiliser l’ebook, qui est tout aussi utilisable. On fait de notre mieux pour régler les soucis du PDF de ce tuto.

Édité par artragis

+3 -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