Initiation à l'algorithmique

Introduction à l'algorithmique

On distingue 2 catégories de langages.

Langage Machine :

Ce sont des langages utilisant des mots formés uniquement de 0 et de 1. Ces langage sont l’avantage d’être compréhensible par la machine et le fonctionnement interne de la machine.

Ils sont néanmoins, utilisés par des programmes nécessitant des exécutions rapides.

Langage Evolué : 

Dans le but de faciliter l’accès de l’Informatique à un plus grand nombre de personne, on a été amené à créer des langages dont les mots sont proches d’une langue parlée (Souvent Anglais).

Ces langages présentent l’avantage d’être universels dans la mesure ou ils ne dépendent pas de la machine qui les utilise. Ces langages évolués ont été généralement crée en fonction d’une orientation donnée.

Langage et Traducteurs

Tout programme écrit en langage évolué doit être traduit en langage machine afin de pouvoir être exécuté.

On distingue 2 catégories de traducteurs ( programme spécial qui permet le passage du langage évolué vers le langage machine ).

a.Interpréteurs

Les Interpréteurs permettent de traduire et d’exécuter chaque ligne du programme source, les Interpréteurs sont souvent utilisés dans la mise au point d’un programme.

b.Compilateurs 

Le programme source est traduit entièrement en langage machine ce qui permet d’obtenir un programme Objet, quant celui-ci est dépourvu d’erreurs, il est alors exécuté. 

Faut-il être matheux pour être bon en algorithmique?

La maîtrise de l’algorithmique nécessite deux qualités:

  • Intuition
  • il faut être méthodique et rigoureux 

a- Intuition

il faut avoir une certaine intuition, car aucune recette ne permet de savoir a priori quelles instructions permettront d’obtenir le résultat voulu. C’est là, si l’on y tient, qu’intervient la forme « d’intelligence » requise pour l’algorithmique. 

l’intuition n’est finalement que de l’expérience tellement répétée quele raisonnement, au départ laborieux, finit par devenir « spontané ».
b- il faut être méthodique et rigoureux. 

il faut systématiquement semettre mentalement à la place de la machine qui va les exécuter

cet apprentissage est long, et demande des heures de travail patient. Aussi, dans un premier temps, évitez de sauter les étapes : la vérification méthodique, pas à pas, de chacun de vos algorithmes représente plus de la moitié du travail à accomplir... et le gage de vos progrès.

Pourquoi apprendre l’algorithmique pour apprendre à programmer ? En quoi a-t-on besoin d’un langage spécial, distinct des langages de programmation compréhensibles par les ordinateurs ? 

  • Parce que l’algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage. 
  • Apprendre l’algorithmique, c’est apprendre à manier la structure logique d’un programme informatique. 

 

Avec quelles conventions écrit-on un algorithme ?

Historiquement, plusieurs types de notations ont représenté des algorithmes:

  • Algorigramme(représentation graphique)
  • Pseudo-code

a- Algorigramme

L’algorigramme est la représentation graphique de l’algorithme, il permet de représenter chaque opération élémentaire au moyen d’un symbole graphique normalisé.

Cette représentation est quasiment abandonnée, pour deux raisons:  

  • dès  que l’algorithme commence à grossir un peu, ce n’est plus pratique du tout.
  • cette représentation favorise le glissement vers un certain type de programmation, dite non structurée, que l’on tente au contraire d’éviter.

b- Pseudo-code

  • Ce mode de représentation consiste à exprimer en langage naturel, mais selon une disposition particulière et des mots choisis.
  • Ce pseudo-code est susceptible de varier légèrement d’un livre (ou d’un enseignant) à un autre. C’est bien normal : le pseudo-code, encore une fois, est purement conventionnel.
  • Le pseudo-code se prête mieux que l’algorigramme à la description des structures complexes existant dans les langages de haut niveau.


Partager ce cours avec tes amis :
 
Rédigé par Mostafa Sedoki
Computer science teacher and the founder of the e-learning platform "developpement-informatique.com", my mission is to provide high-quality courses for free to all computer science students and teachers

Cours Similaires :