Vous êtes sur la page 1sur 11

Algorithmique et programmation 1 Chapitre1

Chapitre 1 : Démarche de résolution des


problèmes et notions de base

Vue d’ensemble
Ce chapitre est une introduction à l’algorithmique. Il définit les notions de base de
l’algorithmique et de la programmation. C’est la brique de base pour la compréhension du
reste du cours.

Objectifs spécifiques
A la fin de ce chapitre, les étudiants auront les connaissances nécessaires pour :
 Connaître la notion et l’utilité d’un algorithme ainsi que sa structure générale,
 Donner les étapes de l’activité de programmation,
 Connaitre les caractéristiques d’un algorithme,
 Connaître la structure d’un programme en C et les étapes de sa création.

Pré-requis
Néant

Volume horaire
3 heures

Eléments du contenu
 Définition d’un algorithme,
 Définition de l’algorithmique,
 Définition d’un programme,
 Les étapes de résolution d’un problème,
 Caractéristiques d’un algorithme,
 Etapes de création d’un programme en C,
 Structure d’un programme en C.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 1


Algorithmique et programmation 1 Chapitre1

Introduction
L’informatique est une automatisation de l’information, plus exactement un traitement
automatique de l’information.

L’information, ici, désigne tout ce qu’on peut traiter par l’ordinateur (texte, nombre, image,..).
Pour pouvoir traiter cette information, on doit fournir à l’ordinateur la suite d’actions à
effectuer dans un langage compréhensible par la machine. Il s’agit de la programmation.

On désigne par algorithmique l’ensemble des activités logiques qui relèvent des algorithmes ;
en particulier, en informatique, cette discipline désigne l'ensemble des règles et des
techniques qui sont impliquées dans la définition et la conception des algorithmes.

Le mot vient du nom du mathématicien d'origine perse, Al Khuwarizmi, qui, au IXe siècle
écrivit le premier ouvrage systématique sur la solution des équations linéaires et quadratiques.
Dans le cas général, l’algorithmique s’effectue au moyen de calculs.

1. Définitions

1.1. Définition d’un algorithme

Activité : On va calculer la moyenne générale d’un étudiant en matière d’algorithmique.


Pour s’exécuter, ce programme nécessite :
 qu’on lui fournisse pour chaque étudiant, les notes du devoir surveillé, la note de
l’examen final et les coefficients : ce sont les données.
 En retour, le programme va fournir la moyenne cherchée : c’est le résultat.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 2


Algorithmique et programmation 1 Chapitre1

Les étapes d’une telle analyse sont les suivantes :


 Fixer les objectifs du programme
 Etablir la liste des données
 Etablir la liste des opérations à exécuter
 Les ordonner
Cette description constitue un algorithme.

 L’algorithme est une suite ordonnée et fixe d’actions ou d’instructions en utilisant


un nombre fini de données afin de résoudre un problème donné et trouvé un
résultat connu et cela indépendamment des données.

1.2. Définition de l’algorithmique


L’algorithmique est la logique d’écrire des algorithmes.
Pour pouvoir écrire des algorithmes, il faut :
 connaître la résolution manuelle du problème,
 connaître les capacités de l’ordinateur en termes d’actions élémentaires qu’il peut
exécuter et la logique d’exécution de ces instructions.
L’algorithmique recouvre l’ensemble des activités qui font passer d’un problème à un
algorithme.

1.3. Notion de programme


Un programme est un résultat de la traduction d’un algorithme en utilisant un langage compris
par l’ordinateur, sachant qu’il existe une multitude de langage de programmation tel que C,
C++, Pascal, Delphi…
Le mot programmation recouvre l’ensemble des activités qui font passer d’un problème à un
programme.
Un programme est un texte constitué d’un ensemble de directives, appelées instructions, qui
spécifient :
 les opérations élémentaires à exécuter
 la façon dont elles s’enchaînent.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 3


Algorithmique et programmation 1 Chapitre1

2. Démarche de programmation
Il s’agit des étapes de résolution d’un problème.
A partir de l’énoncé d’un problème, il faut généralement passer par les phases suivantes :
 Comprendre l’énoncé du problème
 Décomposer le problème en sous problèmes plus simple à résoudre
Par exemple, un programme de gestion de scolarité comportera un module
inscription, un module examen, un module diplôme, etc.
 Associer à chaque sous problème, une spécification :
 Les données en entrées
 Les données résultantes
 La démarche à suivre pour arriver au résultat en partant d’un ensemble
de données.
 Elaboration d'un algorithme qui résout ce problème.

Figure 1- Démarche de réalisation d'un programme

Pour éviter de saisir à chaque fois les mêmes données, certaines informations doivent être
”archivées” sur une mémoire.
 Le programme y accèdera alors directement.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 4


Algorithmique et programmation 1 Chapitre1

La démarche de programmation se déroule en deux phases : Analyse et Traduction.

Figure 2- Phases de réalisation d'un programme

2.1. L’analyse du problème


L’analyse d’un problème peut être définie comme étant la succession de trois étapes, dont les
résultats vont être par la suite utilisés pour le développement de l’algorithme :
 Identifier les données (entrées) du problème et leurs types.
 Identifier les résultats (sorties) recherchés par l’algorithme et leurs types.
 Décrire le principe de la résolution à utiliser pour pouvoir transformer (ou utiliser) les
données afin de générer les résultats requis.
Cette étape d’analyse du problème aboutit à un procédé de résolution appelé algorithme.

Une approche modulaire consiste à décomposer le problème initial en sous-problèmes plus


simples à résoudre appelés modules.

2.2. Traduction
On traduit dans le langage de programmation choisi le résultat de la phase précédente.

Si l’analyse a été menée convenablement, cette opération se réduit à une simple transcription
systématique de l’algorithme selon la grammaire du langage.

3. Structure d’un algorithme


Un algorithme comporte généralement deux parties :
 Partie déclarative : elle contient l’entête, la déclaration des constantes, des nouveaux
types et celle des variables.
 Partie corps de l’algorithme : elle consiste en une séquence d’actions faisant appel à
des opérations de base de l’ordinateur.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 5


Algorithmique et programmation 1 Chapitre1

Syntaxe :

Algorithme « nom de l’algorithme »


Const Partie déclarative
{Liste des constantes avec leurs valeurs}
Types
Type1 = definition_type
Var
{Liste des variables suivies par leurs types}

Début
Partie corps de
{Séquence d’actions} l’algorithme
Fin

Une action peut être :


 Action d’affectation ou,
 Action d’entrée- sortie ou,
 Action de contrôle conditionnelle simple ou à choix multiple ou,
 Action de répétition.

Remarques
 Les nouveaux types doivent être déclarés dans la partie « Type ».
 Toute variable utilisée dans l’algorithme doit être préalablement déclarée.
 Les instructions placées entre « Début » et « Fin » forment le corps principal de
l’algorithme.
 Seules les parties « Entête » et « Corps » de l’algorithme sont obligatoires.
 L’indentation qui consiste à insérer des tabulations avant des objets déclarés et les
instructions offre une meilleure lisibilité de l’algorithme et le rend, par conséquent,
plus facile à comprendre et corriger.

4. Caractéristiques d’un algorithmique


L'algorithme est un moyen pour le programmeur de présenter son approche du problème à
d'autres personnes. En effet, un algorithme est l'énoncé dans un langage bien défini d'une suite
d'opérations permettant de répondre au problème.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 6


Algorithmique et programmation 1 Chapitre1

Un algorithme doit donc être :

 Lisible : l'algorithme doit être compréhensible même par un non informaticien.

 De haut niveau : l'algorithme doit pouvoir être traduit en n'importe quel langage de
programmation, il ne doit donc pas faire appel à des notions techniques relatives à un
programme particulier ou bien à un système d'exploitation donné.
 Précis : chaque élément de l'algorithme ne doit pas porter à confusion, il est donc
important de lever toute ambiguïté.
 Concis : un algorithme ne doit pas dépasser une page. Si c'est le cas, il faut
décomposer le problème en plusieurs sous problèmes.

 Structuré : un algorithme doit être composé de différentes parties facilement


identifiables.

5. Etapes de création d’un programme en C


La création d’un programme en C suit les étapes suivantes :
 Saisie/Edition du programme,
 Compilation,
 Edition des liens.

5.1. Edition du programme


L’édition du programme ou « saisie » consiste à créer à partir d’un clavier du texte d’un
programme => programme source.
Ce texte sera conservé dans un fichier => fichier source.
Chaque système possède ses propres conventions de dénomination des fichiers : Un fichier:
nom+extension

5.2. Compilation
Elle consiste à traduire le programme source (ou le contenu du fichier source) en langage machine
en faisant appel à un programme nommé compilateur.

L’opération de compilation se fait en deux étapes:


 Traitement par le préprocesseur: qui exécute les directives qui le concerne (commençant
par #include, #define),
 La compilation: traduction en langage machine du texte en langage C fourni par le
préprocesseur.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 7


Algorithmique et programmation 1 Chapitre1

Un préprocesseur : un programme qui est exécuté automatiquement avant la compilation et qui


transforme un fichier source à partir d’un certain nombre de directives.
 Les directives sont écrites sur des lignes distinctes du reste du programme, elles sont
introduites par #: #include, #define
 Les diverses possibilités offertes par le préprocesseur:
 Incorporation de fichiers source (#include)
 Définition de symboles et de macros (#define)
 Compilation conditionnelle
Le résultat de la compilation porte le nom de module objet.

5.3. Edition des liens


Le module objet créé par le compilateur n’est pas directement exécutable. Il lui manque les
différents modules objet correspondant aux fonctions prédéfinies utilisées par le programme
(printf, scanf, etc).
C’est le rôle de l’éditeur de lien d’aller rechercher dans la bibliothèque standard les modules
objets nécessaires. Le résultat de l’édition de liens est un programme exécutable, c.-à-d un
ensemble autonome d’instructions en langage machine.
Si ce programme exécutable est rangé dans un fichier, il pourra ultérieurement être exécuté sans
qu’il soit nécessaire de faire appel à un quelconque composant de l’environnement de programme
en C.

6. Structure d’un programme en C


Un programme écrit en langage C aura la structure suivante :

[Directives au préprocesseur] Partie déclarative


[Déclaration des variables globales]
[Déclaration des fonctions]
[Commentaires]
type main (arguments)
{
Partie corps du programme
[Déclaration des variables]
[Commentaires]
instructions
}

Le programme comporte deux parties : Les déclarations et le corps du programme.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 8


Algorithmique et programmation 1 Chapitre1

 Partie 1 : Les déclarations


Cette partie contient la déclaration des fonctions des bibliothèques (bibliothèque standard
ou autre) par inclusion de fichiers fournis avec le langage et peut comprendre des
déclarations des variables « globales ».
La première instruction #include <stdio.h> est une directive au compilateur dont le
but est de réaliser l'inclusion mentionnée : ici, l'inclusion des fonctions d'entrée/sortie
intégrées à la bibliothèque standard.
On peut également faire appel à d'autres bibliothèques, par exemple une bibliothèque
mathématique. Dans ce cas, l'inclusion dans le code par #include <math.h> devra
s'accompagner d'une prise en compte explicite de la bibliothèque à la compilation.
Cette partie peut contenir des définitions de fonctions qui seront utilisées par
l'intermédiaire de la fonction principale main.

Les directives seront prises en compte avant la traduction (compilation du programme).


Ces directives doivent être écrites à raison d’une par ligne et elles doivent
obligatoirement commencer en début de ligne.
D’une manière générale, il est préférable de placer les directives au début.

Exemple :
#include<stdio.h>
#define NB 5

 Ces directives demandent d’introduire (avant compilation) des instructions


situées dans le fichier stdio.h et de remplacer le symbole NB par 5.

Lors de l’appel d’une fonction prédéfinie, il est nécessaire d’incorporer un tel fichier,
nommé « fichier en-tête », qui contient des déclarations appropriées concernant cette
fonction stdio.h pour printf et scanf. Ces déclarations permettront au compilateur
d’effectuer des contrôles sur le nombre et le type des arguments mentionnés lors de
l’appel de la fonction.
Un même fichier en-tête contient des déclarations relatives à plusieurs fonctions.
En général, il est indispensable d’incorporer stdio.h.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 9


Algorithmique et programmation 1 Chapitre1

 Partie 2 : Le corps du programme


Tout programme C doit comporter au moins une fonction : C’est la fonction
principale main. Cette fonction est celle utilisée par le système pour exécuter le
programme. L’exécution du programme commence par un appel à cette fonction. Le
programme principal est délimité par des accolades.

Exemple :
#include <stdio.h>
//Ceci est un commentaire sur une seule ligne
int main(void)
{
printf("Hello world\n") ;
/*Ceci est
un commentaire sur plusieurs lignes
*/
return 0 ;
}

La fonction main peut ne pas retourner de valeur, dans ce cas de figure, main doit être
précédée du type void et l'instruction return ne recevra aucune valeur ou sera absente. Par
convention, la valeur retournée est 0 lorsque l'exécution du programme s'est bien passée.
Les instructions constituent le corps du programme. Elles sont plus ou moins complexes
et nombreuses selon les programmes. Chaque instruction se termine par un point-virgule
et peut s’étendre sur un nombre quelconque de lignes, et une même ligne peut comporter
plusieurs instructions.
Les instructions situées entre les accolades forment un « bloc ». Un bloc peut lui-même
contenir d’autres blocs.

Il est à noter que le langage C autorise la présence de commentaires dans les programmes. Il
s’agit de textes explicatifs destinés aux lecteurs du programme et qui n’ont aucune incidence
sur sa compilation.
Ils sont placés entre // si les commentaires sont sur une seule ligne, ou placés entre /* et */ si
les commentaires sont sur plusieurs lignes.
Ils peuvent apparaître à tout endroit du programme.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 10


Algorithmique et programmation 1 Chapitre1

Application:
#include <stdio.h>
void main()
{
printf(« Première séance \n Algorithmique et programmation ») ;
}

Exécution :
Première séance
Algorithmique et programmation

En résumé, un programme C est composé par :


 les directives : Ce sont des lignes qui commencent par # et qui seront gérées dans le
cadre d’une phase de pré-compilation,
 main() : en-tête : Elle précise que ce qui sera décrit à sa suite est le programme
principal (main),
 Le programme principal est délimité par des accolades,
 Les instructions situées entre les accolades forment un bloc,
 Chaque instruction doit se terminée par un point-virgule.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 11

Vous aimerez peut-être aussi