algorithmiques et programmation en langage pascal

15
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É

Upload: others

Post on 24-Oct-2021

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algorithmiques et programmation en langage PASCAL

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É

Page 2: Algorithmiques et programmation en langage PASCAL

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

II.4.2.1.1. Structure séquentielle : )الصيغة التسلسلية( 7

II.4.2.1.1.1. Opération d’affectation ) تعليمة الإسناد( 7

II.4.2.1.1.2. Incrémentation/décrémentation ) الإضافة والإنقاص( 8

II.4.2.1.1.3. Les opérations d’ENTREE/SORTIE ) تعليمات الإدخال

)والإخراج 8

II.4.2.1.2. Les instructions conditionnelles )التعليمات الشرطية( 8

II.4.2.1.3. Les Instruction répétitives (boucles) : (التعليمات التكرارية) 9

II.4.2.1.3.1. La boucle : « pour » 10

II.4.2.1.3.2. La boucle : « tant que » 10

II.4.2.1.3.3. Différence entre pour et tant que 11

II.4.3. Représentation d’un algorithme en organigramme ( تمثيل الخوارزم عن طريق

(الهيكل التنظيمي12

II.4.4. Trace d’exécution d’un algorithme : )أثر تنفيذ الخوارزم( 13

II.4.5. Opérateurs : )العاملات( 14

Page 3: Algorithmiques et programmation en langage PASCAL

Chapitre 2 : Algorithmes : notions de base

Support de cours, Première version , Février 2017 | 3

II. Algorithme II.1. Définition : : : :

Un algorithme (الخوارزم) est une suite finie et non-ambiguë d'instructions permettant de résoudre

un problème, le mot algorithme est dérivé du nom du mathématicien persan Al-Khawarizmi, le père de

l'algèbre.

Un problème algorithmique est souvent formulé comme la transformation ( حويلت )d'un ensemble

de valeurs, d'entrée (المدخلات), en un nouvel ensemble de valeurs, de sortie (المخرجات).

Exemples d'algorithmes :

� Une recette de cuisine (ingrédients → plat préparé)

� La recherche dans un dictionnaire (mot → définition)

� La division entière (deux entiers → leur quotient)

� Le tri d’une séquence (séquence → séquence ordonnée)

� … etc

Figure 1 : Fonctionnement d’un algorithme

II.1.1. Propriété d’un algorithme : ( الخوارزمخصائص )

� Un algorithme doit tenir compte de tous les cas possibles. Il traite le cas général et les cas

particuliers.

� Il contient toujours un nombre fini d'actions.

� Il est indépendant des langages de programmation et des matériels informatiques.

� Il répond, également, à la question : comment faire un travail sans la moindre ambiguïté ?

� L’écriture d’un algorithme est une tache de programmation à visée universelle.

Cependant, un programme (برنامج) est une série d’instructions qui réalise (implémente) un

algorithme dans un langage de programmation donné sur une machine (ordinateur, super calculateur,

smartphone, … etc) bien déterminée.

II.2. Démarche pour résoudre un problème : )منهجية حل إشكال(

Un algorithme peut être spécifié de différentes manières :

� En langage naturel,

� Graphiquement,

Algorithme

(Traitement)

En المعالجةtr

és

Sort

ies

Page 4: Algorithmiques et programmation en langage PASCAL

Chapitre 2 : Algorithmes : notions de base

Support de cours, Première version , Février 2017 | 4

� En pseudo-code )برنامج شبيه( (combiner le langage naturel avec les mots clés d’un langage de

programmation),

� Par un programme écrit dans un langage de programmation informatique.

� ... etc

La seule condition est que la description soit précise, un algorithme n'est donc exécutable

directement par aucune machine, mais il a l'avantage d'être traduit facilement dans tous les langages de

programmation.

L’élaboration d’un algorithme précède l’étape de programmation, c’est une démarche de

résolution de problème exigeante :

� La rédaction d’un algorithme est un exercice de réflexion qui se fait sur papier.

� L'algorithme est indépendant du langage de programmation, par exemple, on utilisera le

même algorithme pour une implémentation en Java, ou bien en C++ ou en Visual Basic.

� L’algorithme est la résolution brute d’un problème informatique.

Figure 2 : Etapes de résolution d’un problème.

Exemples concrets des algorithmes :

i. Problème : préparation d’un litre de glace,

Entrés :

1. ½ litre de lait

2. 6 œufs

3. 200 grammes de sucre glacé

4. 2 cuillères à café de café soluble

Traitement :

1. Faire bouillir le lait,

2. Battre les jaunes d’œufs avec le sucre,

Problème

(Énoncé précis)

Analyse

Implémentation

(Codage)

Algorithme

Programme

Résultats

Dans un langage de

programmation

PASCAL, C, JAVA,

… etc

Page 5: Algorithmiques et programmation en langage PASCAL

Chapitre 2 : Algorithmes : notions de base

Support de cours, Première version , Février 2017 | 5

3. Verser dessus le lait bouillant en remuant avec une spatule,

Sortie :

Un litre de glace préparé.

ii. Problème : Trouver la liste des diviseurs d'un nombre

Entrés : Soit N un nombre entier.

Traitement : 1. On génère des diviseurs i à partir de 1 jusqu’à N / 2

2. Pour chaque diviseur généré, on divise N par i.

3. On regarde le reste de la division s’il est égal à 0, alors i est un diviseur et il faudra

donc l’afficher.

4. Pour générer les diviseurs i on rajoute 1 à chaque fois à i qui vaut 1 au départ.

Sorties : liste des diviseurs de N entre 1 et N/2.

II.3. Langage de description d’un algorithme ( الخوارزم لغة كتابة )

Un langage de description d’un algorithme (LDA) est l’ensemble de mots clés et de structures

(données et contrôles) permettant de décrire d’une manière rigoureuse et soigné (Indentation) assez

proche de celles des langages de programmation, dont l’objectif est de migrer facilement vers un langage

de programmation structuré (PASCAL, C, …) dans la phase de codage.

Remarque : en algorithmique on ne fait pas la différence entre majuscule et minuscule lors de

l’écriture d’un algorithme :

Exemple : les mots algorithme, ALGORITHME, Algorithme sont équivaux.

II.4. Structure générale d’un algorithme (الهيكل العام للخوارزم) Un algorithme est composé de trois parties fondamentales :

� L’en-tête : permet tout simplement d’identifier l’algorithme.

� Déclaration : liste de toutes les constantes et variables utilisées dans l’algorithme.

� Le corps : cette partie contient les ordres ou les tâches de l’algorithme.

Partie Entête Algorithme nom_de_Lagorithme ;

Partie déclaration Constantes : listes des constantes ; Variables : listes des variables ;

Début

Corps de l’algorithme

Instruction_1 ; Instruction_2 ; Instruction_3 ; … Instruction_n ;

Fin.

Le point-virgule ( ;) est une marque de terminaison pour

chaque instruction

Les mots : algorithme, constantes, variables,

début et fin sont des mots clés propre à LDA

La dernière instruction (Fin) se termine avec un

point

Page 6: Algorithmiques et programmation en langage PASCAL

Chapitre 2 : Algorithmes : notions de base

Support de cours, Première version , Février 2017 | 6

Exemple 2.1: l’algorithme suivant permet de calculer le carré d’un nombre entier entré par

l’utilisateur (Exercice1 de TPn°2) :

Algorithme Calcul_de_carre_dun_nombre ;

Variables a, c : entiers

Début

Ecrire(‘Entrer un nombre : ’) ;

Lire(a) ;

c = a*a ;

Ecrire(‘Le carée de : ’,a, ‘est :’, c) ;

Fin.

II.4.1. Partie déclarations (قسم التصريحات)

II.4.1.1. Les variables : (المتغيرات)

Une variable est un emplacement mémoire où est stockée une donnée sous forme d’octets.

L’identificateur de cette variable permet d’avoir accès à ces données sans être obligé de travailler sur

les octets.

Déclarer une variable, c’est réserver une certaine place mémoire adaptée au type de la variable et

lui associer un identificateur, la valeur que peut porter une variable peut être modifié durant

l’exécution du programme.

Comment déclarer les variables (Syntaxe (الصيغة)) ?

Variable nom_de_variable : Type ;

Variables nom_variables_1, nom_variable_2, …, nom_variable_n : Type ;

Où :

Nom_de_variable : est l’identificateur de la variable, il est composé par des chiffres et des

lettres, et ne commence pas par un chiffre et ne contient pas des espaces.

Type : Un type (de variable) détermine l’ensemble de valeurs possibles de la variable المتغيرطبيعة

déclarée pour designer la nature du contenu de la variable et les opérations pouvant être

effectuées sur celle-ci. Lorsqu’une variable est déclarée (association d’un identifiant et d’un

type) la place mémoire correspondante au type est réservée à l’identifiant de la variable.

Les variables peuvent être de différents types

Type de donnée Description

Entiers Les nombres entiers

Réels Les nombres réels

Caractère Une variable est déclarée caractère porte un et un seul caractère

Chaine de caractères Une variable chaine de caractère regroupe plusieurs caractères

Exemple 2.2: Variable a : entier;

Variables c1, moyenne : réels ;

Variable is_empty : booléen ;

II.4.1.2. Les constantes (الثوابت)

Page 7: Algorithmiques et programmation en langage PASCAL

Chapitre 2 : Algorithmes : notions de base

Support de cours, Première version , Février 2017 | 7

Une constante représente des nombres, des caractères, des chaines de caractères, … dont la valeur

ne peut pas être modifiée au cours de l’exécution de l’algorithme.

Comment déclarer une constante ?

Constante nom_de_la_constante = valeur ;

Constantes nom_constante_1 = valeur_1, nom_ constante _2 = valeur_2, …, nom_

constante _n = valeur_n ;

Exemple 2.3 :

II.4.2 Le corps de l’algorithme (الجزء الأساسي للخوارزم)

Le déroulement de tout algorithme peut se faire avec les 3 structures suivantes :

1. Séquentielle .suite d’instructions qui se succèdent (déroulement linéaire) : )متتالية(

2. Alternative .suivant le résultat d’un test on exécute une séquence ou une autre : )التناوب(

3. Répétitive une instruction (ou un bloc d’instruction) est répétée sous une : )التكرار(

certaine condition.

Remarque :

Si on veut mentionner nos remarques dans l’algorithme, on utilise la notion des

commentaires (التعليقات). Les commentaires ne sont pas considérés dans l’exécution.

La syntaxe d’un commentaire est la suivante :

(*je suis un commentaire*)

II.4.2.1 Structure séquentielle : )الصيغة التسلسلية(

Syntaxe : Début

Instruction_1 ; Instruction_2 ; Instruction_3 ; … Instruction_n ;

Fin.

On distingue parmi les types d’instructions : l’opération d’affectation.

II.4.2.1.1 Opération d’affectation ) تعليمة الإسناد(

L’instruction d’affectation, comme son nom l’indique, permet d’affecter une valeur à une variable

dont la syntaxe est la suivante :

Variable ���� Expression ;

L’affectation se faire toujours en deux temps :

1. Evaluation de l’expression,

2. Affectation du résultat de l’expression à la variable.

Exemple 2.4 :

Constante a = 5 ;

Constantes is_correct = false, car = ‘c’, …, b = 4.5 ;

Page 8: Algorithmiques et programmation en langage PASCAL

Chapitre 2 : Algorithmes : notions de base

Support de cours, Première version , Février 2017 | 8

a����5 ; (attribuer la valeur 5 à la variable a, a donc de type entier, et se lit : a reçoit 5)

b = 2+3/8 ; (b : variable réelle)

C= true or (5>8) (c : variable booléenne)

Str = ‘Bonjour’ + ‘tout le monde’ ; (str : variable chaine de caractère, concaténation de

deux chaines de caractères)

Remarque : Les variables et constantes utilisées dans l’expression plus l’identificateur doivent avoir le

même type.

II.4.2.1.2 Incrémentation/décrémentation ) الإضافة والإنقاص(

L’incrémentation est l'opération qui consiste à ajouter 1 (ou une valeur entière) à une variable.

L'opération inverse, la décrémentation, consiste à retirer 1 (ou une valeur entière) à une variable, cette

opération est très courante dans les boucles :

Exemple :

• L’instruction suivante permet d’ajouter 1 à la valeur de x : x � x+1 ; et se lit : la nouvelle

valeur de x égale l’ancienne plus 1, et le 1 dans ce cas s’appelle le pas d’incrémentation

) خطوة الإضافة قيمة(

• A � a+3 : incrémentation avec un pas égale à 3.

• L’instruction suivante permet de retirer 2 de la valeur de c : c � c-2 ; le 2 dans ce cas

s’appelle le pas de décrémentation ) خطوة الإنقاص قيمة( .

II.4.2.1.3 Les opérations d’ENTREE/SORTIE )تعليمات الإدخال والإخراج(

Un algorithme peut avoir des interactions avec l’utilisateur, Il peut afficher un résultat comme il

peut demander à l’utilisateur de saisir une information afin de la stocker dans une variable.

En informatique, on raisonne en se mettant “à la place de la machine”, donc :

II.4.2.1.3.1 Instruction de lecture (entrée) :

L'instruction de prise de données sur le périphérique d'entrée (en général le clavier)

Lire(variable) ; Lire(variable1, variable2, …) ;

Exemple 2.5:

Lire(a) ; Lire(a, b, c) ;

II.4.2.1.3.2 Instruction d’écriture (Sortie) :

L'instruction d’affichage des résultats sur le périphérique de sortie (en général l'écran)

écrire(variable) ; écrire(variable1, variable2, …) ;

Exemple 2.6:

écrire(a) ; écrire(5) ;

Page 9: Algorithmiques et programmation en langage PASCAL

Chapitre 2 : Algorithmes : notions de base

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

Page 10: Algorithmiques et programmation en langage PASCAL

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

Page 11: Algorithmiques et programmation en langage PASCAL

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.

Page 12: Algorithmiques et programmation en langage PASCAL

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

Page 13: Algorithmiques et programmation en langage PASCAL

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

Page 14: Algorithmiques et programmation en langage PASCAL

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

Page 15: Algorithmiques et programmation en langage PASCAL

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 : =, <, >, <=, >=, <>.

To be continued … ☺

PASCAL coming soon