Académique Documents
Professionnel Documents
Culture Documents
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.
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
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.
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.
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.
Syntaxe :
Début
Partie corps de
{Séquence d’actions} l’algorithme
Fin
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.
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.
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.
Exemple :
#include<stdio.h>
#define NB 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.
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.
Application:
#include <stdio.h>
void main()
{
printf(« Première séance \n Algorithmique et programmation ») ;
}
Exécution :
Première séance
Algorithmique et programmation