Telechargé par boiteabonnement

Algorithmique resumé (avril 2019)

publicité
Algorithmique
I. Introduction : Pour résoudre un problème sur ordinateur, on suit généralement les étapes
suivantes :
- Cerner le problème à traiter ; On doit définir toutes les données avec leur nature ainsi que les
résultats auxquels on s’attende avec les précisions souhaitées.
- Formuler la résolution du problème sous forme d’une succession logique d’instructions
pour passer des données aux résultats. (ALGORITHME).
- Pour bien schématiser le problème, on dresse un équivalent graphique de l’algorithme
(ORGANIGRAMME).
- Ensuite on réécrit l’algorithme dans un langage évolué (PROGRAMMATION).
- On compile le programme en question (COMPILATION).
- Une fois le programme est compilé, on l’exécute, puis on vérifie si les résultats correspondent
bien aux solutions du problème.
II Algorithmes
II.1 Définition
L’algorithme est une succession de règles opératoires propres à un calcul donné. L’application de
ces règles permet de résoudre un problème particulier. L’algorithme consiste à bien analyser le
problème avant de commencer à programmer.
II.2 Caractéristiques d’un algorithme :
L’algorithme doit être très clair, formé d’une combinaison d’opérations élémentaires permettant de
fournir un résultat après un nombre fini d’opérations.
II.3 Structure générale d’un algorithme :
Elle est composée de trois parties principales : l’entête, les déclarations, les actions.
Exemple :
Ecrire un programme intitulé « Eq_1er_degre » qui permet de résoudre une équation du premier
degré (de forme ax + b = 0) à une seule variable inconnue x. On suppose que a, b et x sont des réels.
Solution :
le programme doit traiter tous les cas possibles :
• 1er cas a<>0 et b quelconque --> solution =-b/a
• 1èr cas : a=0 et b=0 --> solution ="l’ensemble ℝ " (tout réel est solution)
• 2ème cas a=0 et b<>0 --> solution =Impossible (pas de solution puisque a=0)
L’entête : L’entête contient le titre qu’on souhaite donner à l’algorithme. (la partie (1) de l’exemple
précédent).
II.4 Les déclarations :
Dans la partie déclaration, on doit déclarer tous les objets qu’on utilise dans l’algorithme. (la partie
(2) de l’exemple) .
L’objet : c’est un symbole ou un identificateur (variables constante…etc.) qu’on déclare avant sa manipulation.
II.4.1 La constante :
C’est un symbole ou un identificateur dont la valeur est introduite lors de la programmation.
Celle-ci ne peux pas changer pendant l’exécution du programme. Exemple : Pi= 3.14
II.4.2 Le type :
Un type est un ensemble de valeurs que peut prendre une donnée. On distingue :
-
Types standards : entier, réel, booléen, caractère.
Types non-standards :
1. Enuméré :
Syntaxe :
type identificateur = (id1, id2,…,idn)
Exemple : type couleur = (jaune, vert, rouge,…)
Remarque : le mot type doit être écrit une seule fois.
1. Intervalle :
Syntaxe :
type identificateur = inf….sup
Exemple : type décimal = 0 . . 9
Remarque : pas de type intervalle issu du type réel.
II.4.3 La variable :
C’est un symbole ou un identificateur dont la valeur est susceptible de changer au cours de
l’exécution du programme. Le type de variable doit être choisi d’une manière très appropriée. Il y a
plusieurs types de variables numérique (entier, réel…etc.), logique, chaîne de caractères, tableau,..
II.5 Les actions ou instructions :
La partie instruction est la partie corps du programme ((3) dans l’exemple ci-dessus) où sont
écrites les instructions nécessaires pour arriver au résultat. Toute manipulation sur les objets est appelée
action.
II.5.1 Lecture :
La donnée : c’est une valeur introduite par l’utilisateur pendant l’exécution du programme. Elle
peut être lue itérativement ou issue d’un fichier.
Syntaxe : LIRE (a,b) est équivalent LIRE a, LIRE b, ça voudrait dire que l’utilisateur fait entrer à la
machine la valeur de a puis celle de b.
II.5.2 Ecriture :
L’instruction d’écriture est couramment utilisée dans deux situations :
- pour afficher les résultats de l’exécution,
- avant la lecture des données.
Syntaxe : ECRIRE (’la valeur de x est :’, -b/a)
II.5.3 Affectation : C’est une instruction qui consiste à attribuer une valeur à une variable pendant
l’exécution du programme. La variable peut changer de valeur dans le même programme.
Exemples :
1) A  1, B  A+1, A  3, B  A+4, après exécution A3 et B7
2) L’incrémentation : I I+1 ( I est augmenté de 1)
II.5.4 Structures conditionnelles :
Avant d’exposer les structures conditionnelles on essaye de donner les différents opérateurs de
comparaison utilisés:
- Expressions et opérateurs : un opérateur relie entre deux valeurs pour produire un résultat.
L’expression est un ensemble de valeurs reliées par des opérateurs et qui est équivalente à une
seule valeur.
a) Opérateurs numériques : +, -, *, /, div., mod. L’ordre des opérations est important, la
priorité revient aux opérateurs / , *, div, et mod.1
Exemple : 4*3+2=(4*3)+2 et non à 4*(3+2).
b) Les opérateurs alphanumériques :
Cet opérateur agglomère deux chaînes de caractère
c) Opérateurs logiques : ET, OU, NON, et XOR.
d) Opérateur de comparaison :
Egal : =, Différent : < >, Egal ou plus grand : = >, Egal ou plus petit =<,
plus grand : >, plus petit : <
- Sélection simple :
Si (condition) Alors (instruction1)
Sinon (instruction2)
Finsi
- Tests imbriqués :
Si (condition 1) Alors (instruction 1 )
Sinon Si (condition 2) Alors (instruction 2)
Sinon Si (condition 3) Alors (instruction3 )
Finsi
Finsi
Finsi
Exemple : Ecrire un algorithme qui affiche les états de l’eau en fonction de sa température T.
Algorithme Etat_eau_temp
Variable T en réel
Début
Ecrire (‘donnez la température T :’)
Lire T
Si T=< 0 Alors Ecrire (‘l ‘’eau est dans un état solide’)
Sinon Si T< 100 Alors Ecrire (‘l ‘’eau est dans un état liquide’)
Sinon Ecrire (‘l ‘’eau est dans un état gazeux’)
Finsi
Finsi
Fin
La priorité peut changer d’un langage à un autre il est fortement conseillé d’utiliser des parenthèse pour définir l’ordre
d’application des opérateurs.
1
Structures répétitives : Il existe trois types de structures répétitives :
1) Boucle Pour : Elle est souvent utilisée quand on connaît le nombre de boucles à réaliser.
Syntaxe :
Pour i  (valeur initiale) à (valeur finale) faire (ensemble d’instructions)
Fin Pour
Exemple : Effectuer la somme des n premiers entiers naturels.
Algorithme Somme
Variables s, i, n en entier
Début
Ecrire (‘donnez un nombre n :’)
Lire n
S 0
Pour i1 à n faire ss+i
FinPour
Ecrire (‘la somme est :’, s)
Fin
2) Boucle Tant que :
Syntaxe :
Tant que (condition) faire (ensemble d’instructions)
Fin Tanque
Remarque :
- Pas d’augmentation automatique d’une variable.
- Faire le bloc d’instructions tant que la condition est réalisée.
Algorithme Somme
Variables s, i, n en entier
Début
Ecrire (‘donnez un nombre n :’)
Lire n
s 0
i1
Tant que i<=n faire
ss+i
ii+1
FinTantque
Ecrire (‘la somme est :’, s)
Fin
3) Boucle Répéter:
Syntaxe : Répéter
Ensemble d’instructions
Jusqu’à (condition)
Fin Repeter
Remarques :
- Le bloc d’instructions est à faire si la condition n’est pas réalisée.
- Le bloc d’instructions est parcouru au moins une fois.
- Pas d’augmentation automatique de la variable qui apparaît dans la condition (i dans l’exemple
qui suit).
Exemple (l’algo précédent en utilisant RÉPÉTER) :
Algorithme Somme
Variables s, i, n en entier
Début
Ecrire (‘donnez un nombre n :’)
Lire n
s 0
i1
Répéter
ss+i
ii+1
jusqu’à i>n
FinR
Ecrire (‘la somme est :’, s)
Fin
III Les tableaux
Supposons qu’on a besoin spontanément de manipuler 12 valeurs (pour calculer par exemple la
moyenne d’une classe de 12 étudiants). Il faut donc déclarer 12 variables n1, n2,…, n12. Alors là si on
se trouve à traiter 1000 ou 100000 de variables, c’est laborieux !!
La solution c’est de rassembler toutes ces variables en une seule au sein de laquelle chaque valeur sera
indexée par un numéro, cette variable est appelée tableau.
III.1 Les vecteurs (tableau à une dimension) :
Un vecteur est ensemble de valeurs ordonnées les unes après les autres. Il est défini par sa taille (le
plus grand indice) et le type de valeurs qu’il contient.
Exemple : Soit V(N) un vecteur qu’on représente comme suit :
12
15
2
6
14
V(1) =12, V(5)=14, N=5, ce vecteur contient des entiers.
Déclaration d’un vecteur :
On doit préciser dans la variables, le plus grand indice et le type des valeurs que le vecteur contient.
Syntaxe :
Variables V : tableau (N) en entier
Indice le
plus grand
Remarque : L’avantage des tableaux c’est qu’on va pouvoir traiter des données en faisant des boucles.
Exemple : La moyenne d’une section de 140 étudiants
Algorithme moyenne_section
Variables s en réel
i en entier
N : tableau (140) en réel
Début
Pour i1 à 140 faire
Lire N(i)
FP
s0
Pour i 1 à 140 faire
ss+N(i)
FP
Ecrire (‘la moyenne est:’, s/140)
Fin
Exercices d’application :
Exercice : Ecrire un algorithme qui déclare et qui remplit un tableau de 7 valeurs et les mettant toutes
à 0.
Algorithme table_zéro
Variables i en entier
Zero : tableau (7) en entier
Début
Pour i1 à 7 faire
FP
Fin
III.2 Les matrices (tableaux à deux dimensions) :
Si on se place à deux dimensions, on aura deux indices à manipuler, soit i, j ces indices.
Déclaration des matrices :
Variables T : tableau (n,p) en entier
Nombre de
lignes
Nombre de
colonnes
Exemple :
Ecrire un algorithme qui déclare et qui remplit une matrice zéro(n,n) en les mettant tous à zéro.
Algorithme matrice_zéro
Variables i, j en entier
Zero : tableau (3,3) en entier
Début
Pour i1 à 3 faire
Pour j1 à 3 faire
Zero(i,j)0
FP
FP
Fin
Téléchargement
Explore flashcards