cours Algorithme : outils de base
Dans ce cours algorithme gratuit, nous allons traiter les outils de base de l’algorithmique.
Lire aussi sur cette page des cours gratuit de l’algorithme / formation en ligne de l’algorithme
Cours et tutoriel gratuit Algorithme : INTRODUCTION.
Dans notre vie quotidienne, on exécute chaque jour des algorithmes, par exemple : se préparer pour aller au travail le matin, conduire sa voiture correctement, préparer une recette de cuisine, etc.
Dans cet ouvrage, nous nous intéressons aux algorithmes qui peuvent être exécutés par un ordinateur.
Un ordinateur est une machine constituée d’un ensemble de composants électroniques destinés à accepter des données, leurs faire subir certaines transformations selon un cheminement bien précis et restituer les résultats souhaités. Les ordinateurs actuels présentent une grande variété et complexité dans leurs compositions. L’objectif visé n’est pas de détailler leur structure interne mais de citer les éléments intervenant essentiellement dans l’exécution d’un algorithme simple
Cours Algorithme pour bien bien commencer la programmation
Nous allons donc donner un schéma simplifié d’un ordinateur. Ses parties principales qui vont nous intéresser pour la suite de cet ouvrage sont les suivantes:
Une mémoire de données (MD) : qui contient des cases numérotées et destinées à recevoir les données et résultats du programme,
Une mémoire d’instructions (MI): qui contient les différentes instructions du programme exécutable,
Un compteur d’instructions (CI) : qui est responsable de renseigner sur le numéro de la prochaine instruction à exécuter,
Une unité centrale (UC) : qui exécute les instructions du programme, organise le travail et met de l’ordre entre les différents organes de la machine,
Un organe d’entrée (OE): qui permet d’acquérir les données fournies par l’utilisateur (Exemple: clavier),
Un organe de sortie (OS) : qui permet de communiquer les résultats au monde extérieur (Exemple: écran ou imprimante).
La communication entre ces différents organes est présentée dans le schéma suivant :
————-Algorithmique et techniques de programmation.———-
La valeur 35 est une donnée se trouvant dans la case n° 2 de la mémoire de données, il sera dite à l’adresse 2.
L’adresse d’une donnée ou d’une instruction est donc le numéro de l’endroit où elle se trouve dans la mémoire correspondante.
Si l’on désigne cet emplacement mémoire par son adresse 2 et que l’on écrive 2 = 35, le programme risque d’être illisible ; pour éviter ces problèmes, on associe aux emplacements mémoires des noms symboliques qui vont obéir à certaines exigences.
On écrira donc a=35 au lieu de 2-35
2:adresse de l’emplacement mémoire.
35:valeur contenue dans cet emplacement
Lorsqu’on écrit a -35, on sous-entend trois choses principales:
le nom symbolique de l’emplacement mémoire (a) qui intéresse l’utilisateur principalement,
l’adresse de l’emplacement mémoire (2) qui intéresse l’ordinateur principalement,
le contenu de l’emplacement mémoire (35) qui intéresse aussi bien l’utilisateur que l’ordinateur.
Il doit donc y avoir une relation de correspondance, bijective, entre les emplacements mémoires utilisés par l’algorithme et les noms symboliques utilisés dans l’algorithme.
2.2.NOTION D’OBJET.
On a vu, dans le chapitre précédant, qu’un algorithme est constitué d’un ensemble fini d’objets appelé environnement, et d’un ensemble fini d’actions permettant de traiter ces objets.
Le traitement d’un objet ne peut concerner que la valeur de celui-ci.
Un objet peut se présenter sous deux formes différentes: objet constant ou objet variable.
Pour définir parfaitement un objet en vue de sa manipulation par une machine, il faut spécifier les caractéristiques suivantes: son identificateur, sa valeur et son type.
Exemple 2:
Si dans un algorithme de gestion d’une entreprise, on veut nommer un objet représentant le nombre d’employés, on peut utiliser:
: qui est une mauvaise appellation
– A
– NE : qui est une appellation moyenne
Nbre_employes : qui est une bonne appellation
2.2.2. Valeur d’un objet.
C’est le contenu courant d’un objet. Ce contenu peut être :
Constant: s’il ne peut pas être modifié par les instructions de l’algorithme tout au long de son exécution,
Variable: dans le cas contraire.
2.2.3. Type d’un objet.
Le type d’un objet constitue la nature de l’objet. C’es l’ensemble des valeurs qui peuvent être prises par cet objet.
Si on ne connaît pas cette nature, on ne peut choisir i opérations à effectuer sur cet objet dans un traitement défini au sein d’un algorithme.
En programmation, on peut classer les types de données en trois grandes familles: les booléens, les numériques et les textes.
————-Algorithmique et techniques de programmation.———-
2.2.3.1.Type Booléen.
Le type booléen correspond à un ensemble de deux états logiques (vrai, faux).
L’ensemble des opérateurs qu’on peut appliquer à ces valeurs logiques est (ET, OU, NON).
Pour simplifier la représentation, on assimile à vrai la valeur (1) et à faux la valeur (0).
Les tables de vérité de ces opérateurs sont les suivantes:
l’opérateur ET peut être matérialisé physiquement par deux interrupteurs en série pour allumer une ampoule.
a | b | a ET b |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
L=aETb
L : n’est vrai que si les deux états logiques de a et b sont vrais
un espace
des codes d’opérations (+..,’,/,…)
des caracteres de ponctuation (.-,”;-!-…)
des caractères spéciaux(&,#,(,1.1,@,S,£.,…)
Rappelons qu’il existe 256 caractères dont chacun est lie à un code numérique jouant deux roles principaux:
ce code représente le caractère à l’intérieur de la machine c’est-à-dire que celle-ci connait le caractère à travers ce code,
ce code permet d’établir une relation d’ordre entre les différents caractères, ce qui nous permet par exemple de classer une liste de nom par ordre alphabétique croissant ou décroissant.
Exemple 3:
Chaînes de caractères :
“bonsoir à tous”, “a/b32”, “algorithmique”
Relation d’ordre :
“A” < “a”: le code numérique lié à “A” est inférieur au code numérique lié à “a”
“A” <“C”
“2003” > “2002”
“2006” < “86” : le code numérique lié au premier caractère “2” de la chaîne “2002” est inférieur au code numérique lié à “8” de la chaîne “86”
On peut appliquer plusieurs opérations sur les valeurs de type Texte. Parmi celles-ci, citons la plus utilisée : la concaténation, notée en algorithmique par le symbole suivant : « // ».
Exemple 4:
– “Bonjour” // “les amis” a pour résultat : “Bonjour les amis”
A=”Bon” B=”ne” C=””
D=”jour” E=”Année” F= “nuit”.
A//D donne: “Bonjour”
A//B//C//E donne: “Bonne Année”
FICIA/IE donne: “nuit BonAnnée”
2.2.4.Opérations de relations sur les objets.
On peut appliquer entre deux objets de même type une opération de relation dont le résultat est une valeur booléenne : vrai ou faux.
L’ensemble de ces opérations est décrit dans le tableau suivant:
Opération | Symbole |
Strictement inférieur à | < |
Strictement supérieur à | > |
Inférieur ou égal à | I |
Supérieur ou égal à | VI |
Egal à | = |
Différent de | <> |
On distinguera donc dans un algorithme deux parties :
une partie déclaration de tous les objets utilisés par l’algorithme,
une partie exécutable contenant toutes les actions permettant d’agir sur ces objets.
Du point de vue du programmeur, une variable est un nom désignant symboliquement un emplacement mémoire auquel est associée une valeur courante.
Du point de vue de la machine, déclarer une variable (V) signifie donc pour l’unité centrale :
réserver une case dans la mémoire de données dont la taille sera capable d’accepter toutes les valeurs du type de la variable déclarée,
associer l’adresse de cette case au nom (V), c’est-à-dire définir une relation entre l’adresse et le nom.
Dans la partie exécutable de l’algorithme, une instruction modifie les valeurs des variables et enchaîne avec l’instruction suivante. Cette partie sera délimitée par les mots DEBUT et FIN.
L’environnement de l’algorithme doit être parfaitement décrit avant le mot DEBUT de celui-ci.
tous les objets constants sont décrits par leurs noms et leurs valeurs et précédés d’un mot réservé “CONST”,
tous les objets variables sont décrits ensuite par leurs noms et leurs types et précédés d’un mot réservé “VAR”.
Si plusieurs objets variables sont de même type, nous pouvons alors les regrouper tous ensembles séparés par des virgules.
Exemple 6:
CONST
Annee_cours=2003;
Taille_min=1.65;
Reponse =”oui”;
VAR
Nom, prenom : chaînes de caractères ; :entier;
Etat_civil : booléen;
2.3.2. Présentation d’un algorithme.
Un algorithme pourra se présenter par un langage algorithmique de la manière suivante :
Algorithme nom_algorithme; |
(*Déclarations*) |
Const |
Nom_de_const=valeur_de_const; |
Var |
Nom_var :nom_type_var; |
Début |
(*Corps de l’algorithme*) |
(*Actions*) |
Fin |
Nom_algorithme est le nom que le programmeur attribue à son algorithme.
Exemple 7 : Algorithme de calcul du périmètre d’un cercle: P=2.π.R
Algorithme de résolution:
Algorithme perimetre_cercle;
Const
c=2;
Pi=3.14;
Var
P,R:réels;
Début
Lire(R);
P c*Pi*R;
Ecrire(P);
Fin
Remarques:
mots réservés:
Les algorithmes utilisent un certain nombre de mots appelés mots réservés. Le programmeur ne peut pas les utiliser comme identificateurs.