U NIVERSITÉ K ASDI M ERBAH O UARGLA Faculté des Sciences Appliquées Département : Tronc commun Algorithmiques et programmation en langage PASCAL ﺍﻟﺨﻮﺍﺭﺯﻣﻴﺎﺕ ﻭﺍﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ ﺑﺎﺳﻜﺎﻝPar : CHEBOUT Mohamed sedik Maitre-assistant A Un algorithme 1 est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème ou d'obtenir un résultat. Le mot algorithme vient du mot arabe ﺍﻟﺨﻮﺍﺭﺯﻣﻲ, nom du mathématicien du ix e siècle Al- Khwârizmî. Le domaine qui étudie les algorithmes est appelé l'algorithmique. On retrouve aujourd'hui des algorithmes dans de nombreuses applications telles que le fonctionnement des ordinateurs , la cryptographie, le routage d'informations, la planification et l'utilisation optimale des ressources, le traitement d'images, le traitement de texte, la bio-informatique, etc. 1 Définition de WikiPédia : https://fr.wikipedia.org/wiki/Algorithme SUPPORT DE COURS Adressé aux étudiants de : 1 année tronc commun sciences et techniques Promotion : 2017/2018 R ÉSUMÉ R ÉSUMÉ
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
UNIVERSITÉ KASDI MERBAH OUARGLA
Faculté des Sciences Appliquées
Département : Tronc commun
Algorithmiques et programmation en langage PASCAL
الخوارزميات والبرمجة بلغة باسكال
Par : CHEBOUT Mohamed sedik Maitre-assistant A
Un algorithme1 est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème ou d'obtenir un résultat.
Le mot algorithme vient du mot arabe الخوارزمي, nom du mathématicien du ixe siècle Al-
Khwârizmî. Le domaine qui étudie les algorithmes est appelé l'algorithmique. On retrouve aujourd'hui des algorithmes dans de nombreuses applications telles que le fonctionnement des ordinateurs , la cryptographie, le routage d'informations, la planification et l'utilisation optimale des ressources, le traitement d'images, le traitement de texte, la bio-informatique, etc.
1 Définition de WikiPédia : https://fr.wikipedia.org/wiki/Algorithme
SUPPORT DE COURS Adressé aux étudiants de : 1 année tronc commun sciences et techniques
Promotion : 2017/2018
RÉSUMÉ RÉSUMÉ
Chapitre 2 : Algorithmes : notions de base
Support de cours, Première version , Février 2017 | 2
SOMMAIRE
II. Algorithme II.1. Définition 3
II.1.1. Propriété d’un algorithme : (خصائص الخوارزم) 3
II.2. Démarche pour résoudre un problème : )منهجية حل إشكال( 3
II.3. Langage de description d’un algorithme 5
II.4. Structure générale d’un algorithme (الهيكل العام للخوارزم) 5
II.4.1. Partie déclarations (قسم التصريحات) 6
II.4.1.1. Les variables : (المتغيرات) 6
II.4.1.2. Les constantes (الثوابت) 6
II.4.2. Le corps de l’algorithme (الجزء الأساسي للخوارزم) 7
Support de cours, Première version , Février 2017 | 9
écrire(‘je suis Informaticien’) ; écrire(‘La somme est :’, som) ;
II.4.2.2 Les instructions conditionnelles )التعليمات الشرطية(
Les instructions conditionnelles choisissent ou annulent l’exécution d’une instruction ou bloc
d’instruction selon une condition bien définie. On en distingue trois types :
1. Alternative simple (التناوب البسيط),
2. Alternative composée et )المركبالتناوب (
3. Alternative multiple )التناوب المتعدد( .
Instruction
conditionnelle Syntaxe Exemples
Notation Graphique
(organigramme)
Alt
ern
ati
ve
sim
ple
Si condition alors
Instruction ;
Si a>0 alors
Ecrire(a, ‘est positif’) ;
Description : L’exécution de L’instruction dépend de la condition si la condition est vrai on exécute sinon ‘instruction’ ne s’exécutera jamais
Alt
ern
ati
ve
com
po
sée
Si condition alors
Instruction_1
Sinon
Instructions_2 ;
Si a MOD 2 = 0 alors
Ecrire (a, ‘est paire’)
Sinon
Ecrire(a, ‘est impaire’) ;
Description : Une et une seule instruction sera exécutée, de manière alternative, en fonction de la condition. ���� Attention, on ne doit pas mettre un point-virgule ( ;) avant sinon
Alt
ern
ati
f m
ult
iple
choix variable de valeur_1 : instruction_1 ;
valeur_2 : instruction_2 ;
…
Valeur_n : instruction_n ;
sinon instruction_n+1 ;
Choix a de
1 : écrire(‘samedi’) ;
2 : écrire(‘Dimanche’) ;
3 : écrire(‘Lundi’) ;
4 : écrire(‘Mardi’) ;
5 : écrire(‘Mercredi’) ;
6 : écrire(‘Jeudi’) ;
7 : écrire(‘vendredi’) ;
Sinon
Ecrire(‘le nombre doit être
compris entre 1 et 7’) ;
Description : Une et une seule instruction sera exécutée selon la valeur de la variable employée comme condition.
Instruction
Oui
Suite …
Non Condition
Instruction_1
Oui
Suite …
Non Condition
Instruction_2
Instruction_1
Oui
Instruction_n
Oui
Condition
Instruction_2
Condition
Condition Oui
Instruction_n+1
Suite …
Non
Non
Non
Chapitre 2 : Algorithmes : notions de base
Support de cours, Première version , Février 2017 | 10
II.4.2.2.1 Les Instruction répétitives (boucles) : (التعليمات التكرارية)
Le principe des boucles, ou traitement itératif, consiste à répéter une instruction ou un bloc
d’instruction un certain nombre de fois.
Il y a principalement deux types de boucles :
� Les boucles pour répéter une instruction un certain nombre de fois, il s’agit de la boucle
Pour,
� Les boucles pour répéter une instruction jusqu’à une condition d’arrêt, il s’agit des boucles
Tant que.
Le passage dans une boucle est appelé itération ) تكرار(
II.4.2.2.1.1 La boucle : « pour »
La boucle pour permet de répéter une instruction ou une bloc d’instruction un nombre donné de
fois. Elle se caractérise par le fait que l’on connait à l’avance le nombre d’itérations que l’on va devoir
effectuer.
Syntaxe :
Pour compteur � valeur_initiale jusqu’à valeur_finale
faire
Instruction_1 ;
Finpour Instruction_2 ;
Exemple 2.10 : On veut afficher les 10 premiers nombre positifs, on suppose que i est une variable
entière déjà déclarée.
Pour i � 1 jusqu’à 10 faire
Ecrire(i) ;
Finpour
Résultat :
1
2
3
4
5
6
7
8
9
10
II.4.2.2.1.2 La boucle : « tant que »
Compteur � valeur_initiale
Compteur <=
Valeur_finale
Chapitre 2 : Algorithmes : notions de base
Support de cours, Première version , Février 2017 | 11
Les boucles tant que permettent d’effectuer des itérations tant qu’une certaine condition est
vérifiée. On ne connait pas le nombre d’itérations à effectuer, mais à chaque itération, on vérifie si la
condition est vraie ou fausse. Dès que cette condition est fausse, on sort de la boucle.
Syntaxe :
Tant que condition faire
Instruction_1 ;
Fin tant que
Instruction_2 ;
Exemple 2.11:
compteur � 1 ; (*initialisation *)
Tant que (compteur < =7) faire
Ecrire (‘Bonjour les informaticiens !’) ;
compteur � compteur+1 ; (*Incrémentation *)
Fin Tant Que
Résultat :
Bonjour les informaticiens !
Bonjour les informaticiens !
Bonjour les informaticiens !
Bonjour les informaticiens !
Bonjour les informaticiens !
Bonjour les informaticiens !
Bonjour les informaticiens !
Comment ça marche exactement ?
1. Au départ, on a une variable compteur initialisée à 1,
2. On va tester la variable compteur par rapport à 7 (compteur < =7), Comme compteur vaut 0 au
départ, on rentre dans la boucle.
3. On affiche la phrase : ‘Bonjour les informaticiens !’, grâce à : écrire (‘Bonjour les informaticiens !’)
4. On incrémente la valeur de la variable compteur grâce à : compteur ���� compteur + 1, compteur valait 0, elle vaut maintenant 1.
5. On arrive à la fin de la boucle (Fin tant Que) : on repart donc au début, au niveau du tant que. On
refait le test (compteur < =7) : « Est-ce que compteur est toujours inférieure à 7 ? ». Si
oui, compteur vaut 1 ! Donc on recommence les instructions de la boucle.
Exemple 2.12 :
n � 0 ; (*initialisation*)
Tant que (n mod 21 <> 0) faire
n ← n+15 ;
Fin Tant Que
Cet algorithme va s’arrêter dès que n est un multiple de 21. A la sortie de l’algorithme, on possède
donc la propriété suivante : n multiple de 21. Or comme n est toujours multiple de 15, n’est donc le
premier nombre multiple de 15 qui est multiple de 21.
L’utilisation de la boucle ‘Tant que’ est justifiée dans ce cas car on ne sait pas à l’avance, le nombre
d’itérations effectuées.
II.4.2.2.2 Différence entre pour et tant que
Voici un petit exemple pour mettre en évidence la différence entre la boucle pour et la boucle tant
que.
Chapitre 2 : Algorithmes : notions de base
Support de cours, Première version , Février 2017 | 12
Supposons que vous vous trouviez en cours de sport et que le prof de sport, assis dans sa chaise
longue, vous demande d’effectuer des tours de stade. Il peut :
– Soit vous demander d’effectuer un certain nombre de tours de stade. L’algorithme de votre
comportement (التصرف) sera donc basé sur une boucle Pour. De plus, à chaque instant, vous
aurez conscience du (trop grand) nombre de tours qu’il vous reste à faire.
– Soit vous demander de courir jusqu’à que vous ne puissiez plus que ramper. La sortie du stade
dépend d’une condition : que vous soyez fatigué ou non. L’algorithme de votre comportement
sera donc basé sur une boucle Tant que (de la forme, tant que (je ne suis pas fatigué) faire
(je cours)). Vous ne saurez qu’une seule chose : lorsque vous arrêterez de courir (si vous ne
trichez pas), vous serez fatigué.
Critère Boucle pour Boucle tant que
Initialisation Automatique Nécessaire avant
d’entrer dans la boucle
Condition N’existe pas Obligatoire
Nombre d’itération Connu à priori N’est pas connu à priori
Déroulement Se termine une fois la
valeur de compteur > à
la valeur finale
Une fois la condition
n’est pas vérifiée
���� Quelle boucle choisir ? ( التعليمات التكرارية شرط الإختيار بين )
Le choix de la boucle à utiliser dans un problème se fait de la manière suivante.
� Si on connait le nombre d’itération à effectuer dans la boucle, on utilisera une boucle pour.
� Si la poursuite dans la boucle est dépendante d’une condition, on utilisera de préférence
une boucle Tant que.
La boucle (Tant que) est plus générale que la boucle pour. On peut traduire tous les programmes
avec des boucles pour en des programmes avec des boucles Tant que.
II.4.3 Représentation d’un algorithme en organigramme (تمثيل الخوارزم عن طريق الهيكل التنظيمي)
Un organigramme est une représentation graphique d’un algorithme, il permet de schématiser
graphiquement la solution d’un problème. Pour le construire, on emploie les symboles normalisés
suivants :
Symbole )الشكل( Désignation (التعريف)
Début ou fin de l’organigramme
Instruction ou groupe d’instructions
d’entrée/sortie
Instruction ou groupe d’instructions sur des
variables
Instruction conditionnelle
Oui Non
Chapitre 2 : Algorithmes : notions de base
Support de cours, Première version , Février 2017 | 13
Sens conventionnel des liaisons : ( متفق عليهإتجاه التوصيلات ال )
Les différents symboles sont reliés entre eux par des lignes de liaisons (flèches)
Le sens des lignes de liaison doit être :
� De haut en bas.
� De gauche à droite.
Exemple 2.13:
Pour décider qu’une personne est obese ou non on utilise l’indice de masse corporel (IMC). On dit
qu’une personne est obese si l’IMC est supérieure à 30.
IMC = poids/taille2
(Par exemple : IMC = 55/ (1,65 x 1,65) = 20,2 si vous pesez 55 kilos et mesurez 1m65),
II.4.4 Trace d’exécution d’un algorithme : )أثر تنفيذ الخوارزم(
Une trace d’exécution d’un algorithme est une représentation manuelle du comportement de cet
algorithme sous forme d’un tableau dans le but de comprendre son fonctionnement.
Le titre des colonnes du tableau est le nom des variables de l'algorithme. Le titre des lignes est le
numéro des lignes de l'algorithme. Le contenu des cellules est la valeur des variables de l'algorithme.
Exemples 2.14: ci-dessous la trace d’exécution de l’exemple suivant :
N° Ligne Code
1
2
3
4
5
compteur � 1 ; (*initialisation *)
Tant que (compteur < =7) faire
Ecrire (‘Bonjour les informaticiens !’) ;
Compteur � compteur+1 ;
(*Incrémentation *)
Fin Tant Que
Début
Obtenir la taille
et le poids
IMC = poids/taille*taille
Fin
Ecrire(‘Vous êtes obese’)
Ecrire(‘Vous n’êtes pas obese’)
IMC >=30
Chapitre 2 : Algorithmes : notions de base
Support de cours, Première version , Février 2017 | 14
Trace d’exécution :
Etapes compteur Condition (compteur<=7)
Sortie de la boucle Application résultat
1 1 1 <= 7 oui Bonjour les Informaticiens !
2 2 2 <= 7 oui Bonjour les Informaticiens !
3 3 3 <= 7 oui Bonjour les Informaticiens !
4 4 4 <= 7 oui Bonjour les Informaticiens !
5 5 5 <= 7 oui Bonjour les Informaticiens !
6 6 6 <= 7 oui Bonjour les Informaticiens !
7 7 7 <= 7 oui Bonjour les Informaticiens !
8 8 8 <= 7 Non -
9 Passage à l’instruction juste après la boucle tantque
II.5 Les opérateurs : )العاملات(
Opérateur Désignation Symbole Exemple
Opérateurs Arithmétiqu
es
Addition L’addition ordinaire + 5+7
Soustraction La soustraction ordinaire - 2-3
Multiplication La multiplication ordinaire * 4*6
Division La division euclidienne / 10/5
Modulo Le reste de la division Mod 10 mod 3
(donne 1)
Division Entière La partie entière du quotient Div 10 div 3
(donne 3)
Opérateurs prioritaires : *, /, div et mod.
Opérateurs secondaires : + et -.
Vous pouvez utiliser des parenthèses.
Opérateurs
Logiques
ET logique Donne TRUE si les deux
opérandes sont vrais AND
a b And
0 0 0
0 1 0
1 0 0
1 1 1
Ou logique
Donne TRUE si l’un de ces
opérandes est vrai, ou les deux
sont vrais
OR
a b OR
0 0 0
0 1 1
1 0 1
1 1 1
Négation
-
Not
a Not
0 1
1 0
Opérateur ultra-prioritaire : NOT.
Opérateur semi-prioritaire : AND.
Opérateurs non prioritaires : OR et XOR.
La relation d’ordre false<true est juste.
Opérateurs
relationnels
Supérieur ou égale - >= 8>=10
Supérieur Supérieur strictement > 5>2
Inférieur ou égale - < 1<100
Inférieur Inférieur strictement <= 2<=0
Chapitre 2 : Algorithmes : notions de base
Support de cours, Première version , Février 2017 | 15
Egalité - = A=A
Inégalité - <> 5<>2
Affectation Opérateur d’affectation Assigner une valeur à une
variable ���� A � 5
Priorité des opérateurs
� Niveau 1 : NOT. � Niveau 2 : *, /, mod, div, AND. � Niveau 3 : +, -, OR, XOR. � Niveau 4 : =, <, >, <=, >=, <>.