L’algorithmique et la programmation

Support de cours l’algorithmique et la programmation, tutoriel & guide de travaux pratiques algorithmes en pdf.

Langages de programmation

Le langage utilisé par le processeur, est appelé langage machine. Il s’agit d’une suite de 0 et de 1 (du binaire). Toutefois le langage machine est difficilement compréhensible par l’humain. Ainsi il est plus pratique de trouver un langage intermédiaire, compréhensible par l’homme, qui sera ensuite transformé en langage machine pour être exploitable par le processeur. L’assembleur est le premier langage informatique qui ait été utilisé. Celui-ci est encore très proche du langage machine mais il permet déjà d’être plus compréhensible. Toutefois un tel langage est tellement proche du langage machine qu’il dépend étroitement du type de processeur utilisé (chaque type de processeur peut avoir son propre langage machine). Ainsi un programme développé pour une machine ne pourra pas être porté sur un autre type de machine (on désigne par le terme « portable » un programme qui peut être utilisé sur un grand nombre de machines). Pour pouvoir l’utiliser sur une autre machine il faudra alors parfois réécrire entièrement le programme!
Il y a trois catégories de langage de programmations : les langages interprétés et les langages intermédiaires et les langages compilés.

Langage interprété

Un langage de programmation est par définition différent du langage machine. Il faut donc le traduire pour le rendre intelligible du point de vue du processeur. Un programme écrit dans un langage interprété a besoin d’un programme auxiliaire (l’interpréteur) pour traduire au fur et à mesure les instructions du programme.
Exemples de langages interprétés : Le langage HTML (les pages web), le langage Maple (calcul mathématique), Prolog (Intelligence artificielle), etc.

Langage compilé

Un programme écrit dans un langage dit « compilé » va être traduit une fois pour toutes par un programme annexe (le compilateur) afin de générer un nouveau fichier qui sera autonome, c’est-à-dire qui n’aura plus besoin d’un programme autre que lui pour s’exécuter (on dit d’ailleurs que ce fichier est exécutable).
Un programme écrit dans un langage compilé a comme avantage de ne plus avoir besoin, une fois compilé, de programme annexe pour s’exécuter. De plus, la traduction étant faite une fois pour
toute, il est plus rapide à l’exécution. Toutefois il est moins souple qu’un programme écrit avec un langage interprété car à chaque modification du fichier source il faudra recompiler le programme pour que les modifications prennent effet.
D’autre part, un programme compilé a pour avantage de garantir la sécurité du code source. En effet, un langage interprété, étant directement intelligible (lisible), permet à n’importe qui de connaître les secrets de fabrication d’un programme et donc de copier le code voire de le modifier. Il y a donc risque de non-respect des droits d’auteur. D’autre part, certaines applications sécurisées nécessitent la confidentialité du code pour éviter le piratage (transaction bancaire, paiement en ligne, communications sécurisées, …).
Exemples de langages compilés : Le langage C (Programmation système), le langage C++ (Programmation système objet), le Cobol (Gestion) etc.

Langages intermédiaires

Certains langages appartiennent en quelque sorte aux deux catégories précédentes (LISP, Java, Python, ..) car le programme écrit avec ces langages peut dans certaines conditions subir une phase de compilation intermédiaire vers un fichier écrit dans un langage qui n’est pas intelligible (donc différent du fichier source) et non exécutable (nécessité d’un interpréteur). Les applets Java, petits programmes insérés parfois dans les pages Web, sont des fichiers qui sont compilés mais que l’on ne peut exécuter qu’à partir d’un navigateur Internet (ce sont des fichiers dont l’extension est .class).
Toutefois, à peu près tous les langages de programmation sont basés sur le même principe: Le programme est constitué d’une suite d’instructions que la machine doit exécuter. Celle-ci exécute les instructions au fur et à mesure qu’elle lit le fichier (donc de haut en bas) jusqu’à ce qu’elle rencontre une instruction (appelée parfois instruction de branchement) qui lui indique d’aller à un endroit précis du programme. Il s’agit donc d’une sorte de jeu de piste dans lequel la machine doit suivre le fil conducteur et exécuter les instructions qu’elle rencontre jusqu’à ce qu’elle arrive à la fin du programme et celui-ci s’arrête.

Historique des langages

• Langage de bas niveau (proche du langage machine):
– Jusqu’en 1945 : langage binaire
– 1950 : langage assembleur
• Langage de haut niveau (proche des langages naturels): Depuis 1955:
– Programmation procédurale : Fortran, Cobol, Basic, Pascal, C, Ada…
– Programmation orienté objet : SmallTalk, C++, Delphi, Java…
– Programmation logique : Prolog…
– Et beaucoup d’autres…
• Evolution:
o Programmation impérative (fonction): – Exemples : Pascal, C, …
o Programmation orientée objet (POO) :
– Exemples : SmallTalk, Java, C++, …

La notion de fichier

Dans un programme les instructions et données résident en mémoire centrale pour être exécutées, Les programmes et les données sont sauvegardées dans des fichiers qui portent des extensions spécifiques du langage :
o Les données et les programmes sont stockés dans des fichiers
o Un fichier est identifié par un nom et une extension (fichier.doc, pgcd.c, texte.tex, etc.) o Un fichier est caractérisé par des attributs:
taille, date de création, date de modification, etc.…
o L’exploitation d’un fichier par une application se fait par l’intermédiaire du système d’exploitation qui accomplit les opérations logiques de base suivantes:
ouvrir, fermer un fichier lire, écrire dans un fichier
o L’utilisateur peut créer, détruire, organiser, lire, écrire, modifier et copier des fichiers ou des enregistrements qui les composent

La démarche de programmation et analyse descendante

La résolution d’un problème passe par toute une suite d’étapes :
• Phase d’analyse et de réflexion (algorithmique)
• Phase de programmation
– choisir un langage de programmation
– traduction de l’algorithme en programme
– programme (ou code) source
– compilation : traduction du code source en code objet
– traduction du code objet en code machine exécutable, compréhensible par l’ordinateur
• Phase de test
• Phase d’exécution

1. Généralités sur l’Algorithmique
Introduction
L’algorithmique
Principe
Les caractéristiques d’un Algorithme
Analyse descendante
L’algorithmique et la programmation
Le but de la programmation
Langages de programmation
Pseudo langage
2. Les variables
Déclaration des variables
Noms de variables
Types de variables
3. Les Primitives
Affectation
Définition et notation
Utilisations
Lire et écrire
Données et résultats
Les objets manipulés par l’algorithme
Les tests
Les Boucles
Une méthodologie pour l’écriture d’une boucle
4. Les structures de données statiques
Tableaux à une dimension
Introduction
Notation et utilisation algorithmique
Types pour les tableaux
Quelques algorithmes utilisant les tableaux à une dimension
Tableaux à deux dimensions
Notation et définitions
Algorithmes sur les matrices
5. Les fonctions et les procédures
Introduction
Les fonctions
Introduction
Les fonctions prédéfinies
Déclaration d’une fonction
Passage d’arguments
Utilisation des fonctions
Les fonctions récursives
Les Procédures

……….

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *