Formation Langage C : Les Bases

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

Prix (Formation inter-entreprise)

1700€ HT / personne

Durée

3 jours

Dates

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

Durant ces 3 jours de formation, vous verrez les fondamentaux du langage C, et aborderez les problématiques d’une gestion granulaire de la mémoire et explorerez les principales bibliothèques de bases du langage.

Le langage C est encore à ce jour le langage de référence dans de nombreux domaines de l’informatique comme les pilotes de matériels informatiques, les applications en temps réel, les systèmes d’exploitation, les compilateurs ou encore les interpréteurs.

Ce langage procédural de bas niveau permet une gestion fine de la mémoire à travers une palette réduite de types de base et une arithmétique solide des pointeurs. Sa maîtrise facilite grandement l’acquisition des langages objets comme C++ ou C#. A ce jour, le langage C reste et demeure une référence en développement informatique.

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.

Cette formation se répartira avec environ 40% de théorie et 60 % de pratique, qui auront lieu seul et parfois en binôme.

Installation sur votre machine :
- un PC sous Windows, Linux ou Mac
- Visual C de Microsoft, CLion de Jetbrains
- un Compilateur C propre à chaque OS (msvc, gcc ou clang).

Covid-19: Nous restons ouverts. Cette formation est disponible à distance.

Les objectifs

  • Comprendre l’organisation d’un programme écrit en langage C
  • Maîtriser la syntaxe et les mots-clés du langage C
  • Savoir résoudre les problèmes de compilation et d’édition de liens
  • Maintenir un programme existant écrit en C
  • Savoir 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
  • 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

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

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

Mise en pratique :
- 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

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 :
- 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

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é

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

Mise en pratique :
- Ecriture de fonctions pour vérifier qu’un tableau à 2 dimensions est magique
- Ecriture de fonctions pour engendrer un carré magique sur un tableau à 2 dimensions

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 :
- Ré-écriture des fonctions strlen, strcpy et strcat de la bibliothèque <string.h>
- Ecriture 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

Mise en pratique : Ré-écriture de la fonction sprintf avec les bibliothèques ci-dessus

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

Mise en pratique : Mise en œuvre d’un tableau de nombres de taille variable. Etude de cas : overflow sur des tableaux contigus

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 : 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

Le(s) formateur(s)

Yannick Cadin

Yannick Cadin

Sollicité par une maison d'édition, Yannick a prématurément quitté les bancs de l'école pour commencer à développer professionnellement. C'était en des temps très reculés, ce qui lui vaut d'être parfois traité (affectueusement) de dinosaure.

Alternant les emplois salariés (dans des secteurs d'activité très divers), la création d'entreprise et le statut libéral, il est à son compte depuis plus d'une vingtaine d'années et répartit son temps entre la programmation, l'administration système et la formation.

Il a également été relecteur, pigiste et conférencier occasionnel. (Et même prof durant un semestre à l'IUT de Laval.)

Certifié Red Hat Linux, Ubuntu, Suse, LPI, *BSD et Apple. Essentiellement pour pouvoir former, soit directement pour le compte de Red Hat Europe, soit pour intervenir au sein d'un organisme de formation agréé Canonical (l'éditeur de la distribution Ubuntu).

Il a fait sienne cette citation de Gandhi, « Vis comme si tu devais mourir demain. Apprends comme si tu devais vivre éternellement. ».
Avec toutefois l'idée que l'accumulation de connaissances est vain si l'on n'a pas à cœur de les partager. Ce qui explique un engagement sans faille dans la formation depuis presque 30 ans.

Voir son profil détaillé

Yves Duprat

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)

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 84 formations au catalogue, 1221 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

Besoin d'aide ?

Vous souhaitez discuter avec nous à propos de votre projet de formation ?
Vous voulez plus d'information sur une formation ou notre fonctionnement ?


Rappel Email

Nos forces

  • Des formations à taille humaine
  • Des formateurs passionnés
  • Des véritables workshop
Accéder au Manifeste

Nos clients

Formation Langage C : Les Bases

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

Durant ces 3 jours de formation, vous verrez les fondamentaux du langage C, et aborderez les problématiques d’une gestion granulaire de la mémoire et explorerez les principales bibliothèques de bases du langage.

Le langage C est encore à ce jour le langage de référence dans de nombreux domaines de l’informatique comme les pilotes de matériels informatiques, les applications en temps réel, les systèmes d’exploitation, les compilateurs ou encore les interpréteurs.

Ce langage procédural de bas niveau permet une gestion fine de la mémoire à travers une palette réduite de types de base et une arithmétique solide des pointeurs. Sa maîtrise facilite grandement l’acquisition des langages objets comme C++ ou C#. A ce jour, le langage C reste et demeure une référence en développement informatique.

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.

Cette formation se répartira avec environ 40% de théorie et 60 % de pratique, qui auront lieu seul et parfois en binôme.

Installation sur votre machine :
- un PC sous Windows, Linux ou Mac
- Visual C de Microsoft, CLion de Jetbrains
- un Compilateur C propre à chaque OS (msvc, gcc ou clang).

Covid-19: Nous restons ouverts. Cette formation est disponible à distance.

Les objectifs

  • Comprendre l’organisation d’un programme écrit en langage C
  • Maîtriser la syntaxe et les mots-clés du langage C
  • Savoir résoudre les problèmes de compilation et d’édition de liens
  • Maintenir un programme existant écrit en C
  • Savoir 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
  • 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

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

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

Mise en pratique :
- 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

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 :
- 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

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é

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

Mise en pratique :
- Ecriture de fonctions pour vérifier qu’un tableau à 2 dimensions est magique
- Ecriture de fonctions pour engendrer un carré magique sur un tableau à 2 dimensions

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 :
- Ré-écriture des fonctions strlen, strcpy et strcat de la bibliothèque <string.h>
- Ecriture 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

Mise en pratique : Ré-écriture de la fonction sprintf avec les bibliothèques ci-dessus

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

Mise en pratique : Mise en œuvre d’un tableau de nombres de taille variable. Etude de cas : overflow sur des tableaux contigus

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 : 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

Le(s) formateur(s)

Yannick Cadin

Yannick Cadin

Sollicité par une maison d'édition, Yannick a prématurément quitté les bancs de l'école pour commencer à développer professionnellement. C'était en des temps très reculés, ce qui lui vaut d'être parfois traité (affectueusement) de dinosaure.

Alternant les emplois salariés (dans des secteurs d'activité très divers), la création d'entreprise et le statut libéral, il est à son compte depuis plus d'une vingtaine d'années et répartit son temps entre la programmation, l'administration système et la formation.

Il a également été relecteur, pigiste et conférencier occasionnel. (Et même prof durant un semestre à l'IUT de Laval.)

Certifié Red Hat Linux, Ubuntu, Suse, LPI, *BSD et Apple. Essentiellement pour pouvoir former, soit directement pour le compte de Red Hat Europe, soit pour intervenir au sein d'un organisme de formation agréé Canonical (l'éditeur de la distribution Ubuntu).

Il a fait sienne cette citation de Gandhi, « Vis comme si tu devais mourir demain. Apprends comme si tu devais vivre éternellement. ».
Avec toutefois l'idée que l'accumulation de connaissances est vain si l'on n'a pas à cœur de les partager. Ce qui explique un engagement sans faille dans la formation depuis presque 30 ans.

Voir son profil détaillé

Yves Duprat

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)

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 84 formations au catalogue, 1221 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

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