Académique Documents
Professionnel Documents
Culture Documents
قائمة المراجع
1. Cormen, Leiserson, Rivest « Introduction à l'algorithmique » Editeur : Dunod, 2002
الخوارزمية مفهوم قديم يعود إلى مطلع القرن التاسع الميالدي في زمن الدولة العباسية .وقد ظهر االهتمام بها كثيرا منذ ظهور
الحواسيب ،فشاع استخدامها والتركيز على مبادئها في الكتب واألبحاث العلمية والتطبيقية.
الخوارزمي هو محمد بن موسى الخوارزمي ،قيل أنه ولد حوالي 164هـ 781م في مدينة Bخوارزم في إقليم خراسان اإلسالمي
(والتي تسمى ’’خيوا‘‘ في العصر الحالي ،في جمهورية أوزبكستان) .انتقل إلى بغداد Bوعاش فيها إلى سنة 847م ،في عصر
الخليفة المأمون وتوفي فيها .برز الخوارزمي في علوم الرياضيات والفلك وترك أثرا واضحا ً فيها .فهو أول من وضع مبادئ علم
الجبر ،واصطلح على تسميته بهذا االسم حين ألف كتابا سماه "الجبر والمقابلة" ،وعنه أخذت كلمة الجبر بأشكالها المختلفة في
جميع اللغات .ويقول الخوارزمي إن الخليفة المأمون هو من طلب منه وضع كتابه هذا وشجعه على ذلك .كما وضع الخوارزمي
كتابا آخر في فن الحساب نقل إلى الالتينية Bتحت عنوان"Algoritmi de Nemero Indriun“ :
بقي الحساب العشري وجداول الضرب والقسمة تعرف باسم الخوارزميات واأللواح الخوارزمية لقرون في أوربا .لكن هذا
المصطلح تطور مع الزمن ليرتبط ،مؤخرا ارتباطا وثيقا ببرمجة الحواسيب.
لحل مسألة ما ،من األفضل التفكير في الخوارزمي قبل كتابة البرنامج.
ترميز تفكير
برنامج خوارزمي مسألة
DEBUT
Corps de l’algorithme
) (Le Corpsالجسد
FIN.
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
متسلسلة الواحدة تلو األخرى ،في هذه الحالة نتكلم عن تتابع العمليات (.)Séquence d’instructions
تنفذ في بعض الحاالت دون سواها ،وفي هذه الحالة نتكلم عن تركيبة متناوبة ( .)Structure alternative
يعاد تنفيذها عدة مرات ،وفي هذه الحالة نتكلم عن تركيبة تكرارية (.)Structure répétitive
تعليمة 1
تعليمة 2
............
ال
الشرط نعم
)(Condition
تعليمات 2 تعليمات 1
قاعدة الكتابة:
SI (Condition) ALORS
DSI
Action1
FSI
[SINON
DSIN
Action2
]FSIN
العارضتان [] تعنيان أن الجزء الخاص بـ Sinonهو اختياري.
: Conditionللتعبير عن شرط نستعمل العمليات الشرطية التالية>< = => < => > :
:Actionهي إما :
تعليمة واحدة أولية.
مجموعة تعليمات
تركيبة متناوبة أخرى
تركيبة تكرارية.
مالحظة :في حالة ما إذا كانت التركيبة SIأو SINONتحتوي تعليمة واحدة فقط فإنه يمكننا االستغناء عن DSI
FSIأو .DSIN FSIN
مثال :حساب القيمة المطلقة
SI (a < 0) ALORS
DSI
;)abs a * (-1
FSI
SINON
DSIN
;abs a
FSIN
السنة األولى إعالم آلي -القبة- المدرسة العليا لألساتذة
2022 - 2021 : الموسم قسم المعلوماتية
DSIN وعنDSI FSI تحتويان تعليمة واحدة فقط فيمكننا االستغناء عنSINON وSI في هذه الحالة التركيبتان
.FSIN
SI (a < 0) ALORS
abs a * (-1);
SINON
abs a;
إظهار تقدير الطالب حسب معدله: 2 مثال
SI (N >= 16) Alors
DSI
ECRIRE (‘Très Bien’);
FSI
SINON
DSIN
SI (N >= 14) Alors
DSI
ECRIRE (‘BIEN’) ;
FSI
SINON
DSIN
SI (N >= 12) Aors
DSI
ECRIRE (‘Assez Bien’);
FSI
SINON
DSIN
SIN (N>=10) Alors
DSI
Ecrire (‘Passable’);
FSI
SINON
DSIN
Ecrire (‘Echec’);
FSIN
FSIN
FSIN
FSIN
.DSIN FSIN وعنDSI FSI تحتويان تعليمة واحدة فقط فيمكننا االستغناء عنSINON وSI التركيبتان،في هذه الحالة أيضا
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
cpt v_init
Action
أمثلة:
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
التركيبة :TANTQUEعند عدم معرفة عدد التكرارات وفي حالة ارتباط التكرار بتحقق شرط معين نستعمل الحلقة .TANTQ
مخطط الحلقة TANTQUE
الشرط
ال
نعم
Action
قاعدة الكتابة:
TANTQUE Condition FAIRE
DTQ
Action
FTQ
شرح طريقة العمل:
تكرر العملية مادام الشرط صحيحا .في بداية كل كرة يقيم الشرط ،إذا كان صحيحا تنفذ التعليمات Actionوإال نمر إلى التعليمة
الموالية.
مالحظة :يمكن أن ال تكرر التعليمات وال مرة واحدة ،وهذا في حالة عدم تحقق الشرط من البداية.
أمثلة:
إظهار مربع األعداد مادام العدد المدخل مختلفا عن الصفر Exp1: إدخال أعداد والتوقف عندما يكون المجموع أكبر من Exp1: 500
;)Lire(val ;)Lire(val
Tantque (val <> 0) faire ;Somme val
DTQ Tantque (Somme <= 500) faire
;Ecrire (val * val) DTQ
;Lire(val) ;Lire(val)
FTQ ;Somme Somme + val
FTQ
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
Action
ال
الشرط
نعم
قاعدة الكتابة:
Répéter
Action
Jusqu’à Condition
شرح طريقة العمل:
التعليمات Actionيعاد تنفيذها حتى يتحقق الشرط .Condition
في نهاية كل كرة يقيم الشرط ،إذا كان خاطئا يعاد تنفيذ التعليمات Actionوإذا كان صحيحا نمر إلى التعليمة الموالية.
مالحظة :التعليمات Actionتنفذ على األقل مرة واحدة ،وهذا ألن الشرط ال تتم مراقبته إال بعد تنفيذ التعليمات .Action
أمثلة:
إظهار مربع األعداد مادام العدد المدخل مخالفا عن الصفر Exp1: إدخال أعداد والتوقف عندما يكون المجموع أكبر من Exp1: 500
TANTQUE
ال
تنفذ التعليمات على األقل مرة واحدة ال
نعم معرفة عدد التكرارات
REPETER
نعم
POUR
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
أمثلة عن العبارات:
2a
(et(b/c <>0))i<= n/2 n b
≤i et ≠ 0
2 c
األولويات:
2 4
5
عند تنفيذ البرنامج ،يتم تحميله في الذاكرة المركزية ،والقيم المسندة إلى المتغيرات يجب حفظها طيلة فترة التنفيذ .كما يجب حجز
األماكن الضرورية لهذه المتغيرات ،ولهذا يتوجب التصريح بالمتغيرات قبل استعمالها.
إذن ،فالمتغيرات يمكن تمثيلها بخانات في الذاكرة ( )cases mémoiresوتحتوي قيمة ،حيث أن هذه القيمة ليست بالضرورة
ثابتة .وتتميز المتغيرات بـ:
مثال a, a1, a_1, nom, age :يمكن أن تكون أسماء لمتغيرات -
âge, 1nomال يمكن أن تكون أسماء لمتغيرات
النوع :ويكون ثابتا ،فال يمكن تغييره أثناء البرنامج ،ويمثل: -
طبيعة المعلومات المسندة للمتغير
مجال تعريف القيم المسندة للمتغير
العمليات القابلة للتنفيذ على المتغيرات
القاعدة:
CONSTANTE
Identificateur_Constante = valeur
مثال:
CONSTANTE
Pi=3.14
’Titre=’Résultat
Cent=100
’Virgule = ‘,
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
األنواع
: مجال القيم
-1 0 1
)valeurs non signées( تمثل قيما بدون إشارةByte, Word, Cardinal, Longword, Qword : مالحظه
:أمثلة
program fibonacci;
var
next, first, second, n, i : integer;
begin
writeln('donner n :');
Readln(n);
first := 1;
second:=1;
For i:=2 to n do
begin
next := first + second;
second := first;
first:= next;
end;
writeln(next);
readln;
end.
28657 = 22 قيمة الحد -
Range والذي يعنيexit code 201 ( يعطينا الخطأ46368 )والتي تساوي23 قيمة الحدBفي حين أنه إذا حاولنا حساب -
32767 = والتيInteger أي تجاوز القيمة الكبرى للنوعCheck Error
: ويصيح البرنامج كما يليInt64 أوlongint لتجاوز هذا الخطأ نستعمل النوع
program fibonacci;
var
next, first, second : Int64;
n, i : integer;
begin
writeln('donner n :');
Readln(n);
first := 1;
second:=1;
For i:=2 to n do
begin
next := first + second;
second := first;
first:= next;
end;
writeln(next);
readln;
end.
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
:مثال
program var_booleen;
var
a, b : boolean;
begin
a:=true;
b:=false;
writeln (a, ' and ', b ,' = ', a AND b) ;
writeln (a, ' OR ', b ,' = ', a OR b) ;
writeln('NOT (',a,') = ', NOT(a));
writeln('NOT (',b,') = ', NOT(b));
التصريح بالمتغيرات
VAR
Identificateur_Var: Type;
:1مثال
VAR
N: entire; X1, X2 : reel;
C: Char; B: Booléen;
:2 مثال
TYPE
T_Mois = 1..31;
T_Alpha : ‘A’..’Z’;
VAR
M: T_Mois;
A: T_Alpha;
السنة األولى إعالم آلي -القبة- المدرسة العليا لألساتذة
2022 - 2021 : الموسم قسم المعلوماتية
BEGIN
Corps du programme
( الجسدLe Corps)
END.
التصريحات .2
التصريح بالثوابت 1.2
قاعدة
CONST
Nom_Constante = valeur;
Exemple
CONST
pi=3.14;
التصريح باألنواع 2.2
)standard ( األنواع القياسية .أ
CHAR : caractère
INTEGER : entier
REAL : réel
BOOLEAN : booléen
السنة األولى إعالم آلي -القبة- المدرسة العليا لألساتذة
2022 - 2021 : الموسم قسم المعلوماتية
:قاعدة
TYPE
Nom_Type = Type;
مثال
TYPE
Jours = (Dim, Lun, Mar, Mer, Jeu, Ven, Sam, Dim );
Indice = 1..10 ;
التصريح بالمتغيرات 3.2
:قاعدة
VAR
Nom_Variable : Type ;
مثال
VAR
a, b : integer;
lettre1, lettre2 : char ;
bool : Boolean ;
x, y : real ;
j : Jours;
i : Indice ;
جسد البرنامج .3
اإلسناد 1.3
;Nom_variable := Expression :قاعدة
:مثال
a: = 2;
a:= b;
a:= 2*b + 3;
العبارات 2.3
:أنواع العمليات
IF التعليمة 3.3
:قاعدة
IF (Condition) THEN
BEGIN
Instruction 1;
…..
Instruction n;
END
ELSE
BEGIN
Intruction n+1;
….
Instruction n+m;
END;
صحيحينB مقارنة عددين:مثال
PROGRAM Comparaison;
USES CRT;
VAR
a, b : integer;
BEGIN
CLRSCR;
Read(a);
Read(b);
IF(a > B) THEN
WRITE (a, ' > ', b)
ELSE
IF(a < b) THEN
WRITE (a, ' < ', b)
ELSE
WRITE (a, ' = ', b);
READKEY;
END.
CASE التعليمة 4.3
:قاعدة
CASE variable OF
Value1 : BEGIN Action1 END;
Value2 : BEGIN Action2 END;
...
[ELSE
BEGIN Action_n END;]
End;
integer / character / string : هي متغير من نوعvariable :مالحظة
هو اختياريELSE الجزء الخاص ب
السنة األولى إعالم آلي -القبة- المدرسة العليا لألساتذة
2022 - 2021 : الموسم قسم المعلوماتية
IF CASE
Program IF_test; Program Case_test;
uses crt; uses crt;
Var a:Integer ; Var a:Integer ;
BEGIN BEGIN
clrscr; clrscr;
read(a); read(a);
IF(a =1) then WriteLn('Dimance') Case a of
ELSE 1:WriteLn('Dimance');
IF(a=2) then WriteLn('Lundi') 2:WriteLn('Lundi');
ELSE 3:WriteLn('Mardi');
IF(a=3) then WriteLn('Lundi') 4:WriteLn('Mercredi');
ELSE 5:WriteLn('Jeudi');
IF(a=4) then WriteLn('Mardi') 6:WriteLn('Vendredi');
ELSE 7:WriteLn('Samedi');
IF(a=5) then WriteLn('Mercredi') else
ELSE write('valeur non valide');
IF(a=6) then WriteLn('jeudi') End;
ELSE readkey;
IF(a=7) then WriteLn('Vendredi') END.
ELSE WriteLn(' valeur non valide ');
READKEY ;
END.
السنة األولى إعالم آلي -القبة- المدرسة العليا لألساتذة
2022 - 2021 : الموسم قسم المعلوماتية
READKEY;
END.
REPEAT التعليمة 7.3
:قاعدة
REPEAT
Instruction 1;
…..
Instruction n;
UNTIL (Condition);
READ (a);
i := 1; // la valeur initiale de i est 1
REPEAT
i:= i+1;
UNTIL (i > a div 2) OR (a mod i = 0);
READKEY;
END.
READ, READLN إجراءات اإلدخال 8.3
:قاعدة
READ (Variable_1, Variable_2,.., Variable_n);
READLN (Variable_1, Variable_2,.., Variable_n);
:1 قاعدة
(*C’est un commentaire*)
:2 قاعدة
//Syntaxe2
:3 قاعدة
{Syntaxe3}
{ ligne1
Ligne2
Ligne2}
مثال
program PGCD;
(*pour utiliser la commande CLRSCR il faut utiliser la bibliothèque CRT*)
uses crt;
VAR
a, b : integer;
BEGIN
{
La commande clrscr permet d'éffacer l'écran et de déplacer le curseur
dans le coin supérieur gauche de l'écran
}
CLRSCR;
WRITELN('Donner la valeur du premier nombre');
READ(a);
WRITELN('Donner la valeur du deuxieme nombre');
READ(b);
WHILE(a <> b) DO
BEGIN
IF(a>b) THEN
a := a -b
ELSE
b := b-a;
END;
WRITE ('Le PGCD = ',a);
//ReadKey est une commande de la bibliothèque crt
//Elle permet d'effectuer la lecture d’une touche enfoncée au clavier.
READKEY;
END.
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
مثال:
;Program Divison
}{$MODE Delphi
;Uses SysUtils, CRT
Var
;a,b :Integer
BEGIN
;clrscr
Try
;)read(a
;)read(b
;)WriteLn(a/b:0:2
Except
;)'On EZeroDivide do WriteLn('Division par 0
;)On e: Exception do Writeln(e.ClassName, ' ', e.Message
;End
;readkey
END.
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية
المكتبة :CRTتقوم بتنفيذ Bالكتابة باأللوان ،وتحريك المؤشر والقراءة من لوحة المفاتيح. .1
Reserved Word Description
Clrscr Clears the screen; can be combined with a background color
)Gotoxy(int,int Takes the cursor to the specified x,y position
Textbackground(word/ Background color
)int
)Textcolor(word/int Color of text
Readkey Reads a key; Can be assigned to a variable
)Delay(int Suspends execution for the specified time in milliseconds
المكتبة :MATHتحتوي هذه الوحدة على إجراءات رياضية مشتركة (الدوال المثلثية ،اللوغاريتمات ،إلخ) باإلضافة .2
إلى إجراءات أكثر تعقيدًا (مجموعات المصفوفات ،إلخ).مثل ))COS, ArcCos, Power :
المكتبة :matrixتوفر إجراءات معالجة المصفوفات. .3
السنة األولى إعالم آلي المدرسة العليا لألساتذة -القبة-
الموسم 2022 - 2021 : قسم المعلوماتية