Formation Langage C : Les bases

(4)*

Apprenez à maîtriser les bases du langage C lors de cette formation dédiée sur 3 jours !

Formation Langage C : Les bases

Description

Cette formation Langage C vous permettra d’acquérir les bases de la programmation système pour créer des applications fiables.

Vous découvrirez les mécanismes essentiels comme la gestion de la mémoire, les pointeurs et les structures avancées, tout en travaillant sur des exercices concrets.

Pendant 3 jours, vous apprendrez à :

  • Comprendre l’organisation et la syntaxe d’un programme C
  • Résoudre les erreurs de compilation et d’édition de liens
  • Utiliser efficacement les types, structures de contrôle et fonctions
  • Manipuler les pointeurs et la mémoire dynamique
  • Écrire un jeu d’essais pertinent pour tester vos fonctions
  • Exploiter les bibliothèques standards pour enrichir vos programmes

Tout au long de la formation, vous mettrez vos acquis en pratique avec des ateliers ludiques comme la réécriture de fonctions standards (strlen, strcpy, sprintf), la manipulation de tableaux, ou encore la création d’un carré magique.

Public

Cette formation s‘adresse à des programmeurs et programmeuses expérimentées maîtrisant déjà un langage de programmation compilé, interprété ou alors ayant des bases solides en algorithmique.

Les objectifs

  • Comprendre l’organisation d’un programme écrit en langage C
  • Maîtriser la syntaxe et les mots-clés du langage C
  • Résoudre les problèmes de compilation et d’édition de liens
  • Maintenir un programme existant écrit en C
  • Définir un jeu d’essais sans complaisance pour tester ses fonctions
  • Connaître et utiliser à bon escient les bibliothèques standards de ce langage

Pré-requis

  • Bien connaître un langage de programmation compilé et interprété
  • A défaut, avoir de solides bases en algorithmique
  • Avoir Visual C de Microsoft et CLion de Jetbrains installés sur votre machine
  • Avoir un Compilateur C propre à chaque OS (msvc, gcc ou clang) installé sur votre machine
  • Ordinateur portable à apporter

Le programme de la formation Langage C : Les bases

Jour 1 : Posons les bases !

  • Introduction
    • Historique du langage, normes et versions
    • Environnement et outils
    • Structure et organisation d'un programme en langage C
    • Le point d’entrée principal et ses paramètres
    • Présentation de la syntaxe de base, les commentaires de ligne, de bloc
    • Présentation de la chaîne de production d’un programme écrit en langage C
  • Types de données
    • Les types de bases en langage C. Entiers signés / non signés
    • Les variables, les constantes
    • Introduction à la portée des variables
    • Les conversion de types, implicites/explicites
    • Les opérateurs de comparaison, arithmétiques, d’affectations et de logiques
  • Structures de contrôles
    • La notion de bloc d’instruction
    • Les structures de choix : simple, multiple, l’opérateur ternaire.
    • Les 3 types de boucles

Mise en pratique :
- Travail d’analyse et de modification sur un exemple simple de programme C
- Travail sur les paramètres entrants de la fonction principale
- Exploration sur le stockage interne des types en langage C, leur dynamique et leurs limites respectives sur les opérations arithmétiques
- Exemple de conversions
- Le jeu « c’est plus, c’est moins »
- Le test de recrutement « fizzbuzz »

Jour 2 : Allons plus loin !

  • Types de données avancés
    • Les tableaux simples, à plusieurs dimensions
    • Les tableaux de chaînes de caractères
    • Les structures de données
    • Les énumérations
  • Les fonctions
    • Le triptyque : déclaration, définition et appel d’une fonction
    • Prototypage et signatures
    • Paramètres formels, effectifs, passage de paramètres par valeur ou par adresse
    • Mécanisme d’appel de fonctions et valeur retournée
    • Récursivité
    • Définir un jeu d’essais exhaustifs pour valider la fonction
    • Présentation des principales fonctions internes d’E/S
    • Préconisation sur l’organisation d'un programme C sous forme de fonctions
  • Les pointeurs en langage C
    • Intérêts, contexte d’utilisation
    • Mise en œuvre, déclaration, comparaison, déréférencement
    • Algorithmique des pointeurs
    • Utilisation avancée : pointeurs de tableaux, de structures, de pointeurs de fonctions

Mise en pratique :
- Calcul de moyenne et d’écart-type sur un tableau de nombres à virgule
- Recherche dichotomique dans un tableau ordonné
- Inversion d’un tableau ordonné
- Écriture de fonctions pour vérifier qu’un tableau à 2 dimensions est magique
- Écriture de fonctions pour engendrer un carré magique sur un tableau à 2 dimensions
- Ré-écriture des fonctions strlen, strcpy et strcat de la bibliothèque <string.h>
- Écriture d’une fonction de tri sur un tableau de nombres, avec une fonction spécifiant la relation d’ordre

Jour 3 : Bibliothèques, mémoire et structures avancées

  • La bibliothèque standard de C
    • Présentation des bibliothèques de référence (assert.h, limits.h, math.h, signal.h, stdargs.h, stddef.h, stdio.h, stdlib.h, string.h, time.h)
    • Bibliothèques introduites par la norme C99 (stdbool.h, stdint.h, fenv.h)
  • Organisation de la mémoire
    • La pile (stack)
    • Les variables locales
    • Le tas (heap)
    • L’allocation dynamique, la réallocation et la libération de la mémoire.
    • Le segment de données
    • Les variables statiques, globales
    • Précision sur la portée d’une variable, la notion de bloc
  • Structures avancées
    • La définition de nouveau type avec le mot-clé typdef
    • Les champs de bits
    • Les unions
    • Les fichiers en langage C
    • Les structures et pointeurs dans les paramètres et valeurs de retours des fonctions
    • Précisions sur les pointeurs de fonctions

Mise en pratique :
- Ré-écriture de la fonction sprintf avec les bibliothèques ci-dessus
- Mise en œuvre d’un tableau de nombres de taille variable. Étude de cas : overflow sur des tableaux contigus
- Création des structures et des fonctions permettant de manipuler une pile de chaines de caractères. Mise en œuvre de la fonction interne C qsort

Télécharger le programme

Formations associées

Formateurs

Yves DUPRAT

Yves est développeur Python freelance depuis 15 ans. Son activité professionnelle Python se répartit à part égale, entre du développement et de la transmission de savoir aussi bien en écoles d'ingénieur qu'en formation auprès des entreprises. Il intervient aussi sur des sessions de formation en C, C++ et SQL.

Ses principales missions Python en développement concernent soit de l'écriture de script backoffice, soit des missions d'audit en vue de refactoring et/ou d'optimisation de code.

Yves est aussi créateur et organisateur du meetup Python de Lille (Lille.py)

FAQ

Nos formations sont éligibles à plusieurs dispositifs de financement, selon votre situation. Human Coders est certifié Qualiopi, ce qui permet la prise en charge par des organismes comme Pôle emploi, votre OPCO ou encore le CPF (Compte Personnel de Formation) pour certaines formations.

Pour en savoir plus, veuillez consulter notre page : Comment financer votre formation ?

Oui, la formation peut être proposée en présentiel ou en distanciel. Pour les inter-entreprises, les modalités (présentiel ou à distance) sont fonction de la session.

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Les formations se déroulent toujours en petit groupe de 3 à 6 stagiaires. Nous souhaitons que les formateurs et formatrices puissent passer un maximum de temps avec chacun·e.

Voici une journée type :

  • 9h : vous êtes accueillis par votre formateur·rice autour d'un petit déjeuner (croissants, pains au chocolat, jus de fruit, thé ou café...)
  • 9h30 : la formation commence
  • 12h30 : pause de midi. Le·a formateur·rice mangera avec vous. C'est l'occasion d'avoir des discussions plus informelles.
  • 14h : reprise de la formation
  • 18h : fin de la journée

8 raisons de participer à une formation Human Coders

  • Satisfaction client élevée : Un taux de statisfaction de 4,6/5 depuis 2012 (sur 1719 sessions réalisées). 99% des participants se disent satisfaits de nos formations
  • Approche pédagogique unique : Des formations en petit groupe, des formateurs passionnés et expérimentés, de véritables workshops... (Plus d'infos sur notre manifeste)
  • Catalogue de formations complet : 184 formations au catalogue, de quoi vous accompagner sur tout vos projets
  • Écosystème dynamique : Nous accompagnons les dev depuis 13 ans avec des initiatives comme Human Coders News, les Human Talks, le podcast ou encore notre serveur Discord
  • Financement facilité : Organisme certifié Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • Références clients prestigieuses : De nombreux clients qui nous font confiance depuis des années
  • Accompagnement sur mesure : Nous vous proposons un accompagnement personnalisé par nos consultants pour vous aider dans vos projets au-delà de la formation
  • Valorisation professionnelle : Remise d'un diplôme, d'une attestation et d'une certification, suivant les formations effectuées, que vous pourrez afficher sur vos CV et réseaux sociaux

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012