Langage de Programmation C
Introduction Générale
DR. HASNA ELALAOUI
[Link]@[Link]
DR. HASNA ELALAOUI 1
Contexte général
Introduction
générale Notion d’algorithme
Notion de programme et de programmation
Langage de programmation
Détails sur la partie
Le langage C
Historique
Avantages
Environnement de travail et fonctionnement
Premier programme en C
Simulation
DR. HASNA ELALAOUI 2
Discussion…
Que signifie ‘programmer’ ou ‘programmation’ pour vous?
A quoi sert la programmation?
Des exemples de programmes?
Différence entre algorithme et programme?
DR. HASNA ELALAOUI 3
Contexte général
Rédaction
Enoncé du Programme Programme Résultat
des cahiers Algorithme
problème source exécutable final
de charge
Spécification Analyse Programmation Compilation Exécution
expliquer à la «machine» comment elle doit s'y prendre
concevoir (et écrire) des algorithmes: séquence d’instructions
qui décrit comment résoudre le problème
DR. HASNA ELALAOUI 4
Contexte général
Rédaction des Résultat final
Enoncé du Programme Programme
cahiers de Algorithme
problème source exécutable (Programme)
charge
Spécification Analyse Programmation Compilation Exécution
Traduire l’algorithme en un langage compris par la machine
Ecrire des programmes dans un ou plusieurs fichiers
exécutés par l’ordinateur
DR. HASNA ELALAOUI 5
Notion d’algorithme
Un algorithme est une description complète et détaillée
des actions à effectuer et de leur enchaînement (consécution) pour arriver à un résultat donné
C’est un pseudo-langage conçu pour résoudre les problèmes sans aucune contrainte due aux langages de
programmation et aux spécificités de la machine.
Ce pseudo-langage sera ensuite traduit et codé dans le langage de programmation désiré.
Début
Instructions
Fin
DR. HASNA ELALAOUI 6
Notion de programmes et de programmation
Programmer = Réaliser des programmes informatiques
Programme = ensemble d’instructions consécutives pouvant être exécutées par la machine (ordinateur)
pour effectuer une tâche
Contrainte = Doit être compréhensible par la machine
Exemples
la calculatrice est un programme
traitement de texte est un programme (logiciel word)
les jeux vidéo sont des programmes
DR. HASNA ELALAOUI 7
Langage de programmation - 1
Types de langages
Bit = 0 ou 1 avec 8 bits = 1 octet
Langage machine : La machine ne comprend que le langage binaire (suite de 0 et 1 appelés bit)
Exemple: la machine arrive une suite de la forme 0110001110110111000
Problématique
Comment communiquer facilement avec une machine sans utiliser le langage binaire?
Exemple: Comment dire à une machine d’exécuter une instruction de type ‘calculer 8-5’ ?
Solution
Langage haut niveau: Langage facilement compréhensible car proche du langage humain « anglais »
Un langage de programmation comme le langage C est un langage de haut niveau
Il permet, grâce à des outils, de traduire des instructions du langage humain en langage machine
DR. HASNA ELALAOUI 8
Langage de programmation - 2
Traduction en binaire
Langage humain Langage de programmation compréhensible par la
traduit le langage humain machine
Calcule 8-5 en un langage simplifié
0110001110110111000
Pseudo-code
Code source Exécutable
(algorithme)
Compilation par un compilateur
DR. HASNA ELALAOUI 9
Langage de programmation - 3
Récapitulatif
La machine ne comprend que le langage binaire
Un langage de haut niveau est un langage proche du langage humain
Un langage de programmation est un langage permettant d’écrire du code source
C
C++
Java
Python…
Les langages de programmation diffèrent en niveau: certains comme python sont de haut niveau, d’autres comme C sont un peu
plus bas niveau
Code source = code d’un programme écrit dans un langage de haut niveau
Compilateur = programme qui permet de traduire un langage de haut niveau en langage binaire
Compilateur diffère d’un langage à l’autre et d’un système à un autre (compilateur Microsoft # compilateur GNU)
Exécutable = le programme binaire créé par le compilateur (extension .exe sous windows)
DR. HASNA ELALAOUI 10
Langage C - Historique
CPL/BCPL
Langage Algol Langage C Langage C++
Langage B
En 1972, Dennis M. Ritchie a conçu le Langage C pour développer une version portable du système d’exploitation
UNIX.
En 1978, le duo Brian W. Kernighan et Dennis M. Ritchie a publié la définition classique du langage
Remarque: Le langage C++ n’est pas meilleur que le langage C mais utilise juste une approche différente (approche
orientée objet)
C et C++ ne sont pas des langages concurrents. Ce sont juste deux manières de programmer assez différentes.
DR. HASNA ELALAOUI 11
Langage C - Avantages
Universel : très répandu dans le monde, le langage C permet aussi bien la programmation système
que la programmation de divers applications (scientifiques, de gestion,...).
Près de la machine : permet un accès simple et direct aux fonctions internes de la machine
Indépendant de la machine : peut être utilisé sur n’importe quel système avec un compilateur C.
Portable : il est possible d’utiliser le même programme sur d’autres compilateurs.
Près de la
Universel Rapide
machine
Indépendant
Portable Extensible
de la machine
DR. HASNA ELALAOUI 12
Environnement de travail et fonctionnement - 1
Etape 1 : éditeur de code
On utilise un éditeur de texte pour écrire le programme.
L'éditeur nous permet de conserver notre code sur un fichier, sur un disque.
Etape 2 : compilateur
Le compilateur traduit le code de haut-niveau (C) que nous avons écrit en un langage de bas-niveau
(langage machine) compréhensible par la machine. Le fichier où est stocké le code de bas niveau est
appelé fichier objet (.o).
Etape 3 : générateur des liens (Linker)
L‘éditeur de liens ("linker") réunit les codes objets produits par le compilateur de même que les
ressources existantes (librairies). Le résultat de l'éditeur de liens est un fichier exécutable.
DR. HASNA ELALAOUI 13
Environnement de travail et fonctionnement - 2
Compiler ou compilation c’est transformer un code en un langage machine (binaire/hexadécimal)
pour que la machine puisse l'exécuter.
DR. HASNA ELALAOUI 14
Environnement de travail et fonctionnement - 3
Pour programmer en langage C, il existe deux possibilités:
• Utiliser les outils séparément: un éditeur de texte, un compilateur et un
générateur de liens.
• Utiliser un environnement de développement (IDE) regroupant les 3 à la
fois
• Code blocks: gratuit et fonctionne sous plusieurs systèmes d’exploitation
• Visual C++ de Microsoft : payant et fonctionne sous Windows
• Xcode: idéal pour la programmation sous MacOS
• Dev C++: Gratuit, rapide et simple IDE de développement C et C++
DR. HASNA ELALAOUI 15
Environnement de travail et fonctionnement - 4
1. la barre d'outils
2. la liste des fichiers du projet
3. la zone principale : c'est là où sera écrit le code
en langage C
4. la zone de notification : les erreurs de
compilation s'affichent si le code comporte
des erreurs.
DR. HASNA ELALAOUI 16
Premier programme en C – 1
Directives de préprocesseur
Les premières lignes du code commençant par #
Inclusion des fichiers d’entête (fichiers avec extension .h)
Définitions des constantes avec #define
Définition des variables globales
Définition des signatures des fonctions
Exemple
DR. HASNA ELALAOUI 17
Premier programme en C – 2
Fonction main
Fonction principale des programmes en langage C
Elle se trouve obligatoirement dans tous les programmes
Les lignes à l’intérieur de la fonction sont appelées « instructions » (une commande donnée à la machine)
Toute instruction se termine obligatoirement par un point-virgule (;)
La première ligne printf("Hello world!\n"); demande à afficher le message « Hello world! » à l'écran.
La dernière ligne return 0; indique qu'on arrive à la fin de la fonction main et demande de renvoyer la valeur 0.
Exemple
DR. HASNA ELALAOUI 18
Premier programme en C – 3
Fonction main
Fonction principale des programmes en langage C
Elle se trouve obligatoirement dans tous les programmes
Les lignes à l’intérieur de la fonction sont appelées « instructions » (une commande donnée à la machine)
Toute instruction se termine obligatoirement par un point-virgule (;)
La première ligne printf("Hello world!\n"); demande à afficher le message « Hello world! » à l'écran.
La dernière ligne return 0; indique qu'on arrive à la fin de la fonction main et demande de renvoyer la valeur 0.
Exemple
DR. HASNA ELALAOUI 19
Simulation
DR. HASNA ELALAOUI 20
Fin du chapitre 1
DR. HASNA ELALAOUI 21