Chapitre 1 - LANG C - M.NDIAYE
Chapitre 1 - LANG C - M.NDIAYE
Chapitre 1 - LANG C - M.NDIAYE
NDIAYE Babacar
LANGAGE C / 1ER ANNEE
babacar.ndiayepro07@gmail.com
77 144 02 91
CHAPITRE I : INTRODUCTION A LA
PROGRAMMATION
INTRODUCTION
Un algorithme est la description des étapes à suivre pour résoudre un problème en un nombre
fini d’étapes. Il décrit un traitement sur un certain nombre de données (éventuellement aucune).
Un algorithme s'écrit le plus souvent dans un langage proche du langage courant, appelé langage
algorithmique ou pseudo langage.
Pour être compris et exécuté par un ordinateur, un algorithme doit être traduit dans un langage
spécifique, qu’on appelle langage de programmation. On obtient ainsi ce qu’on appelle un
programme informatique qui contient l’ensemble des actions consécutives que l’ordinateur doit
exécuter. Ces actions sont appelées instructions.
Le langage utilisé par le processeur de l’ordinateur est appelé langage machine. C’est le seul
langage que l’ordinateur connaît. Un programme en langage machine est uniquement constitué
d’une suite de 0 et de 1 (du binaire) mais pour plus de « clarté » il peut être décrit en
Ingénieur Logiciels/Formateur
Analyste, Concepteur et Développeur d'Applications babacar.ndiayepro07@gmail.com
M.NDIAYE Babacar
LANGAGE C / 1ER ANNEE
babacar.ndiayepro07@gmail.com
77 144 02 91
hexadécimal.
Il est difficile de comprendre et d'écrire des programmes en langage machine.
Ainsi il est plus pratique de réaliser un programme dans un langage plus compréhensible par
l'homme et de le traduire ensuite en langage machine à l’aide d’un programme spécialisé. Selon
la méthode de traduction, on distingue les langages compilés et les langages interprétés.
Dans le cas d’un langage compilé (exemples : C, C++, OCaml, Pascal...), le programme
réalisé, appelé programme source, est traduit complètement par ce qu’on appelle un
compilateur avant de pouvoir être exécuté. La compilation génère un programme dit
exécutable, c’est-à-dire en un code binaire qu'un humain ne peut pas lire mais qui est très
facile à lire pour un ordinateur. C'est alors directement le système d'exploitation qui va
utiliser le code binaire et les données d'entrée pour calculer les données de sortie.
Ce programme généré est autonome, c’est-à-dire qu’il n’a pas besoin d'un autre programme
pour s’exécuter. Mais à chaque modification du fichier source (le programme source) il faudra
le recompiler pour que les modifications prennent effet.
Ingénieur Logiciels/Formateur
Analyste, Concepteur et Développeur d'Applications babacar.ndiayepro07@gmail.com
M.NDIAYE Babacar
LANGAGE C / 1ER ANNEE
babacar.ndiayepro07@gmail.com
77 144 02 91
Au contraire, un programme écrit dans un langage interprété (exemples : Perl, PHP, Python,
Prolog...) a besoin, pour chaque exécution, d'un programme annexe appelé interpréteur qui va
lire le code source pour traduire et faire exécuter une à une, chacune des instructions. Dans ce
cas, il n’y a pas de génération de programme exécutable.
Principales différences
On pourrait discuter très longtemps des avantages et inconvénients des différents types de
langages mais les deux points qui sont les plus intéressants sont les suivants :
Ingénieur Logiciels/Formateur
Analyste, Concepteur et Développeur d'Applications babacar.ndiayepro07@gmail.com
M.NDIAYE Babacar
LANGAGE C / 1ER ANNEE
babacar.ndiayepro07@gmail.com
77 144 02 91
• Dans un langage interprété, le même code source pourra marcher directement sur tout
ordinateur. Avec un langage compilé, il faudra (en général) tout recompiler à chaque fois
ce qui pose parfois des soucis.
• Dans un langage compilé, le programme est directement exécuté sur l'ordinateur, donc il
sera en général plus rapide que le même programme dans un langage interprété.
Une structure de données est une façon d'organiser des informations pour en faciliter la
manipulation (tableau, liste chaînée, …). C’est un format spécial destiné à organiser, traiter,
extraire et stocker des données. S’il existe plusieurs types de structures plus ou moins
complexes, tous visent à organiser les données pour répondre à un besoin précis, afin de
pouvoir y accéder et les traiter de façon appropriée.
• Linéaires ou non linéaires : cette caractéristique indique si les éléments de données sont
organisés chronologiquement, comme dans un tableau, ou de façon non ordonnée,
comme dans un graphe.
• Homogènes ou non homogènes : cette caractéristique indique si tous les éléments de
données d’un référentiel spécifique sont du même type ou de types différents.
• Statiques ou dynamiques : cette caractéristique décrit la façon dont les structures de
données sont compilées. Les structures statiques présentent des tailles, des structures et
des emplacements de mémoire fixes au moment de la compilation. Dans une structure de
données dynamique, en revanche, la taille, les structures et les emplacements de
mémoire peuvent diminuer ou s’agrandir, selon l’utilisation qui en est faite.
Ingénieur Logiciels/Formateur
Analyste, Concepteur et Développeur d'Applications babacar.ndiayepro07@gmail.com
M.NDIAYE Babacar
LANGAGE C / 1ER ANNEE
babacar.ndiayepro07@gmail.com
77 144 02 91
Le type d’une structure de données est déterminé par le type d’opération requis ou par les
algorithmes qui seront appliqués. Les types possibles sont les suivants :
Ingénieur Logiciels/Formateur
Analyste, Concepteur et Développeur d'Applications babacar.ndiayepro07@gmail.com
Seul on va plus vite, ensemble on va
plus loin