Exemple

 

Qu'est-ce qu'un algorithme ?

Un algorithme est la description précise, sous forme de concepts simples, de la manière dont on peut résoudre un problème.

Un programme AlgoBox qui implémente l’algorithme d’Euclide :

 

01

VARIABLES

02

a EST_DU_TYPE NOMBRE

03

b EST_DU_TYPE NOMBRE

04

r EST_DU_TYPE NOMBRE

05

DEBUT_ALGORITHME

06

LIRE a

07

LIRE b

08

PREND_LA_VALEUR a%b

09

TANT_QUE (r!=0) FAIRE

10

DEBUT_TANT_QUE

11

PREND_LA_VALEUR b

12

PREND_LA_VALEUR r

13

PREND_LA_VALEUR a%b

14

FIN_TANT_QUE

15

AFFICHER "le pgcd est "

16

AFFICHER b

17

FIN_ALGORITHME

 

 

Algorithmique et programmation

Étapes de conception d'un programme informatique

    1 – identifier le problème : quelle(s) donnée(s), quel(s) résultat(s) ?

    2 – organiser les actions : écrire l'algorithme (pseudo-code, organigramme)

        - réfléchir aux informations à manipuler

        - analyser le problème et le décomposer éventuellement en sous-problèmes

        - rendre l'algorithme compréhensible et efficace - penser à l'utilisateur

    3 – Traduire cet algorithme en langage de programmation

    4 – Compiler le programme pour qu'il puisse être exécutable

Un langage de programmation permet à un humain d'écrire un code pouvant être analysé par une machine puis transformé en un programme informatique.

Un programme informatique est une suite d'opérations prédéterminées pouvant être exécutées par une machine.

 

Définition d'un algorithme

Remarque

— On désigne par algorithmique ou algorithmie l'ensemble des activités logiques qui relèvent des algorithmes.

 

Exemples d'algorithmes :

  • —indiquer un chemin à un touriste égaré ;
  • —rédiger une recette de cuisine ;
  • —élaborer un mode d'emploi pour faire fonctionner un magnétoscope ;
  • —etc.

 

Important

Pour fonctionner, un algorithme doit contenir uniquement des instructions compréhensibles par celui qui devra l'exécuter

 

Pour être bon en algorithmique ...

 

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

Non, pas du tout !

La maîtrise de l'algorithmique requiert trois qualités :

    1.
    Il faut être méthodique. Avant d‘écrire les instructions d'un algorithme,
    il faut analyser le problème à résoudre.
    Il faut ensuite définir les
    entrées et les sorties de l'algorithme.

    2.
    Il faut avoir de l'intuition.
    Aucune recette ne permet de savoir à priori quelles instructions permettront d'obtenir
    le résultat voulu.
    Les réflexes du raisonnement algorithmique deviennent
    spontanés avec l'expérience.

    3.
    Il faut être rigoureux.
    Chaque fois qu'on écrit une série d'instructions, il faut systématiquement se mettre mentalement à la place de la machine qui va les exécuter.
    Si nécessaire, il faut avoir recours à une simulation sur papier.

 

Les instructions fondamentales

Les ordinateurs ne comprennent que quatre catégories d'instructions :

1.l'affectation de variables ;

2.la lecture/écriture ;

3.les tests (les structures conditionnelles) ;

4.les boucles (les structures itératives).

Important

—Un algorithme informatique se ramène toujours à la combinaison de ces quatre types d'instruction. Il peut y en avoir quelques unes, quelques dizaines, et jusqu‘à plusieurs centaines de milliers.

 

 L'algorithmique et la programmation ...

Quelle est la différence entre l'algorithmique et la programmation ?

Réponse

—L’écriture d'un programme dans un langage de programmation n'est que l‘étape finale d'un développement qui se déroule en trois phases : l'analyse, l'algorithmique et la programmation.

En d'autre terme :

—Un algorithme est un maillon de la chaîne de développement d'un programme. Il est le lien indispensable entre l'analyse et la programmation.

En utilisant des images :

—Si un programme était une construction, l'algorithme serait le plan

—Si un programme était une toile de peinture, l'algorithme serait l'esquisse

 

 

Niveau logique du développement

 

* Apprendre l'algorithmique, c'est apprendre à manier la structure logique d'un programme informatique.

* L'algorithmique exprime les instructions résolvant un problème donné   indépendamment des particularités de tel ou tel langage.

* Lorsqu'on programme dans un langage (en C, en Visual Basic, etc.) on doit, en plus de la structure logique, prendre en considération les problèmes de syntaxe et les types d'instructions propres a ce langage.

 

Niveaux de développement :

    1.   Analyse : niveau conceptuel ;

    2.   Algorithmique : niveau logique ;

    3.   Programmation : niveau physique.

 

Représentation d'un algorithme

 

Historiquement, plusieurs types de notations ont été utilises pour représenter des algorithmes :

  • Descriptions littéraires
  • Organigrammes
  • Pseudo-codes

 

Définition informelle

—  Un pseudo-code est une série de conventions qui ressemble à un langage de programmation authentique dont on aurait évacue la plupart des problèmes de syntaxe.

Important

—  Un pseudo-code est susceptible de varier d'une référence à une autre. En effet, un pseudo-code est purement conventionnel. Aucune machine n'est censée le reconnaître.

 

Environnement algorithmique
Représentation d'un algorithme

    Convention à adopter : squelette d'un algorithme

Algorithme Nom_algorithme

En-tête

Const: [constantes]

Var:    [varaibles]

Déclaration des constantes et des variables

Début

[Instructions]

Fin

Traitements

 

Les Structures de Données : Notions de base

I. Présentation Sommaire de la Structure d’un Algorithme

Dans un algorithme, on trouve deux parties essentielles :

Une partie déclarative contenant tous les objets qui seront impliqués par les différentes actions de l’algorithme (constantes, types, variables, etc.).

Une partie réservée aux actions (en programmation, on dit les instructions) ; elle

est délimitée par les deux mots-clés Début et Fin.

En outre, un algorithme est caractérisé par son nom qui devrait être significatif.

    Algorithme  nomalgo

    Constante .............

    Type  ...................

    Variable ................

    Partie déclarative

    Début

    <action1>

    <action2>

    ..

    <action N>

    Partie réservée aux actions

Remarque :

Le nom d’un algorithme et d’une manière générale le nom d’un objet impliqué dans les actions de l’algorithme doivent respecter lors de leur définition les règles d’un identificateur qui disent :

Un identificateur doit être significatif.

Un identificateur doit être écrit sur 8 positions (Taille <= 8 caractères).

Un identificateur doit commencer obligatoirement par une lettre.

Un identificateur ne doit pas comporter le caractère « espace ».

Un identificateur ne doit pas comporter de caractères spéciaux autre que le tiret de soulignement (_).

Un identificateur doit être unique dans un algorithme

 

II.Notion de Variable

On rappelle que l’exécution d’un programme doit impliquer les données qui sont liées à ce programme. Ces données se trouvent à ce moment au niveau de la mémoire centrale et chacune occupe une case mémoire.

Une variable est donc un espace mémoire qui va contenir des données au fur et à mesure que le programme avance dans son exécution. Cependant, à un instant donné, une variable ne peut contenir qu’une seule donnée (valeur).

Remarques :

une variable est caractérisée par son nom qui doit être significatif et respecter les règles d’un identificateur.

une variable est également identifiée par son adresse en mémoire centrale ; cette adresse sera intéressante à un stade avancé de l’algorithmique (les pointeurs).

une variable est caractérisée par son contenu : les valeurs qu’elle peut prendre lors de l’exécution d’un programme. une variable possède un type c’est à dire un ensemble contenant toutes les valeurs possibles qu’elle peut prendre.

 

III. Notion de Type

 

Une variable utilisé dans un algorithme ne peut prendre qu’un ensemble de valeurs connues à l’avance ; toute variable possède un domaine de définition. En terme informatique, ce domaine est appelé le Type de la variable.

Un type est alors caractérisé par : ses valeurs les opérations qui peuvent s’effectuer sur des variables ayant ce type.

On distingue deux familles de types : les types simples : ce sont des types qui sont supportés et reconnus par la majorité des langages de programmation. Lors de l’écriture de l’algorithme ou du programme, ce n’est pas la peine de les déclarer dans la partie déclarative réservée aux types.

Les types composés ou complexes : ce sont des types qui sont construits à partir des types simples mais qu’il faut les déclarer dans la partie réservée aux types : tableaux, chaînes, enregistrements, etc.

 

IV. Notion de Constante

Une constante est une variable qui ne change pas de valeurs lors de l’exécutiond’un programme.

Par exemple :

La constante PI = 3.14

La constante e=2.7

Remarque :

Le nom d’une constante doit respecter les règles de constitution d’un identificateur. Ainsi, on ne peut pas déclarer Ð=3.14 comme constante car le symbole Ð est un caractère spécial non permis lors de la définition d’un identificateur ; c’est pour cette raison qu’on utilise PI=3.14.

 

 

Cours algorithme classe I

Cours algorithme classe II

Cours algorithme classe III

Cours algorithme classe IV

Cours algorithme classe S