Algorithmique et Programmation
Notion d’Algorithme
MÉTHODE INFORMATIQUE DE RÉSOLUTION D'UN PROBLÈME
Analyse
Réalisation du
Etude modèle Spécification
Schéma de
Problème Modèle
résolution
Exécution Traduction
RESULTAT Programme Algorithme
Données
MÉTHODE INFORMATIQUE DE RÉSOLUTION D'UN PROBLÈME
Phase d'étude : sert à inventorier ce qui est connu et ce qui
est à connaître. On identifie ensuite les relations entre ces
grandeurs.
Phase de réalisation du modèle : consiste à déterminer un
enchaînement d'opérations produisant les grandeurs
cherchées à partir des grandeurs connues, en respectant le
modèle. Cet enchaînement d'actions constitue en fait le
schéma de résolution.
Phase de spécification : produit l’algorithme
Phase de traduction : traduit l’algorithme et la description des
données dans un langage de programmation disponible sur la
machine. On obtient alors un programme.
Caractéristiques d’une donnée
Nom d'une donnée : sert à désigner la donnée dans l’algorithme.
Type d'une donnée : caractérise les valeurs que peut prendre cette
donnée ainsi que les actions autorisées sur celle-ci. On distingue les
types simples et les types structurés.
Utilisation d'une donnée : désigne sa caractéristique dans l'algorithme :
donnée d’entrée, donnée de sortie ou donnée intermédiaire.
Nature d'une donnée : désigne sa caractéristique constante ou
variable dans l'algorithme.
– Une constante est une donnée dont la valeur est précisée au début de
l’algorithme et qui ne varie pas durant le déroulement de celui-ci.
– Une variable est une donnée dont la valeur est indéterminée (non initialisée)
au début de l’algorithme et qui est susceptible d’être changée durant le
déroulement de celui-ci.
Définition d’un algorithme
Un algorithme est un ensemble de règles ayant les
caractéristiques suivantes :
– Il doit être fini et doit se terminer après un nombre fini d’opérations.
– Il dot être défini et précis : chaque règle (instruction) doit être
définie sans ambiguïté.
– S’il y a des données d’entrée, le domaine d’application doit être
précisé
(exemple : nombre entier, réel, etc.).
– Il doit posséder au moins un résultat (données de sortie).
– Il doit être effectif : toutes les opérations doivent pouvoir être
effectuées exactement et dans un temps fini.
Données d’un algorithme
Pour chaque algorithme, on distingue intuitivement :
– Les données d’entrée : ce sont les données fournies à
l’algorithme.
– Les données de sortie : ce sont les résultats produits par
l’algorithme.
– Les données intermédiaires : ce sont les données de travail de
l’algorithme, servant aux manipulations internes (compteurs,
données de stockage des résultats
intermédiaires, etc.).
L’ensemble des données d’entrée et des données de sorite
d’un algorithme constitue le paramétrage de cet algorithme.
Types simples
Les types simples sont les types Scalaires et le type REEL.
Un type Scalaire est un ensemble de valeurs fini et totalement
ordonné. On distingue les types suivants :
– Le type ENTIER : Une donnée de ce type prend ses valeurs dans
l’intervalle [-32768..32767].
– Le type CARACTERE : Une donnée de ce type prend ses valeurs dans
l’ensemble des codes ASCII
Deux fonctions prédéfinies et opérant sur ce type sont Rang() et Car(). On a
par exemple : Rang('A') renvoie la valeur 65 et Car(65) rend le caractère 'A'.
– Le type LOGIQUE : Une donnée de ce type peut prendre les seules
valeurs Vrai ou Faux.
Deux fonctions prédéfinies et opérant sur les différents types Scalaires sont
Suivant() et Precedent(). .
Types simples
Le type REEL : Une donnée de ce type prend ses valeurs dans
un ensemble fini de valeurs décimales relatives.
Deux fonctions opérant sur des données de type ENTIER
sont :
– Quotient(N1,N2) qui retourne le quotient de la division euclidienne
de N1 par N2.
– Reste(N1,N2) qui retourne le reste de cette division .
Deux fonctions opérant sur des données de type ENTIER ou
REEL sont :
– Rac(X) qui retourne la racine carrée du nombre positif X.
– Abs(X) qui retourne la valeur absolue du nombre X.
Actions élémentaires
Affectation : Nom_Variable Expression
Lecture : LIRE (liste de noms de variables)
Ecriture : ECRIRE (liste d’objets)
Appel d’un algorithme : Nom_Algorithme
Structure d’un algorithme
Un algorithme se compose des parties suivantes:
– Un en-tête constitué du mot Algorithme suivi d'un nom identifiant
l'algorithme.
– Une liste de données (données d'entrée, données intermédiaires
et données de sortie) avec leur type.
– Un bloc d'actions.
Début
Action 1
Action 2
……
Action n
Fin
Structures de contrôle
L’alternative simple : SI <Condition> ALORS <Instructions> FINSI
L’alternative complète :
SI <Condition> ALORS <Instructions1> SINON <Instructions2>
FINSI
Choix multiple :
CAS <Expression> VAUT
Val1 : <Instructions1>
Val2 : <Instructions2>
……………..
Valn : <Instructionsn>
Autre : <Instructions>
FINCAS
Itérations – Boucles
Structure POUR :
POUR Compteur val_debut JUSQUA val_fin FAIRE <Instructions>
FINPOUR
Structure TANTQUE :
TANTQUE <Condition> FAIRE <Instructions> FINTANTQUE
Structure REPETER…JUSQUA :
REPETER
Action 1
Action 2
……………..
Action n
JUSQUA <Condition>