Professional Documents
Culture Documents
الخوارزميات
1
خوارزميات البحث المستخدمة ضمن شبكة االنترنت والتي تقوم بالبحث وترتيب نتائج البحث
وعرضها علينا كنتائج الستفساراتنا.
الخوارزميات الحسابية:
وهي الخوارزميات التي تتعامل مع المقادير الرياضية .وقد شاع لدى الرياضيين تقديم األمثلة
على هذه الخوارزميات حتى ارتبط مفهوم الخوارزمية عند الكثيرين بهذا النوع .وسنقدم فيما يلي
من خالل دراستنا لطرق تمثيل الخوارزميات أمثلة على النوعين الحسابية والغير حسابية لهذه
الخوارزميات.
-1البداية.
-2احلصول على قيمة x
-3حساب قيمة البسط A = 2x + 3
-4حساب قيمة املقام B = 3x -4
Y = A / B -5حساب قيمة املقدار
-6النهاية.
2
استخدام الخوارزمية في الحسابات اليدوية
يمكن استخدام الخوارزمية المذكورة إلنشاء جدول يحوي قيم المقدار yلمجموعة من قيم ""x
التابع للمقدار xمن القيمة 3حتى القيمة 8 يدويا ،فمثال إذا أردنا حساب قيم المقدار y
يمكن تنظيم الجدول التالي:
يدويا يمكن كتابة قيم Xأوال ثم حساب بقية القيم A, Bانتهاءا بقيمة Yالتي كان حسابها
مطلوبا ،ويمكن تنفيذ ذلك باستخدام آلة حاسبة ،ولكن كتابة خوارزمية ثم استخدامها في الحل
ميزات الخوارزمية حيث تكتب لمرة
يعطي سهولة في الحل ويمنع حدوث األخطاء .وهي احدى ّ
واحدة وتحول عبر لغات البرمجة إلى برنامج حاسوبي ثم وعند الحاجة إليها تطلب وتستخدم
مباشرة.
ن ستخدم لكتابة اخلوارزميات مصطلحات حمددة متعارف عليها تسهل من طريقة الكتابة وفهم اخلوارزمية
كما يلي:
3
استدعاء خوارزمية جزئية
INPUT أشكال.
A,B
- 1المخطط التدفقي التتابعي :مناسب لتمثيل
- 1البداية.
4
- 4اطبع النتائج A,B
يتم وفق هذا المخطط تعديل تتالي الخطوات المكونة للخوارزمية باالستناد على شروط
START
INPUT
P
Yes No
P >1000
PRINT Y
P, Y
END
5
املادة ونريد كتابة خوارزمية حلساب سعر املبيع الذي يساوي سعر الشراء مضافاً إليه %01من هذا
السعر.
يوضح الشكل التايل خطوات حل هذه اخلوارزمية:
START
K=1
INPUT IN_PRICE
PRINT OUT_PRICE
YES
K < 10 K = K +1
NO
END
6
ميكن أن يكون املخطط التدفقي احللقي مركباً إذا احتوى أكثر من حلقة واحدة بشكل مركب حبيث
تكون احللقات متداخلة مثالً إذا كان لدينا ثالث جمموعات املواد (منظفات ،مفروشات ،أغذية) وكل
جمموعة حتوي 01مادة وأردنا تكرار اخلوارزمية من أجل هذه اجملموعات ،يكون متثيل اخلوارزمية كما
يلي:
START
K=1
L=1
INPUT IN_PRICE
* OUT_PRICE = IN_PRICE
1.1
PRINT OUT_PRICE
1 NO
END 7
إذاً بالنتيجة ميكن القول أن املخطط التدفقي ميثل اخلطوات أو املراحل املطلوب من اخلوارزمية تنفيذها.
لغة شبه البرنامج:
هي لغة حمدودة التعابري مستخدمة للتعبري عن اخلوارزمية بشكل كتايب على عكس املخططات التدفقية،
حيث مت اشتقاق تعابري هذه اللغة من لغات برجمة ،تؤمن لغة شبه الربنامج طريقة لكتابة اخلوارزمية
بشكل مفهوم وواضح وهي لغة متعارف عليها عاملياً .وميكن انطالقاً منها حتويل اخلوارزمية ألية لغة برجمة
لتحقيقها على احلاسب بسهولة ،وأهم مامييّز هذه اللغة أهنا مستقلة عن لغات الربجمة الفعلية.
مكونات لغة شبه الربنامج:
املتحول ( :)variableوهي اسلوب للتعبري عن األغراض املستخدمة ضمن اخلوارزمية مثالً اسم
املوظف ،سعر شراء السلعة ،تاريخ اليوم ،احلالة االجتماعية للشخص ،ومتثل عادة حبرف أو سلسلة
حمرفية يفضل أن يكون هلا معىن ،وعادة ما تطرأ تعديالت على القيم املخزنة يف املتحوالت أثناء تنفيذ
اخلوارزمية .كأمثلة عليها نذكرx,Y, StudentName, ProductPrice, SocialState :
عادة يتم تعريف املتحوالت باستخدام الكلمة املفتاحية var
الثابت ( :)constantوهي اسلوب للتعبري عن مقدار ثابت القيمة مستخدم يف اخلوارزمية ،وعادة يتم
تعريف الثوابت باستخدام الكلمة املفتاحية const
اإلسناد ( :)وهي إسناد قيمة أو متحول ما ملتحول ما وهذه القيمة ميكن أن تكون ناجتة عن نفيذ
عملية أو عدة عمليات حسابية أو منطقية ،مثالً
X4
)Z 4 + 2 * (y + 6
الصيغة ( :)expressionوهي تركيب ملتحول واحد أو لعدة متحوالت مع عدة عمليات حسابية أو
منطقية بغرض حتقيق هدف ما ضمن اخلوارزمية ،مثالً
X3*Y+5
OUT_PRICE IN_PRICE * 1.5
التعليمات املستخدمة ضمن لغة شبه الربنامج:
تعليمة القراءة ( :)readتستخدم لقراءة قيمة من وحدة دخل وختزينها يف الذاكرة العشوائية يف موقع
معروف باسم متحول ما " " xمثالً .وتكتب كما يف األمثلة التالية:
Read x
Read StudentName
8
تعليمة الكتابة ( :)writeتستخدم لكتابة قيمة موجودة يف الذاكرة على وحدة إخراج (الشاشة) كما
يف األمثلة التالية:
Write x
Write ProductPrice
متكن استخدام التعليمة printلتنفيذ نفس الوظائف اليت تنفذها التعليمة .write
مالحظة :نستخدم عالمات االقتباس إذا أردنا إظهار كلمة أو مجلة كما هي ،مثال:
"Write " Hello Samer
Write "ProductPrice = " ProductPrice
Print "ProductPrice = " ProductPrice
Read A
If A < 1000 then
B A * 1.5
Else
B A * 1.25
Write B
9
التعليمة التكرارية:
تستخدم يف اخلوارزمية لتكرار تنفيذجمموعة تعليمات حىت حتقق شرط يستدعي توقف التنفيذ ،وهلا عدة
أشكال نذكر منها حلقة طاملا " "whileوحلقة من أجل "."for
حلقة طاملا " :"whileوتكتب كما يلي:
While condition loop
Statements
end loop
مثال :إذا أردنا كتابة حلقة جلمع األعداد الصحيحة من 0إىل 011نكتب:
I1
Sum 0
While I <= 100 loop
Sum Sum + i
II+1
End loop
Print Sum
حلقة " :"forتستخدم مثل حلقة whileوحتوي شرط جيب حتققه لتوقف احللقة .فمثالً إذا أردنا
حساب جمموع األعداد من 0إىل 011باستخدام حلقة forنكتب
Sum 0
For I = 1 to 100 loop
; Sum sum + I
End loop
Print Sum
11
أمثلة خلواروميات:
اكتب خوارزمية لقراءة 011رقم ترد تباعاً من وحدة إدخال وختتار األكرب بينها وتضعة يف متحول امسه
xمث تطبع هذا الرقم على وحدة خرج ،باستخدام املخطط التدفقي.
Var x, p, i number
i1
read p
xp
while i < 100 loop
read p
if p > x then
xp
ii+1
end loop
print "the max number is ', x
11
اكتب خوارزمية بلغة شبه البرنامج تقوم بقراءة مجموعة من األحرف االنكليزية التي
ترد تباعا ً من وحدة دخل وتنتهي هذه األحرف بالحرف " "#وتقوم باحصاء الحرف
عدد مرات ورود الحرف " "mوتضعه ضمن متحول اسمه xثم تطبع قيمة هذا
المتحول.
Var x number, c char
x0
read c
while c <> '#' loop
if c = "m" then
x x +1
read c
end loop
print "the count of character m is", x
12
:1 تمرين
:لتكن لدينا الخوارزمية التالية
Var X, Y, Z, W number
Begin
Read X
Read Y
If X > = Y then
Begin
While X > Y loop
XX–Y
ZZ+1
End loop
WX
Print Z , W
end
Else
Begin
Print 0 , X
End
End
13
تمرين :2
-لتكن لدينا الخوارزمية التالية:
Var S, I, N number
Begin
Read N
S1
I1
While I < N loop
SS+2*I+1
II+1
End loop
)Return (S
End
-ماذا تعيد الخوارزمية إذا كانت .N = 7
-ماذا تنفذ هذه الخوارزمية.
تمرين :3
-لتكن لدينا الخوارزمية التالية:
Var k, I, J number
Begin
Read k
I3
J1
While J <= K loop
I 2* I – 2
JJ+1
End loop
Return I