Vous êtes sur la page 1sur 6

M.

NDIAYE Babacar
LANGAGE C / 1ER ANNEE
babacar.ndiayepro07@gmail.com
77 144 02 91

CHAPITRE I : INTRODUCTION A LA
PROGRAMMATION

INTRODUCTION

L'informatique s’intéresse à la mise en œuvre de méthodes scientifiques pour


traiter l'information au moyen d'ordinateurs. Elle enrichit notamment les
domaines suivants :
• Gestion des entreprises et les échanges financiers
• Communications de toutes sortes
• Contrôle des robots dans les usines et la conception de machines
• L'intelligence artificielle : la compréhension des images, de la vidéo, du
langage, de la robotique
• Synthèse d'images pour le cinéma ou la télévision
• Reconnaissance de formes sur des images satellites ou médicales
• Traitement du langage naturel et la déduction automatique
• Calculs scientifiques ou les techniques complexes
Outre ses aspects appliqués, l'informatique bénéficie d'un support théorique
important qui ne cesse de se consolider. Les théoriciens essaient, par exemple,
de découvrir des limites intrinsèques à ce qu'il est possible de faire
efficacement par ordinateur, et de résumer les phénomènes de l'informatique
sous forme de lois et de théorèmes.

I-1. Notion d’Algorithme

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.

I-2. Langage de programmation

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.

I-2-1. Langage compilé

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

I-2-2. Langage interprété.

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é.

I-3. Structures de données

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.

En programmation informatique, une structure de données peut être sélectionnée ou conçue


pour stocker des données de manière à pouvoir manipuler ces dernières à l’aide de
plusieurs algorithmes. Chaque structure de données contient des informations sur la valeur des
données, les relations entre elles et les fonctions applicables.

Il existe une forte dépendance entre structures de données et programmes :


– influence sur la simplicité du programme
– influence sur l’efficacité du programme

Caractéristiques des structures de données

Les structures de données sont souvent classées d’après leurs caractéristiques :

• 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.

Types de structures de données

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 :

• Tableau. Un tableau stocke un ensemble d’éléments dans des emplacements de mémoire


contigus. Les éléments de même type sont stockés ensemble afin de faciliter le calcul de
leur emplacement ou leur extraction. La longueur d’un tableau peut être fixe ou variable.
• Pile. Une pile stocke un ensemble d’éléments en suivant l’ordre linéaire dans lequel les
opérations sont appliquées. Par exemple, dernier entré, premier sorti (LIFO, Last In First
Out) ou premier entré, premier sorti (FIFO, First In First Out).
• File. Une file stocke un ensemble d’éléments de façon similaire à une pile, mais l’ordre
des opérations ne peut être que de type premier entré, premier sorti.
• Liste chaînée. Une liste chaînée stocke un ensemble d’éléments de façon linéaire.
Chaque élément ou nœud d’une liste chaînée contient un élément de données ainsi
qu’une référence, ou lien, vers l’élément suivant de la liste.
• Arbre. Un arbre stocke un ensemble d’éléments sous une forme hiérarchique abstraite.
Chaque nœud est relié aux autres et peut contenir plusieurs sous-valeurs appelées
enfants.
• Graphe. Un graphe stocke un ensemble d’éléments de façon non linéaire. Il se compose
d’un ensemble fini de nœuds, appelés sommets, et de lignes, les arêtes, qui relient les
sommets entre eux. Les graphes permettent notamment de représenter des systèmes
réels, comme des réseaux informatiques.

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

Vous aimerez peut-être aussi