Algorithmique

A quoi ça sert ?

  • Résoudre un problème par une suite d'actions dans un ordre prédéterminé

  • L'algorithmique est souvent utilisée pour répondre à des problèmes complexes en informatique

    • Dans ce cas précis, l'algorithme est traduit dans un langage de programmation pour pouvoir être compilé/executé ou interprété sur un ordinateur

Pour réaliser ce programme, comment allez-vous vous y prendre ?

Jeu sur ordinateur

Si vous aviez a construire des voitures, comment vous y prendriez-vous ?

Chaîne montage de voitures

Comment cuisineriez-vous des lasagnes ?

Lasagnes

Algorithmique

  • Un algorithme est une suite d'actions précises décrivant un modèle de comportement, une méthode de résolution, utilisant des compétences d'un opérateur.

  • Il sera traduit dans un langage de programmation compréhensible par un opérateur réel (ordinateur). Cela donnera un programme exécutable par cet opérateur. L'opérateur réel exécutera le programme sur des données caractérisant le problème particulier à résoudre.

Comment procéder ?

  1. Formuler clairement le problème

  2. Exprimer les entrées et sorties du problème

  3. Dégager les grandes actions / fonctionnalités

  4. Concevoir l'algorithme

  5. Traduire dans un langage de programmation

Tracer une croix où chaque branche est de 20 unités

Croix
Croix : Niveau 1

Le traceur peut être commandé à l'aide des opérations suivantes :

  • LEVER : rompt le contact entre le stylet et la surface de travail.

  • BAISSER : établit le contact entre le stylet et la surface de travail.

  • CENTRER : amène le stylet au centre de la surface de travail.

  • MONTER : déplace le stylet d'un pas vers le Nord.

  • DESCENDRE : déplace le stylet d'un pas vers le Sud.

  • AVANCER : déplace le stylet d'un pas vers l'Est.

  • RECULER : déplace le stylet d'un pas vers l'Ouest.

  • RAZ : remet le compteur Cptr à zéro.

  • INCR : augmente de 1 la valeur du compteur Cptr.

Croix : Niveau 1 et 2
Croix : Niveau 3

Structure d'un algorithme

Structure d'un algorithme

  • Un algorithme est composé d'une suite d'actions élémentaires ou composées.

  • Les actions élémentaires (aussi appelées instructions) sont des actions propres de l'opérateur :

    • opérations d'entrée/sortie

    • gestion de la mémoire

    • Opérateurs

    • Appel à d'autres fonctionnalités

  • Les actions composées sont des combinaisons de structures de contrôle et d'actions élémentaires.

Bloc

La mémoire, les variables

La mémoire

  • La machine sur laquelle l'exécution doit s‘effectuer possède une « mémoire ».

  • C'est un espace dans lequel des valeurs peuvent être conservées, au moins temporairement.

  • La mémoire de la machine est formée d'un grand nombre de cellules numérotées.

  • Le numéro d'une case mémoire est appelé « adresse mémoire ».

Cases mémoire

Les variables

  • L'algorithme ne manipule pas directement les valeurs des données

  • Il manipule des "objets abstraits" appelés variables qui prendront les valeurs des données seulement au moment de l'exécution.

  • Une variable est associée à une zone de la mémoire de la machine appelé « case mémoire » ou « mot mémoire ».

  • Elle est repérée par un nom, ou identificateur,

  • Elle contient une valeur qui peut varier au cours de l'exécution de l'algorithme, d'où le nom de variable

  • Au départ la valeur est indéfinie

  • Toutes les valeurs qu'elle peut prendre sont d'un même type, c'est à dire sont de même nature et peuvent subir les mêmes opérations de base.

  • Quand une variable est déclarée dans un algorithme, la machine lui associe une adresse mémoire.

  • Dans l'algorithme, on ne manipule que le nom des variables, pas l'adresse mémoire.

  • L'algorithme décrit des traitements sur la variable

Case mémoire

Nom des variables

  • Le nom d'une variable (aussi appelé « identificateur ») est un nom symbolique construit à l'aide

    • des lettres majuscules,

    • des lettres minuscules non accentuées,

    • des chiffres,

    • du caractère "souligné" (_).

  • Ce dernier permet d'aérer les noms.

    • Par exemple on pourra appeler un objet « Plus_petit_element », au lieu de « Pluspetitelement ».

La notation « Plus petit element » décrit trois identificateurs, car l'espace entre les mots est considéré comme un séparateur.

Affectation à une variable

L'affectation est l'opération interne qui permet d'attacher, on dit « affecter », une valeur à une variable :

variable <- valeur;

« A  2; » : La machine traduit ce traitement sur le mot mémoire associé : "le mot mémoire d'adresse 3 reçoit la valeur 2".

Affectation

Les expressions

Les expressions

  • Une expression est composée d'opérandes (constantes , variables) et d'opérateurs

  • Selon la machine utilisée, on peut avoir

    • Les Opérateurs arithmétiques  : +, -, *, /

    • Fonctions mathématiques élémentaires

      • Mod : modulo

      • Abs : valeur absolu

      • Cos : cosinus

      • Sin : sinus

      • Tan : tangente

      • Sqrt : racine carrée

Affecter une expression à une variable

variable <- expression;

  • L'expression est tout d'abord évaluée,

  • Puis la valeur obtenue est "affectée" à la variable, c'est à dire placée dans la zone mémoire associée à la variable ;

A <- A - 4 ;

B <- A * 6 ;

  • Une même variable peut être à la fois utilisée dans l'expression puis prise pour l'affectation

Les commentaires

Les commentaires

  • Le commentaire est transparent pour l'algorithme, il n'est utile que pour l'utilisateur, il doit faciliter la lisibilité et la compréhension du programme, pour l'algorithme il est équivalent à un espace

  • Syntaxe des commentaires

    • dépend du formalisme/langage utilisé

    • ex : /* ceci est un commentaire */

      (/* et */ sont des marqueurs de début et de fin de commentaire)

  • Il est inutile de commenter une action évidente

AccueilAlgorithmique > Algorithmique< PrécédentSuivant >