Le langage C : un outil de création
Véritable tous terrains souple et maniable du développement informatique, la programmation C se pratique et s'apprend un peu comme un instrument de musique, une langue, un sport, un jeu vidéo (RPG par exemple) .
Il s'agit d'un outil de création extrêmement puissant, exploitable dans d'innombrables domaines, des jeux vidéo aux applications professionnelles.
Un langage très simple, comme indiqué dans la vidéo de présentation, le C se réduit à quelques outils (variables, sauts, branchement, boucles, fonction, ensembles de variables, pointeurs.).
En outre le C constitue la racine de très nombreux autres langages : C++, Objective-C, Perl, Python, Java, PHP, Ruby, Javascript, C#, Groovy, Scala etc. Le C s'intègre généralement dans les formations d'écoles d'ingénieurs, de licences et bachelors d'informatique.
Des Publics Variés à l'origine de cette formation C en vidéo
La formation proposée ici provient directement de classes préparatoires scientifiques (ECE / école centrale d'électronique Paris), d'école d'ingénieurs (ISAT, Nevers), de premières années de licence d'informatique (Universités Paris 8, cs2i Bourgogne).
Elle a également donné lieu à des ateliers de programmation en licence de lettres modernes (université d'Artois), en école d'art (ESAAB Nevers) et auprès de collégiens en partenariat avec le réseau des bibliothèques municipales de la Nièvre (La charité sur Loire, Cosne sur Loire, Nevers).
Ce cours est actuellement publié aux éditions ENI, accessible en librairie, sur Amazon, à la Fnac.
Comment Apprendre le langage C ?
- Comprendre
La première étape consiste à comprendre et expérimenter le fonctionnement de chacun des outils.
Ensuite, il s'agit de les mettre en œuvre et de les combiner afin de réaliser des projets. Mais il y a un piège redoutable : comprendre n'est pas savoir faire ! Seule la pratique permet d'acquérir de la maîtrise. - Pratiquer
En général, le mieux est de commencer par des petits tests effectués avec chaque nouvel outil étudié : comment je fais pour avoir une variable dans mon programme ? Comment je lui affecte une valeur ? Comment j'écris un if ? Comment réagit-il à l'exécution ? etc.
Se questionner : qu'est-ce que ça fait si ... ? Puis, testez pour voir et comprendre le pourquoi lorsque c'est accessible. - Se lancer dans des projets.
Au départ, les projets sont très modestes ; souvent ce sont plutôt des exercices courts.
Très vite, la réalisation de jeux est possible. La réalisation de jeux vidéo est très formatrice.
Ce tuto vous fournira de nombreux exercices. Choisissez ceux qui vous plaisent ou inventez-en à votre idée.
Quelques conseils pour suivre ce cours en ligne
- Le premier cours sur les variables simples est incontournable. Il ne contient rien de difficile mais beaucoup de détails l'alourdissent. A cause de cela, il peut paraître fastidieux. Heureusement, ça devient naturel très rapidement.
- Suivez les vidéos en refaisant les programmes au fur et à mesure, vous pouvez aussi retrouver le code en téléchargement.
- Apportez des modifications personnelles en mettant alors la vidéo sur pause, puis reprenez la vidéo après.
- Faites des tests qui vous viennent à l'esprit, et en cas de problème regardez bien ce que le compilateur vous dit (soulignements en rouge lors de l'écriture du code, avertissements et erreurs avec la compilation). Ensuite, reprenez le cours là où vous l'avez laissé.
- Résolvez vous-même les exercices : ce n'est pas la solution qui compte, ce qui compte c'est de trouver une solution.
Cependant, comme il est parfois intéressant d'étudier une solution vous trouverez les corrigés des exercices dans les fichiers texte à télécharger (ce sont les corrigés fournis avec le livre ). - L'important c'est d'avancer. Inutile de rester bloqué quelque part trop longtemps sur un détail apparemment insoluble. N'hésitez pas à continuer. Vous trouverez des occasions de résoudre le problème dans les séquences suivantes.
Vous pouvez aussi me contacter via la plateforme ou utiliser votre moteur de recherche préféré.
La compétence ne s'achète pas, elle ne se transmet pas non plus, elle s'acquiert. En réalité, vous recréez le C en vous-même : ce sera votre C, il ne sera plus anonyme; apprendre c'est créer.
Table des matières de cette formation Langage C (durée : 19h41m)
-
[NIVEAU1] Pour travailler avec Code::Blocks
- 1 Installer CodeBlocks gratuit 00:01:39
- 2 Faire un projet sous CodeBlocks gratuit 00:02:55
- 3 Premier programme sous CobeBlock gratuit 00:05:34
- 4 Plusieurs projets dans un seul espace de travail gratuit 00:03:20
-
[N1] Pour travailler avec Visual Studio (conseillé)
- 1 Installer Microsoft Visual Studio (ici installation de Visual Studio 2017 mais c'est identique pour Visual Studio 2019. Les autres vidéos sont faites avec VS2019) gratuit 00:03:08
- 2 Faire un projet sous visual studio gratuit 00:03:24
- 3 Premier programme sous Visual Studio gratuit 00:10:43
- 4 Plusieurs projets dans un seul espace de travail et modèles de projet (templates) gratuit 00:05:11
-
[N1] Variables simples
- 1 Types et déclaration des variables (avec mise en pratique) gratuit 00:17:20
- 2 La fonction printf et ses formats (avec mise en pratique) gratuit 00:09:28
- 3 Les fonctions scanf et scanf_s pour entrer des valeurs dans la console (avec mise en pratique) 00:08:31
- 4 Codage ascii des caractères (avec mise en pratique) 00:08:02
- 5 Obtenir les accents (é,è, à etc.) dans la console 00:04:39
- 6 Les constantes 00:09:55
- 7 Le type booléen en C (apport de la norme C99) 00:06:29
- 8 Troncatures et plages de valeur des variables (avec mise en pratique) 00:14:43
-
[N1] Opérations
- 1 Faire des opérations arithmétiques (avec mise en pratique) gratuit 00:06:05
- 2 Opérateurs de post et pré incrémentation ou décrémentation (avec mise en pratique) 00:10:38
- 3 Conversions entre types différents, opérateur de cast (avec mise en pratique) 00:10:22
- 4 Priorités des opérateurs (se retrouvent dans les mises en pratique précédentes) 00:08:16
- 5 Nombres aléatoires (avec mise en pratique) 00:15:34
- Scanf : précisions, certaines peuvent aider à éviter des erreurs fréquentes. Attention toutefois à ne pas perdre trop de temps avec scanf. A voir une fois. 00:14:03
- Scanf_s : une précision bien spécifique et une introduction aux chaines de caractères. Présentation de la fonction fgets. 00:11:55
-
[N2] Sauts conditionnels
- 1 Blocs d'instructions : aborde visibilité et durée de vie des variables, les opérateurs de comparaison et l'opérateur unaire gratuit 00:14:42
- 2 Le if seul (avec mise en pratique) 00:09:30
- 3 Le if suivi de else (avec mise en pratique) 00:01:58
- 4 Forme contractee du ifsuivi de else 00:06:03
- 5 Le if suivi d'un ou plusieurs else if et avec ou non un else final (avec mise en pratique) 00:03:12
-
[N2] Branchements
- 1 Le switch avec les case et break (avec mise en pratique) 00:08:23
-
[N2] Multiconditions ET, OU
- 1 La conjonction ET, opérateur && (avec mise en pratique) 00:12:25
- 2 La conjonction OU, opérateur || (avec mise en pratique) 00:12:05
- 3 Dans une expression le ET est prioritaire sur le OU (avec mise en pratique) 00:08:31
-
[N3] Boucles
- 1 Boucle while (avec mise en pratique) 00:08:11
- 2 Boucle do-while (avec mise en pratique) 00:05:55
- 3 Boucle for (avec mise en pratique) 00:06:54
- 4 Comparaison des trois boucles 00:07:13
- 5 Boucles imbriquées. Deux exemples : contrôler le temps d'exécution et base algorithmique de John connor pour craquer des cartes bleues dans terminator 2 00:06:20
-
[N3] Utilisations typiques de boucles
- 1 Menu utilisateur simple, non graphique (avec mise en pratique ) 00:13:38
- 2 Commencer un jeu : réaliser une boucle d'événements simple et bouger un joueur avec les flèches du clavier (comprend une mise en pratique) 00:29:57
- 3 Quelques indications pour aider à la mise en place d'ennemis mobiles 00:06:51
-
[N4] Fonctions
- 1 Principes des fonctions, introduction descriptive 00:03:16
- 2 Fonctions sans retour et sans paramètre (avec mise en pratique) 00:13:20
- 3 Fonctions avec retour et sans paramètre (avec mise en pratique) 00:06:53
- 4 Fonctions sans retour et avec paramètre (avec mise en pratique) 00:12:41
- 5 Fonctions avec retour et avec paramètre (avec mise en pratique) 00:15:14
- 6 Généraliser du code grace à l'écriture de fonctions (avec mise en pratique) 00:27:22
- 7 Transformer des entrées en sorties : pointeurs en paramètre de fonction, le passage par référence (avec mise en pratique) 00:11:54
- 8 Courte introduction à la récursivité 00:05:13
-
[N4] Gestions des variables
- 1 Visibilité et durée de vie des variables (avec mise en pratique) 00:12:51
- 2 Style, commentaires et indentations (avec mise en pratique) 00:08:00
-
[N5] Structures
- 1 Définir et déclarer une structure, mot clé struct (avec mise en pratique) 00:16:30
- 2 Utiliser un typedef (avec mise en pratique) 00:04:52
- 3 Copier des structures (avec mise en pratique) 00:05:42
- 4 Structures et fonctions (avec mise en pratique) 00:30:10
- 5 Structures et fonctions, exemple orienté jeux vidéo (avec mise en pratique) 00:34:15
-
[N5] Tableaux
- 1 Tableaux statiques à une dimension (avec mise en pratique) 00:21:21
- 2 Tableaux statiques à plusieurs dimensions ( (avec proposition de mise en pratique) 00:17:11
- 3 Exemples d'utilisation des tableaux : chaines de caractères, images bitmap ou tile mapping, classement et localisation d'une information (avec proposition de mise en pratique) 00:25:46
- 4 Tableaux et structures : des tableaux dans des structures et surtout des tableaux de structures (avec mise en pratique) 00:10:02
- 5 Tableaux à une dimension en paramètre de fonction (avec mise en pratique) 00:19:42
- 6 Tableaux statiques à plusieurs dimensions en paramètre de fonction (avec mise en pratique) 00:20:46
-
[N5] Unions
- 1 Principe et fonctionnement de l'union. 00:10:25
- 2 Union discriminée, cas général 00:13:17
- 3 Unions discriminés, exemple d'une station météo 00:11:26
- 4 Unions discriminés, un tableau d'ennemis de différents types dans un jeu 00:15:19
-
[N5] Etudes de cas : deux automates cellulaires
- 1 Réaliser un automate cellulaire 00:12:41
- 2 Amélioration graphique : augmenter la vitesse d'affichage 00:11:58
- 3 Répartir un programme sur plusieurs fichiers sources 00:15:28
- 4 Simulation d'un feu de forêt 00:19:53
-
[N5] Etude de cas : une base de jeu vidéo dans l'univers console
- 1 Présentation de l'étude 00:01:26
- 2 Etude aventures I : un joueur se déplace dans un monde. 00:25:42
- 3 Etude aventures II : plusieurs niveaux, chaque niveau introduit des sols différents avec des difficultés spécifiques de déplacement. 00:28:58
- 4 Etude aventures III : le joueur doit ramasser des trésors à chaque niveau. Les trésors sont rangés dans un ordre précis et répartis sur les différentes natures de terrains. 00:32:05
- 5 Etude aventures IV : des ennemis mobiles viennent géner le joueur. 00:38:00
-
[N5] Propositions pour des premiers projets
- Quelques idées de projets à réaliser. 00:08:23
-
[N6] Pointeurs : le fonctionnement
- 1 Quatre opérateurs dédiès aux pointeurs (&, *, ->, [ ]) 00:11:01
- 2 Allocation dynamique, fonction malloc 00:04:45
- 3 La valeur NULL 00:06:25
- 4 Pointeur générique void* 00:07:06
- 5 Pointeurs et constantes 00:04:55
- 6 Pointeurs de fonctions 00:12:47
-
[N6] Pointeurs : utilisation en allocation dynamique
- 1 Allouer un tableau à une dimension 00:09:45
- 2 Allouer un tableau à deux dimensions (une matrice) 00:06:47
- 3 Allouer un tableau de n dimensions 00:13:39
- 4 Tester les limites mémoire imposées aux tableaux et aux paramètres de fonction 00:17:13
- 5 Solution tout pointeur : plus rapide, pas de limite mémoire hormi celle de la ram et du point de vue de l'écriture c'est assez pratique. 00:10:29
-
[N6] Pointeurs : utilisation en paramètre de fonction
- 1 Passage par référence, cas général. 00:08:50
- 2 Passage par référence d'une variable pointeur : initialiser un pointeur avec un appel de fonction via un passage par référence du pointeur. 00:18:02
- 3 Passage de fonctions en paramètre de fonction 00:06:04
-
[6] Pointeurs : utilisation pour relier des structures
- 1 Relier une structure à une autre 00:06:49
- 2 Lier réciproquement deux structures différentes 00:08:19
- 3 Chainer des structures de même type 00:11:14
-
[N6] Fichiers
- 1 Créer ou ouvrir un fichier et le refermer. 00:11:06
- 2 Chemins d'accès à un fichier relatif ou absolu. 00:04:54
- 3 Lire et écrire dans un fichier binaire 00:13:51
- 4 Lire et écrire dans un fichier texte 00:16:21
- 5 Déplacements dans un fichier 00:13:36
- 6 Sauvegarder des éléments dynamiques. Trois parties : Sauvegarder un élément unique, Sauvegarder un tableau dynamique, Sauvegarder un tableau dynamique de pointeurs., 00:35:29
- Fichiers sourcestélécharger
- QCMaccéder
- Certificat
Formateur : Frédéric Drouillon
-
Avec quelles versions de logiciels ce tuto est-il compatible ?Microsoft Visual Studio 2019 community, codeblocks 17.12
-
Quel est le niveau requis pour suivre ce tuto ?débutant