0000

  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 0000 as PDF for free.

More details

  • Words: 26,619
  • Pages: 603
‫بنائيات البيانات‬

‫‪ /7‬المصفوفات‬ ‫والسجلت‬

‫السجلت ‪:‬‬ ‫التي تشترك في وصف شيء واحد ‪ ،‬وكل حقل‬ ‫يمثل وحدة بيانية مفردة ‪ .‬بهذا التعريف يمكن أن‬ ‫يكون السجل صفا في مصفوفة ذات بعدين‬

‫بنائيات البيانات‬

‫‪ /7‬المصفوفات‬ ‫والسجلت‬

‫السجلت ‪:‬‬ ‫فقط الفرق بين السجل وصف المصفوفة أو بين‬ ‫السجلت والمصفوفة عموما – أنه ل يشترط في‬ ‫السجل أن تكون كل بياناته من نوع واحد بينما‬ ‫يشترط ذل ك ف ي المص فوفة ؛ فالس جل يمك ن أن‬ ‫يكون بع ض حقول ه حرفي ة‪ ،‬وبعضه ا رقمية‪،‬‬ ‫وبعضها عددية ‪ ،‬وبعضها منطقية ‪.‬‬

‫بنائيات البيانات‬

‫‪ /7‬المصفوفات‬ ‫والسجلت‬

‫السجلت ‪:‬‬ ‫فمثل ف ي المص فوفة الثاني ة الت ي بها درجات‬ ‫الطلب إذا أضفن ا عمودا ب ه أسماء الطلب‬ ‫وعمودا آخر به هل الطالب ناجح أو راسب –‬ ‫تكون المص فوفة ق د تحول ت إل ي سجلت تحتوي‬ ‫على أسماء وأرقام وبيانات منطقية وبهذا التحول‬ ‫ل تصلح كمصفوفة ‪.‬‬

‫بنائيات البيانات‬

‫‪ /7‬المصفوفات‬ ‫والسجلت‬

‫السجلت ‪:‬‬ ‫يت م تخزي ن الس جلت بنف س طريق ة المصفوفات‪،‬‬ ‫أي أن الحقول تخزن بمواقع متجاورة في الذاكرة‬ ‫إل أنه ليس لحقوله ا مؤشرات مباشرة يتم على‬ ‫ضوئه ا حس اب موق ع العنص ر‪ ،‬وإنما هناك‬ ‫معرفات أ و أس ماء للحقول تمث ل عناوين للحقول‬ ‫مثلها مثل الوحدات البيانية البسيطة ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫يتألف برنامج باسكال من ثلث أجزاء هي ‪:‬‬ ‫أ ‪ .‬رأ س ال برنامج ‪ :‬هو جزء اختياري ل يؤثر‬ ‫عل ى ال برنامج ويبدأ بكلم ة ‪ program‬يعقبها‬ ‫اسم يدل على طبيعة البرنامج ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫يتألف برنامج باسكال من ثلث أجزاء هي ‪:‬‬ ‫ب ‪ .‬جزء التعريفات أ و العلنات ‪ :‬هو الجزء‬ ‫الذي يتم فيه العلن عن الجمل المستخدمة في‬ ‫البرنامج ويتم العلن عن ‪:‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫أجزاء هي‬ ‫برنامج‬ ‫يتألف‬ ‫العلن‪ :‬عنها‬ ‫ثلثخلل‬ ‫من من‬ ‫باسكالالتي‬ ‫الوحدات‬ ‫أسماء‬ ‫ب‪.‬‬ ‫نتمكن من استخدام بعض الدوال المتاحة في لغة‬ ‫باس كال ويتم العلن ع ن هذه الوحدات بواسطة‬ ‫عبارة ‪Uses‬ويعقبه ا اسم الوحدة المراد‬ ‫العلن عنها فمثل ‪:‬‬ ‫‪; Uses Dos‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫فيتم من خلل هذا العلن التعامل مع كافة الدوال‬ ‫والعبارات التي تحتوي عليها الوحدة ‪Dos‬‬

‫• الثوابت ‪.Const‬‬ ‫• التعريفات الجديدة المستخدمة بواسطة كلمة ‪. Type‬‬ ‫• اللفتات ‪. Label‬‬ ‫• المتغيرات ‪.‬‬ ‫• الجراءات المستخدمة بواسطة كلمة ‪. Procedure‬‬ ‫• الدوال المستخدمة بواسطة كلمة ‪. Function‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫ليس من الضروري إستخدام جزء العلنات في‬ ‫البرنامج كله او جزء منه ولكن حسب إحتياجات‬ ‫البرنامج ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫الجزءهي ‪:‬‬ ‫هوأجزاء‬ ‫من ‪:‬ثلث‬ ‫باسكال‬ ‫يتألف‬ ‫الساسي‬ ‫برنامج‬ ‫برنامج م ال‬ ‫جزء جس‬ ‫ج‪.‬‬ ‫وه و ضروري لكتاب ة أ ي برنام ج يبدأ بكلمة‬ ‫‪ Begin‬وينتهي بكلمة ‪ End‬وبينهما مجموعة‬ ‫من العبارات التي تشكل البرنامج ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫يت م ف ي لغ ة باس كال أولً تعري ف ال برنامج‪ ،‬ثم‬ ‫تعري ف الثواب ت‪ ،‬وتعري ف المتغيرات البسيطة‬ ‫بأنواعها المختلفة‪،‬وتعريف المصفوفات‪ ،‬وتعريف‬ ‫السجلت ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫يمك ن توضي ح ذلك بالمثال أدناه‪ :‬هذه التعريفات‬ ‫تبدأ أولً بتعري ف ال برنامج بع د كلمة‬ ‫(‪ ،)Program‬ويعرف ال برنامج باسمه الذي‬ ‫يختاره (المبرمج) ‪ ،‬ثم تضع بين قوسين إن كان‬ ‫هناك مخرجات أ و مدخلت ف ي ال برنامج أو‬ ‫مخرجات فقط ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫بع د ذل ك تعرف الثواب ت بع د كلم ة(‪ ) Const‬إذ‬ ‫أن الثوابت هي العناوين التي ل تقبل تغير قيمها‬ ‫في الذاكرة ‪ ،‬ولذا لبد من تعريفها للحاسوب منذ‬ ‫البداية ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫بع د الثواب ت يبدأ تعري ف المتغيرات ‪ ،‬وه ي إما‬ ‫أعداد حقيقي ة ‪ ،‬أ و أعداد رقمي ة أ و منطقي ة أو‬ ‫حرفي ة ويت م ذل ك بع د كلمة (‪ ) var‬ويحدد نوع‬ ‫المتغيرات بع د كتاب ة أس ماء المتغيرات وفصلها‬ ‫عن بعضها بشولة وختمها بعلمة (‪):‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫أم ا المص فوفات فتعرف بع د كتاب ة أسماء‬ ‫المتغيرات وعم ل علم ة (‪ ):‬كم ا ف ي حالة‬ ‫المتغيرات السابقة بإضافة كلمة (‪ ، )array‬أي‬ ‫مصفوفة تتبعها بين قوسين بُع د المصفوفة وإن‬ ‫كان ت هناك ابعاد مركب ة للمص فوفة يفص ل بين‬ ‫البعد والخر بعلمة شولة ‪،‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫وعادة يوصف البُع د من ‪ 1‬إلي حد البعد ثم يلي‬ ‫ذلك كما في حالة المتغيرات البسيطة تعرف نوع‬ ‫البيانات هل رقمية أم عددية أم حرفية أم منطقية‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫أم ا تعري ف الس جل فأكث ر تعقيدا فنبدأ أول بكلمة‬ ‫(‪ ، )type‬يتبعها اسم السجل ثم تساوي سجل ثم‬ ‫يلي ذلك تعريف الحقول ‪ ،‬وبعد ذلك مثلما تم مع‬ ‫المتغيرات البس يطة ‪ ،‬ولن الس جلت ه ي كما‬ ‫ذكرنا تمثل صفوفا في المصفوفات كان لبد من‬ ‫تعريف مصفوفة تكون بياناتها من السجلت‪،‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫وبهذا تكون لغ ة باس كال ق د تحايل ت على‬ ‫المص فوفة بجع ل وحدته ا البياني ة م ن نوع بياني‬ ‫واحد هو السجل ولكن في الواقع يتكون السجل‬ ‫من أنواع شت ي م ن ال بيانات وهذه تعت بر من‬ ‫ميزات لغة باسكال ولغة سي ‪.‬‬

Program;) Example )input, output Uses Graph, Dos, Crt; Const No_stud = 50; low_marks = 5; high_marks =100;

;subj = 9 qu = 5; Label Stop, L1 ; Type Student_record = record Total : integer; Order : integer; End

Var root1, root2 : real ; count, I : integer ; Found : Boolean; Filler : char ; S_names :array [ 1..No_stud] of char ; S_marks : array[ 1..No_stud,1..subj] of Byte;

S_d :array [1..No_stud,1..subj,1..qu] of Word; Stud_pass :array [1..no_stud] of Boolean; students :array [1..50] of Student_record ; Rec : Student_record; Procedure proc_name Begin

End;

Function f_name)p_var : var_type( : return_type ; Begin . func_name := value; End; Begin

End.

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫يمكن كتابة ذلك باللغة العربية بشكل يماثل لغة‬ ‫باسكال علي النحو التالي ‪:‬‬

‫برنامجمثال(ادخال واخراج)‬ ‫وحداتدوس‪ ،‬رسم ;‬ ‫ثوابتعدد الطلب =‪; 50‬‬ ‫اقل درجة = ‪; 50‬‬ ‫اعلي درجة ;‬ ‫المواد =‪; 9‬‬ ‫السئلة = ‪; 5‬‬ ‫عنوانتوقف‪ ،‬ل‪; 1‬‬

‫أنواع سجل طلب = سجل‬

‫نهاية‬

‫المتغيراتالجزر‪ ، 1‬الجزر‪ : 2‬عدد حقيقي ;‬

‫إجراءاتاسم الجراء ;‬ ‫بداية‬

‫نهاية ;‬

‫دالةاسم الدالة (المتغير المرسل ‪ :‬نوعه) نوع القيمة الراجعة ;‬ ‫بداية‬

‫نهاية ;‬ ‫بداية‬ ‫نهاية‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫مثال (‪:)4‬‬ ‫اكتب شفرة توضح كيفية العلن عن سجل‬ ‫يسمي عناوين ويحتوي على البيانات التالية‪:‬‬ ‫السم ‪ 30‬حرف ‪ ،‬الشارع ‪ 30‬حرف‪ ،‬المدينة‬ ‫‪ 30‬حرف ‪ ،‬الولية ‪ 30‬حرف ‪ ،‬الرمز رقمي‬

‫النوع العنوان = سجل‬ ‫السم ‪ :‬مصفوفة[ ‪ ] 30 ..1‬حرفية ;‬

‫‪address = record‬‬ ‫; ‪name :array [1.. 30] of char‬‬

‫الشارع ‪ :‬مصفوفة[ ‪ ] 30 ..1‬حرفية ; ; ‪street :array [1.. 30] of char‬‬ ‫المدينة ‪ :‬مصفوفة[ ‪ ] 30 ..1‬حرفية ;‬

‫; ‪city :array [1.. 30] of char‬‬

‫الولية ‪ :‬مصفوفة[ ‪ ] 30 ..1‬حرفية ;‬

‫; ‪state :array [1.. 30] of char‬‬

‫الرمز ‪ :‬رقمي ;‬ ‫نهاية ;‬

‫; ‪code : integer‬‬ ‫;‪End‬‬

‫‪Type‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫هذا الس جل يتكون م ن خمس ة حقول ك ل حقل عبارة‬ ‫عن مصفوفة حرفية‪ .‬حقل الول هو السم الذي يتكون‬ ‫كحد أقصي من ثلثين حرفا وقد أعطي كل حرف مكانا‬ ‫خاص ا ب ه ف ي المص فوفة ليمك ن م ن عمليات ترتيب‬ ‫السماء أبجديا أو غير ذلك ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫ونف س الش ي ت م بالنس بة للشارع والمدين ة والولية ‪.‬‬ ‫أم ا رق م أ و رم ز الولي ة فه و رق م واح د ‪ .‬وحت ى يتم‬ ‫التعام ل م ع هذا الس جل ف ي خزن ال بيانات نحتاج إلي‬ ‫تعريف متغير على النحو التالي ‪:‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫‪Var‬‬ ‫;‪Students : array [ 1..50 ] of address‬‬ ‫;‪Line : address‬‬ ‫متغيرات‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫هنال ك مص فوفة متغيرة أ ي أ ن بياناتها متغيرة‬ ‫ونوع بياناته ا س جلت م ن نوع س جل العناوين‬ ‫تس مي الطلب أ و (‪ ) students‬وكذلك هناك‬ ‫متغير واحد بسيط اسمه عنوان ‪ ،‬ولكنه من نوع‬ ‫سجل العناوين‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫فمثل ف ي مص فوفة الطلب عندما تقرأ "الطلب‬ ‫(‪ . )24‬السم (‪ " )1‬نعنى الحرف الول من اسم‬ ‫الطلب رقم ‪ 24‬في سجلت الطلب ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫أم ا عندم ا تقول " عنوان ‪ .‬رم ز " نعن ي قيمة‬ ‫الحقل رمز في السجل عنوان ‪ .‬أما عندما تقول "‬ ‫عنوان " نعني كل بيانات السجل عنوان ومثلها‬ ‫عندم ا تقول طلب (‪ )5‬نعن ى ك ل بيانات سجل‬ ‫الطالب رقم ‪ 5‬في المصفوفة ‪،‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫وم ا دام الس جل ف ي المص فوفة يت م التعام ل معه‬ ‫كامل كعنصر من عناصر المصفوفة فإن تخزين‬ ‫الس جلت داخ ل المص فوفة يت م بنف س طريقة‬ ‫تخزين العناصر البسيطة في المصفوفة مثل ‪:‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫عندما تقول الطلب (‪ )50‬نعني كل سجل الطالب‬ ‫الخي ر ف ي قائم ة الطلب وعندما نقول الطلب‬ ‫(‪ )1‬نعني كل سجل الطالب الول ‪ ،‬وعندما نقول‬ ‫الطلب (‪ )2‬نعني كل سجل الطالب الثاني ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫بهذا يكون المجاور لس م الطال ب الول ه م اسم‬ ‫الشارع ف ي عنوان الطال ب الول ولي س إسم‬ ‫الطال ب الثاني‪.‬أم ا الطال ب الثان ي فيجاور رمز‬ ‫الولية في عنوان الطالب الول‪ ،‬وهكذا ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫أم ا عدد مواق ع التخزي ن ف ي مصفوفة الطلب‬ ‫فتساوي عدد الطلب مضروبا في عدد العناوين‬ ‫أو المواقع في سجل العناوين أي تساوي ‪× 50‬‬ ‫‪ 6050 = 121‬موق ع ‪ .‬يمك ن وص ف وضعها‬ ‫على النحو التالي‪ :‬نفترض أن الموقع ‪ 500‬هو‬ ‫الموقع الساسي بالذاكرة ‪.‬‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫هذا الموق ع س يكون الحرف الول م ن السم‬ ‫الول‪ ،‬ثم تنتهي حروف السم الول في الحرف‬ ‫رق م ‪ 30‬وهذه تأخ ذ عنوان مص فوفة تسمي‬ ‫الس م‪ ،‬تليه ا مص فوفة الشارع الت ي تتكون كذلك‬ ‫من ‪ 30‬حرفا بمعدل موقع لكل حرف‬

‫بنائيات البيانات‬

‫‪ /8‬الشكل العام للبرنامج‬ ‫في لغة باسكال‬

‫ثم مصفوفة المدينة التي تتكون من ‪ 30‬حرفا ثم‬ ‫مصفوفة الولية التي تتكون من ‪ 30‬حرفا ثم رمز‬ ‫الولية الذي يأخذ موقعا واحدا فقط فيكون مجموع‬ ‫المواقع لكل سجل ‪ 121‬موقعا للعنصر الول في‬ ‫المصفوفة ( الطلب ) التي تتكون من ‪ 50‬سجل ‪.‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫تس تخدم لغ ة باسكال العبارتين‪Writeln,Write‬‬ ‫لكتاب ة المعلومات عل ى الشاش ة أ و عل ى ملف‬ ‫محدد‪ ،‬والفرق الوحيد بينهما أن عبارة ‪Writeln‬‬ ‫تنقل المؤشر إلى سطر جديد بعد إظهار أو كتابة‬ ‫المعلومات (عبارات التحكم في ملحق (أ))‪.‬‬

‫بنائيات البيانات‬

‫ عبارتي الخراج والدخال في‬/9 ‫لغة باسكال‬

Year := 2002; Writeln )‘ Sudan ‘(; Write )‘ Tabat ‘(; Writeln )2000(; Writeln; Writeln )‘ Exam ‘ , year(;

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫عن د تنفي ذ الشفرة (جزء م ن البرنامج) يكون‬ ‫الخراج على النحو التالي ‪:‬‬ ‫‪Sudan‬‬

‫‪Tabat 2000‬‬

‫‪Exam 2002‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫‪ /1‬يمكن تكون عبارتي الخراج‬ ‫(‪ )Writeln,Write‬الشياء التالية ‪:‬‬ ‫• ثابت عددي أو سلسي ( محصور بين فاصلتين‬ ‫علويتين) فيكون الخراج نفس الثابت ‪.‬‬ ‫• متغير فيكون الخراج قيمة المتغير ‪.‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫• تعبير جبري فيكون الخراج قيمة التعبير‬ ‫الجبري ‪.‬‬ ‫• لشيء فيكون الخراج سطرا فارغا إذا‬ ‫استخدمنا عبارة ‪Writeln‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫‪ /2‬إذا كان أول متغير بعد عبارتي الخراج‬ ‫(‪ )Writeln ,Write‬اسما لملف فتتم الكتابة‬ ‫على الملف وإل سوف تتم الكتابة على جهاز‬ ‫الخرج الساسي ‪.‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫تستخدم لغة باسكال العبارتين‬ ‫‪ Readln,Read‬لقراءة المعلومات من لوحة‬ ‫المفاتيح أو من ملف حسب المتغير الول كما‬ ‫ذكرنا في عبارتي الخراج ‪.‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫مثال (‪:)6‬‬ ‫المثال التالي يوضح الفرق بين عبارتي‬ ‫‪ ، Readln,Read‬افترض أن هناك ملف يشار‬ ‫إليه بالمتغير‪ FileName‬يحتوي على‬ ‫المعلومات التالية ‪:‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫مثال (‪:)6‬‬ ‫‪10 20 30 40‬‬ ‫‪50‬‬ ‫المطلوب ما هي قيمة المتغير ‪ D‬عند تنفيذ‬ ‫العبارتين التاليتين ‪:‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫مثال (‪:)6‬‬ ‫; (‪ReadLn )Filename ,A,B,C‬‬ ‫; (‪ReadLn )Filename, D‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫يتم إسناد القيم ‪ 30 , 20 , 10‬للمتغيرات‬ ‫‪ A,B,C‬على الترتيب بواسطة الستدعاء الول‬ ‫للعبارة ‪ Readln‬وينتقل بعدها المؤشر إلي‬ ‫سطر جديد بالملف وعليه فأن القيمة ‪ 50‬تقرأ‬ ‫بواسطة الستدعاء الثاني للعبارة ‪Readln‬‬ ‫وتسند للمتغير ‪ D‬ويتم تجاهل القيمة ‪. 40‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫وعند إستبدال عبارتي ‪ Readln‬ب ‪Read‬‬ ‫; (‪Read )Filename ,A,B,C‬‬ ‫; (‪Read )Filename , D‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫فيتم اسناد القيم ‪ 30 , 20 , 10‬للمتغيرات‬ ‫‪ A,B,C‬على الترتيب بواسطة الستدعاء الول‬ ‫للعبارة ‪ Read‬ويبقي المؤشر في نفس السطر‬ ‫بالملف وعليه فأن القيمة ‪ 40‬تقرأ بواسطة‬ ‫الستدعاء الثاني للعبارة ‪ Read‬وتسند للمتغير‬ ‫‪.D‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫مثال (‪:)7‬‬ ‫اكتب برنامجا بلغة باسكال يقوم بحساب مساحة‬ ‫الدائرة التي نصف قطرها ‪ r‬علما بأن مساحتها‬ ‫تحسب وفقا للمعادلة ‪area = πr2‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫;‪Const pi=3.14‬‬ ‫الثوابت باي = ‪; 3.14‬‬ ‫‪Var‬‬ ‫متغيرات‬ ‫; ‪Area , r : real‬‬ ‫مساحة ‪ ،‬نق ‪ :‬حقيقي ;‬ ‫‪Begin‬‬ ‫البداية‬ ‫اكتب (" ادخل قيمة نصف القطر"); ;(’ أدخل قيمة نصف القطر‘) ‪Write‬‬ ‫; (‪Readln )r‬‬ ‫أقرأ (نق) ;‬ ‫; ‪Area:=pi *r*r‬‬ ‫المساحة = باي × نق × نق ;‬ ‫;(‪‘ , area‬مساحة الدائرة‘)‪Writln‬‬ ‫اكتب (”مساحة الدائرة‪;) ”area‬‬ ‫;‪End‬‬ ‫النهاية ;‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫مثال (‪:)8‬‬ ‫اكتب برنامجا بلغة باسكال يقوم بحساب مساحة‬ ‫أي مثلث قائم الزاوية ارتفاعه ‪ a‬وقاعدته ‪ b‬علما‬ ‫بأن مساحة المثلث تحسب وفقا للمعادلة التالية‬ ‫‪1/2 ab‬‬

‫=‬

‫‪Area‬‬

‫بنائيات البيانات‬

‫‪ /9‬عبارتي الخراج والدخال في‬ ‫لغة باسكال‬

‫المتغيرات‬ ‫المساحة ‪ ،‬أ ‪ ،‬ب ‪ :‬حقيقي ;‬ ‫البداية‬ ‫اكتب (” أدخل قيمة طول الرتفاع”) ;‬ ‫أقرأ (أ) ;‬ ‫اكتب (”أدخل قيمة طول القاعدة ”) ;‬ ‫أقرأ (ب) ;‬ ‫المساحة = أ×ب\‪; 2‬‬ ‫اكتب (”مساحة المثلث =”‪،‬المساحة);‬ ‫النهاية ;‬

‫‪Var‬‬ ‫; ‪Area , a ,b : real‬‬ ‫‪Begin‬‬ ‫;( ‘أدخل قيمة طول الرتفاع‘) ‪Write‬‬ ‫; (‪Readln )a‬‬ ‫;(’ أدخل قيمة طول القاعدة‘) ‪Write‬‬ ‫; (‪Readln )b‬‬ ‫; ‪Area:=a *b/2‬‬ ‫;(‪ = ’, Area‬المساحة‘)‪Writln‬‬ ‫;‪End‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫هناك معالجات تتفق فيها كل لغات البرمجة في‬ ‫التعامل مع أنواع البيانات المختلفة ‪ .‬نذكر منها‬ ‫على سبيل المثال ‪:‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫أ‪ /‬معالجات العداد الحقيقية ‪:‬‬ ‫الضرب "*" ‪ :‬عدد حقيقي في عدد حقيقي أو في‬ ‫رقم يكون الناتج عددا حقيقيا ‪.‬‬ ‫القسمة "‪ : "/‬عدد حقيقي علي عدد حقيقي أو‬ ‫رقم علي رقم يكون الناتج عددا حقيقيا ‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫أ‪ /‬معالجات العداد الحقيقية ‪:‬‬ ‫الجمع "‪ : "+‬عدد حقيقي مع عدد حقيقي أو مع‬ ‫رقم تنتج عددا حقيقيا ‪.‬‬ ‫الطرح " – " ‪ :‬عدد حقيقي مع عدد حقيقي أو‬ ‫مع رقم تنتج عددا حقيقيا ‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫أ‪ /‬معالجات العداد الحقيقية ‪:‬‬ ‫‪ : )abs)x‬القيمة المطلقة للعدد (‪ )x‬وبالطبع‬ ‫القيمة المطلقة ل تتغير من نوع العدد‪.‬‬ ‫‪ : )Sqr)x‬المربع لي عدد ينتج عددا حقيقيا ‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫أ‪ /‬معالجات العداد الحقيقية ‪:‬‬ ‫جا (‪ ))sin )x‬وجتا ‪ )))cos )x‬ومعكوس الظل‬ ‫(‪ ))arctan)x‬واللوغريثم الطبيعي ((‪Lnx‬‬ ‫والقوى ‪ )exp)x‬الجذر التربيعي ‪ )sqrt)x‬كلها‬ ‫دوال تنتج عددا حقيقيا سواء أكانت قيمة ‪ x‬رقما‬ ‫أم عددا ‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ب‪ /‬معالجات العداد الرقمية ‪:‬‬ ‫الضرب "*" ‪ :‬ضرب الرقام ( عدد صحيح )‬ ‫ينتج أرقاما ‪.‬‬ ‫القسمة "‪ : "/‬قسمة الرقام ل تنتج أرقاما بل‬ ‫تنتج أعداد حقيقية ‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ب‪ /‬معالجات العداد الرقمية ‪:‬‬ ‫الجمع "‪ : "+‬الجمع للرقام ينتج أرقاما ‪.‬‬ ‫الطرح " – " ‪ :‬الطرح للرقام ينتج أرقاما ‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ب‪ /‬معالجات العداد الرقمية ‪:‬‬ ‫‪ :)Y DIV)x‬هذه قسمة تنتج رقما بكشط الكسر‬ ‫الناتج بعد قسمة ‪ y‬على ‪.x‬‬ ‫‪ :)Y mod)x‬هذه تنتج رقما باقي قسمة ‪y‬على ‪.x‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ب‪ /‬معالجات العداد الرقمية ‪:‬‬ ‫‪ : )Sqr)x‬هذه دالة المربع وبالطبع تنتج رقما إذا‬ ‫كان ‪ x‬رقماً ‪.‬‬ ‫‪ :)Trunk )x‬هذه تنتج من العدد الحقيقي ‪ x‬رقما‬ ‫بكشط الكسر ‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ب‪ /‬معالجات العداد الرقمية ‪:‬‬ ‫‪ :)Round )x‬هذه تنتج من العدد الحقيقي ‪x‬‬ ‫رقما بتقريب الكسر‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ج‪ /‬معالجات الحروف ‪:‬‬ ‫‪ ،‬والرقام ‪ ،‬وحرف الفراغ‪ .‬هناك دالتان في لغة‬ ‫باس كال وف ي غال ب لغات البرمج ة تتعام ل مع‬ ‫ال بيانات الحرفي ة وه ي الدال ة ‪ )ord)c‬والدالة‬ ‫‪. )chr)i‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ج‪ /‬معالجات الحروف ‪:‬‬ ‫الحروف (‪ )C‬من جدول ترميز الحروف ‪ ،‬بينما‬ ‫الدال ة الثاني ة ‪ )chr)i‬تعني الحرف الذي رمزه‬ ‫يساوي (‪.)i‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ج‪ /‬معالجات الحروف ‪:‬‬ ‫وبما أن الدالة ‪ )ord)c‬ناتجها رقم فإنه بإلمكان‬ ‫إجراء أو تطبيق كل العمليات التي تتم على الرقام‬ ‫عليها‪ ،‬مثل عملية أكبر من‪ ،‬و أصغر من ويساوي‬ ‫وك ل تركيباته ا لن ف ي ذل ك أهميت ه ف ي التساول‬ ‫والستفسار عن ترتيب السماء مثل ‪:‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫ج‪ /‬معالجات الحروف ‪:‬‬ ‫الدالة ‪ )ord)c‬والدالة ‪ )chr)i‬متعاكستان أي أن‪:‬‬ ‫‪. Ord )Chr )i( ( =i ,Chr )ord )c( ( =c‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫د‪ /‬معالجات البيانات المنطقية ‪:‬‬ ‫)‪AND‬تحقق كل الشروط) ينتج عنها قيمة منطقية‪.‬‬ ‫‪( OR‬تحقق أي شرط) ينتج منها قيمة منطقية‪.‬‬ ‫‪(NOT‬نفي الشرط) ينتج منها قيمة منطقية‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫د‪ /‬معالجات البيانات المنطقية ‪:‬‬ ‫أقل من أو يساوي <= ينتج منه قيمة منطقية ‪.‬‬ ‫يساوي = تنتج منه قيمة منطقية ‪.‬‬ ‫ل يساوي <> ينتج منه قيمة منطقية ‪.‬‬

‫البيانات‬ ‫بنائيات‬ ‫‪ /10‬معالجات الحاسوب‬ ‫البيانات‬ ‫لنواع‬ ‫في لغة باسكال‬

‫د‪ /‬معالجات البيانات المنطقية ‪:‬‬ ‫‪ )Odd)X‬ينتج منه قيمة منطقية وهي تحقق‬ ‫فردية ‪.X‬‬ ‫‪ )Eol )f‬ينتج منه قيمة منطقية وهي تحقق انتهاء‬ ‫السطر ‪.‬‬ ‫‪)Eof)f‬ينتج منه قيمة منطقية وهي انتهاء الملف‪.‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫تحتوي على بعض البنائيات البيانية البسيطة ‪ ،‬أو‬ ‫المتغيرات البس يطة ‪ ،‬والبنائيات المركب ة مثل‬ ‫المص فوفات ومص فوفات الس جلت ولك ن هنالك‬ ‫بنائيات أكثر تعقيدا وتستطيع أن تتعامل مع بعض‬ ‫التطبيقات بكفاءة عالية‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫ولكنه ا غي ر موجودة ف ي لغات البرمج ة ؛ لنها‬ ‫تحتاج إل ي برمجيات خاص ة تمك ن م ن التعامل‬ ‫معها ‪ .‬هذه البنائيات تعرف بالبنائيات المتجردة ‪.‬‬ ‫إذن البنائية المتجردة هي عبارة عن بنائية بيانية‬ ‫زائدا البرمجيات التي تمكن من التعامل معها ‪.‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫ولما كانت العمليات التي تتم على البنائية البيانية‬ ‫هي في الغالب إضافة وحدة بيانية أو حذفها ‪ ،‬لذا‬ ‫تص مم البنائي ة المتجردة عادة لتكون مناسبة‬ ‫للطريق ة الت ي يت م به ا الضافة والحذف مثل‬ ‫البنائية التي تعرف بالمكدسات ( ‪ ) stacks‬يتم‬ ‫فيها الحذف والضافة من اتجاه واحد‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫مث ل طريق ة التخزي ن عموم ا حي ث يت م سحب‬ ‫الشياء الت ي وص لت أخيرا قب ل الس ابقة ‪ ،‬وهنا‬ ‫يعرف بنظام ليفو (‪ ) lifo‬لتكدس الشياء بعضها‬ ‫فوق بع ض ولي س بالمكان س حب الس فلي قبل‬ ‫العلي ا ‪ ،‬إذن بنائي ة المكدس تناس ب تطبيقات‬ ‫المخازن عموما ‪.‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫أما المثال الثاني للبنائيات المتجردة فهو البنائية‬ ‫الت ي تعرف بالص فوف (‪ ) queues‬الص ف يتم‬ ‫فيه الضافة الحذف من اتجاهين متعاكسين مثل‬ ‫الص ف تمام ا ‪ ،‬حي ث أ ن أول م ن وص ل هو أول‬ ‫من خرج‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫وهنا يعرف بنظام فيفو (‪ ) fifo‬وبنائية الصفوف‬ ‫تناسب كل تطبيقات الصفوف التي عادة ما يؤخذ‬ ‫فيها الخدمة السابقة قبل اللحق ‪.‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫هناك بنائي ة متجردة م ن أكثر البنائيات المتجردة‬ ‫مرونة تعرف بالقوائم المتصلة ‪ ،‬وهي عبارة عن‬ ‫سجلت ك ل س جل ل ه تكوين ه الخاص ‪ .‬ليس‬ ‫بالضرورة أن تأخذ كل السجلت شكل واحد ‪.‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫الشكل العام للسجل أن يكون به حقل يخزن فيه‬ ‫عنوان ومواق ع الس جل التال ي ل ه في الذاكرة ‪،‬‬ ‫إضاف ة إل ي حق ل واح د أ و أكثر يحوي الوحدات‬ ‫البياني ة ف ي الس جل ‪ .‬يعرف الس جل ف ي القوائم‬ ‫المتص لة بالعقدة (‪ ) node‬ويعرف حق ل موقع‬ ‫السجل التالي بالمؤشر ‪.‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫هناك عقدتان أساسيتان في القوائم المتصلة هي‬ ‫العقدة الول ي الت ي لي س هناك عقدة تحفظ‬ ‫عنوانه ا أ و تشي ر إليه ا‪ ،‬وتعرف برأ س القائمة‪،‬‬ ‫والعقدة الخيرة التي ليس بها عنوان عقدة أو ل‬ ‫تشير لعقدة تالية لها تعرف بذيل القائمة‪،‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫ولك ن لن بالضرورة هناك عنوان ا ف ي أي عقدة‬ ‫فإ ن ذي ل القائم ة تشي ر إل ي عقدة وهمي ة تعني‬ ‫نهاية القائمة‪ .‬هذه البنائية تناسب الملفات متغيرة‬ ‫السجلت ‪.‬‬

‫بنائيات البيانات‬

‫المؤشر‬ ‫الرأس‬

‫عقدة‬

‫المؤشر‬

‫السجل‬

‫عنوان عقدة عنوان العقدة‬ ‫الرأس‬ ‫التالية‬

‫عقدة‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫المؤشر‬

‫السجل‬

‫عقدة‬

‫المؤشر‬

‫السجل‬ ‫عنوان العقدة‬ ‫التالية‬

‫عنوان العقدة‬ ‫الوهمية‬

‫الذيل‬

‫النهاية‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫القوائم المتصلة‬ ‫إضافة إلي هذه المثلة الثلث يمكن اعتبار قاعدة‬ ‫ال بيانات الت ي يت م تص ميمها بواسطة برمجيات‬ ‫قواعد البيانات مثل برنامج إس كيو أل (‪ )sql‬أو‬ ‫أوراكل أو فكس برو بنائية متجردة‪ ،‬وهي تناسب‬ ‫المجموعات البيانية الضخمة والمتداخلة‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫القوائم المتصلة‬ ‫مث ل بيانات عملء البن ك الس اسية‪ ،‬وحركة‬ ‫حس اباتهم ف ي الحس ابات المختلف ة‪ ،‬كالحساب‬ ‫الجاري والس تثمار وغيره‪ ،‬وتعامله م في الفرع‬ ‫المختلف ة ومقاضاته م م ع البنوك الخري داخليا‬ ‫وخارجيا‪،‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫القوائم المتصلة‬ ‫ومثال آخ ر بيانات حرك ة الطيران في الخطوط‬ ‫المختلف ة وحجوزات العملء وبيانات المسافرين‪،‬‬ ‫امتعتهم وحركة البضائع ‪.‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫القوائم المتصلة‬ ‫ومثال آخ ر بيانات الشرط ة الت ي تشم ل البطاقة‬ ‫الشخص ية‪ ،‬والجنسية‪ ،‬والجوازات‪ ،‬ودخول‬ ‫وخروج المواطني ن والجان ب ‪ ،‬وملفات الجرائم‬ ‫والمشبوهين وغيرها ‪.‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫القوائم المتصلة‬ ‫إ ن ك ل النظم ة الت ي تتعام ل م ع بيانات ضخمة‬ ‫ومختلف ة ومتداخل ة تناس بها تط بيقات البنائية‬ ‫المتجردة الت ي تعرف بقواع د البيانات العلئقية‪.‬‬ ‫فمثل في المثال السابق بيانات العملء تمثل قاعدة‬ ‫بيانات‪،‬‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫القوائم المتصلة‬ ‫وبيانات المس افرين تمثل قاعدة بيانات‪ ،‬وبيانات‬ ‫البضائع تمثل قاعدة بيانات وحركة الطيران تمثل‬ ‫قاعدة بيانات‪ ،‬وهكذا‪ .‬وكله ا عن د ربطه ا مع‬ ‫بعضه ا تمث ل بنائي ة متجردة معقدة تعرف باسم‬ ‫قواع د ال بيانات العلئقية‪ .‬مثال لذل ك العلئقية‬ ‫التالية ‪:‬‬

‫احمد‬

‫‪415‬‬

‫استثمار‬

‫‪18‬‬

‫السوق‬ ‫العربي‬

‫ص‪.‬ب‬ ‫‪18‬‬

‫‪778871‬‬

‫‪7‬‬

‫‪15‬‬

‫‪315‬‬

‫دائن‬

‫‪5/3‬‬

‫‪500‬‬

‫عثمان‬

‫‪315‬‬

‫جاري‬

‫‪5‬‬

‫الحرية‬

‫ص‪.‬ب‬ ‫‪17‬‬

‫‪778872‬‬

‫‪17‬‬

‫‪15‬‬

‫‪305‬‬

‫دائن‬

‫‪3/5‬‬

‫‪500‬‬

‫علي‬

‫‪225‬‬

‫استثمار‬

‫‪17‬‬

‫الجمهورية‬

‫ص‪.‬ب‬ ‫‪16‬‬

‫‪778873‬‬

‫‪11‬‬

‫‪15‬‬

‫‪315‬‬

‫دائن‬

‫‪3/5‬‬

‫‪500‬‬

‫محمد‬

‫‪325‬‬

‫جاري‬

‫‪15‬‬

‫السجانة‬

‫ص‪.‬ب‬ ‫‪15‬‬

‫‪778877‬‬

‫‪15‬‬

‫‪15‬‬

‫‪325‬‬

‫دائن‬

‫‪3/5‬‬

‫‪500‬‬

‫السم‬

‫رقم‬ ‫الحساب‬

‫نوع‬ ‫الحساب‬

‫رقم‬ ‫الفرع‬

‫اسم الفرع‬

‫العنوان‬

‫التلفون‬

‫رقم‬ ‫الفرع‬

‫الفرع‬

‫رقم‬ ‫الحساب‬

‫الحركة‬

‫التاريخ‬

‫المبلغ‬

‫بنائيات البيانات‬

‫‪ /11‬البنائيات‬ ‫المتجردة‬

‫القوائم المتصلة ‪:‬‬ ‫الحس اب رق م ‪ 325‬بمبلغ ‪ 500‬دينار وهذا‬ ‫الحساب يخص محمد بفرع السجانة وهو حساب‬ ‫جاري وعنوان فرع الس جانة هو ص ‪ .‬ب ‪15‬‬ ‫وتلفون ‪. 778877‬‬

‫بنائيات البيانات‬

‫‪ /12‬خوارزميات الضافة‬ ‫والحذف‬

‫يوجد نوعان من الخوارزميات هما ‪:‬‬ ‫(أ) خوارزمية الضافة ‪.‬‬ ‫(ب) خوارزمية الحذف ‪.‬‬

‫بنائيات البيانات‬

‫‪ /12‬خوارزميات الضافة‬ ‫والحذف‬

‫(أ) خوارزمية الضافة ‪:‬‬ ‫‪ .1‬هل الموقع العلى أصبح يساوي أو أكبر من‬ ‫حجم المكدس ؟ إن كان ”نعم” ليمكن الضافة‬ ‫وتنته ي الخوارزمي ة ( تخرج الرس الة ل يمكن‬ ‫الضاف ة لغم ر المكدس ) وإ ن كان ”ل” تستمر‬ ‫الخوارزمية في إضافة العنصر ‪.‬‬

‫بنائيات البيانات‬

‫‪ /12‬خوارزميات الضافة‬ ‫والحذف‬

‫(أ) خوارزمية الضافة ‪:‬‬ ‫‪ .2‬الموقع العلى = الموقع العلى ‪(1 +‬حرك‬ ‫الموقع العلى خطوة إلي أعلى ) ‪.‬‬ ‫‪ .3‬المصفوفة ( العلى ) = العنصر المضاف ‪.‬‬

‫بنائيات البيانات‬

‫‪ /12‬خوارزميات الضافة‬ ‫والحذف‬

‫أ ي يضاف العنص ر إل ي المص فوفة ف ي الموقع‬ ‫الذي رقم ة يس اوي الرق م العل ى السابق زائداً‬ ‫واحد ‪.‬‬

‫فيما يلي برنامج خوارزمية الضافة ‪:‬‬ ‫برنامج إضافة عنصر للمكدس‬ ‫ثابت‬ ‫الكبر = ‪;100‬‬ ‫متغيرات‬ ‫الموقع العلى ‪ :‬رقمي ;‬ ‫العنصر المضاف ‪ :‬حرفي ;‬ ‫المكدس‪:‬مصفوفة ] ‪ ..1‬الكبر [‬ ‫حرفي;‬ ‫أبدا‬ ‫أقرأ ( الموقع العلي ) ;‬ ‫أقرأ ( العنصر المضاف ) ;‬

‫; ‪Program add_stack‬‬ ‫‪Const‬‬ ‫;‪max =100‬‬ ‫‪Var‬‬ ‫;‪top: integer‬‬ ‫;‪newelement :char‬‬ ‫;‪stack :array[1.. Max] of char‬‬ ‫‪Begin‬‬ ‫;(‪Readln )top‬‬ ‫;(‪Readln )newelement‬‬

‫إذا كان الموقع العلي= الكبر‬ ‫اكتب ( ”المكدس مفمور”) وال‬ ‫البداية‬ ‫الموقع العلى = الموقع العلى ‪1 +‬‬ ‫المكدس ( الموقع العلى ) = العنصر‬ ‫المضاف‬

‫انتهت إل‬ ‫النهاية ‪.‬‬

‫‪if top = max then‬‬ ‫;(’‪writeln )‘over flow‬‬ ‫‪else‬‬ ‫‪begin‬‬ ‫;‪top:=top+1‬‬ ‫;‪stack)top( =newelement‬‬ ‫;‪end‬‬ ‫‪End.‬‬

‫بنائيات البيانات‬

‫‪ /12‬خوارزميات الضافة‬ ‫والحذف‬

‫(ب) خوارزمية الحذف ‪:‬‬ ‫‪ .1‬هل الموق ع العل ى = صفر إ ن كان نعم ل‬ ‫يمكن الحذف وتنتهي الخوارزمية وتخرج الرسالة‬ ‫المكدس فارغ وإ ن كان تس تمر الخوارزمي ة في‬ ‫عملية الحذف ‪.‬‬

‫بنائيات البيانات‬

‫‪ /12‬خوارزميات الضافة‬ ‫والحذف‬

‫(ب) خوارزمية الحذف ‪:‬‬ ‫‪ .2‬العنص ر المحذوف = المص فوفة (الموقع‬ ‫العل ى ) أي يحذف العنص ر الذي رقم ه في‬ ‫المصفوفة = الموقع العلى ‪.‬‬ ‫‪ .3‬الموقع العلي = الموقع العلي – ‪. 1‬‬

‫فيما يلي برنامج خوارزمية الحذف ‪:‬‬ ‫برنامج حذف عنصر المكدس‬ ‫ثابت‬ ‫الكبر = ‪;100‬‬ ‫متغيرات‬ ‫الموقع العلى ‪ :‬رقمي ;‬ ‫العنصر المحذوف ‪ :‬حرفي ;‬ ‫المكدس‪:‬مصفوفة ] ‪ ..1‬الكبر [ حرفي;‬ ‫أبدا‬ ‫اقرا (الموقع العلى الحالية) ;‬

‫; ‪Program delete_stack‬‬ ‫‪Const‬‬ ‫;‪max =100‬‬ ‫‪Var‬‬ ‫;‪top: integer‬‬ ‫;‪deleteelement :char‬‬ ‫;‪stack :array[1.. Max] of char‬‬ ‫‪Begin‬‬ ‫;(‪Readln )top‬‬

‫إذا كانت قيمة العلى = صفر‬ ‫اكتب ( ” المكدس فارغ“ ) ;‬ ‫وإل‬ ‫ابدا‬ ‫العنصر المحذوف= المكدس( الموقع‬ ‫العلى);‬ ‫الموقع العلى = الموقع العلى ‪;1-‬‬ ‫انتهت إل;‬ ‫النهاية‪.‬‬

‫‪if top =0 then‬‬ ‫;(’‪writeln )‘stack empty‬‬ ‫‪else‬‬ ‫‪begin‬‬ ‫;(‪deleteelement :=stack)top‬‬ ‫;‪top:= top-1‬‬ ‫;‪end‬‬ ‫‪end.‬‬

‫بنائيات البيانات‬

‫‪ /13‬مقارنة القوائم المتصلة‬ ‫والمصفوفات‬

‫أول ‪ :‬تميزت القوائ م المتص لة عل ى المصفوفات‬ ‫بديناميكي ة مس احة التخزي ن حي ث أ ن المساحة‬ ‫تتقل ص أ و تزي د كلم ا حذف عنص ر أ و أضيف‬ ‫عنصر‪،‬‬

‫بنائيات البيانات‬

‫‪ /13‬مقارنة القوائم المتصلة‬ ‫والمصفوفات‬

‫أول‪:‬‬ ‫أما في المصفوفات فمنذ البداية لبد من حجز كل‬ ‫المساحة إذ أنه ل مجال لتغير مساحة المصفوفة‬ ‫لنه ا منذ البداي ة يت م تعريفه ا وفق مس احة ثابتة‬ ‫ومواقع ثابتة لكل عناصر المصفوفة في الذاكرة ‪.‬‬

‫بنائيات البيانات‬

‫‪ /13‬مقارنة القوائم المتصلة‬ ‫والمصفوفات‬

‫ثاني ا ‪ :‬تميزت القوائ م المتص لة بسهولة الحذف‬ ‫والضاف ة حي ث يت م ك ل ذل ك فق ط بتغيي ر مؤشر‬ ‫الرأس هذا في حالة المكدس‪،‬‬

‫بنائيات البيانات‬

‫‪ /13‬مقارنة القوائم المتصلة‬ ‫والمصفوفات‬

‫ثانيا‪:‬‬ ‫أما في حالة أخرى فإنه بلمكان إضافة أي عنصر‬ ‫إل ي موق ع م ن مواق ع القائم ة فق ط بجع ل مؤشر‬ ‫العنص ر الجدي د يؤش ر إل ي العنص ر الس ابق له‪،‬‬ ‫ومؤش ر العنص ر اللح ق ل ه يشي ر إلي ه كم ا في‬ ‫الرسم‪:‬‬

‫بنائيات البيانات‬

‫‪ /13‬مقارنة القوائم المتصلة‬ ‫والمصفوفات‬

‫إضافة عنصر جديد‬

‫بنائيات البيانات‬

‫‪ /13‬مقارنة القوائم المتصلة‬ ‫والمصفوفات‬

‫عنصر ووضعه في مكانه الصحيح حسب الترتيب‬ ‫أم ا ف ي المص فوفات فل يت م ذل ك بهذه السهولة‬ ‫حيث يتم تحريك كل العناصر الصغر خطوة نحو‬ ‫الخلف ‪ ،‬أو كل العناصر الكبر خطوة نحو المام ‪.‬‬

‫بنائيات البيانات‬

‫‪ /13‬مقارنة القوائم المتصلة‬ ‫والمصفوفات‬

‫ثالث ا ‪ :‬تميزت المص فوفات عل ى القوائ م المتصلة‬ ‫عند البحث عن معلومة أو الوصول إلي معلومة‬ ‫معين ه‪ ،‬فيت م ذل ك بطرق شت ي ‪ ،‬وليس هناك إل‬ ‫طريقة واحدة فقط بالنسبة للقوائم المتصلة ‪،‬‬

‫بنائيات البيانات‬

‫‪ /13‬مقارنة القوائم المتصلة‬ ‫والمصفوفات‬

‫ثالثا‪:‬‬ ‫وه ي طريق ة البح ث المتتال ي أ ي أ ن البح ث عن‬ ‫المعلومة يتم مبتدئاً من رأس القائمة حتى نجد‬ ‫المعلومة المطلوبة ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫بالطبع من الضرورة أن نعرف أين أماكن تخزين‬ ‫المعلومات حت ى نس تطيع الوص ول إليها بغرض‬ ‫التعام ل معه ا س واء أكان ذل ك لمعرفته ا أو‬ ‫تحديثها أو حذفها أو غير ذلك ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫لقد رأينا أن أكثر البنائيات مرونة في استيعاب‬ ‫أنواع شت ي م ن ال بيانات وبأحجام ك بيرة هي‬ ‫البنائيات التي تمت عبر مصفوفات السجلت ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫لذا عندم ا نتحدث ع ن خوارزميات البح ث عن‬ ‫المعلوم ة فأنن ا نتحدث ع ن خوارزميات البحث‬ ‫عن سجل في مصفوفة السجلت ثم البحث عن‬ ‫المعلومة في أحدي حقول ذلك السجل ويتم ذلك‬ ‫عادة بالبحث عبر حقل في السجل للوصول لذلك‬ ‫السجل‪،‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫ث م بع د ذل ك يت م التعام ل م ع أ ي حق ل آخ ر من‬ ‫حقول السجل أو مع كل حقول ذلك السجل ‪ .‬على‬ ‫سبيل المثال يمكن أن يكون ‪:‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫• حقل رقم الطالب هو الحقل الذي يتم به البحث‬ ‫عن س جل الطال ب وبع د الوص ول إل ي سجل‬ ‫الطالب يمكن النظر إلي حقل ترتيب الطالب ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫• حق ل رق م الموظ ف ه و الحق ل الذي يت م به‬ ‫البحث عن سجل الموظف ثم بعد ذلك يتم النظر‬ ‫إلي راتب الموظف إن كنا نريد معرفة راتبه أو‬ ‫تعديله أو النظر إلي تاريخ تعينه ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫• حق ل اس م الشخ ص ه و الحق ل الذي يت م به‬ ‫البح ث ف ي س جلت التلفونات لمعرفة تلفون‬ ‫شخص معين وهذه هي الطريقة الطبيعية لمعرفة‬ ‫تلفون معين في دليل التلفونات ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫ف ي هذه المثل ة يس مي حق ل رق م الطال ب في‬ ‫سجلت الطلب ‪ ،‬وحقل رقم الموظف في سجل‬ ‫الموظفي ن ‪ ،‬وحق ل اس م الشخ ص ف ي دليل‬ ‫التلفونات بالمفتاح ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /1‬خوارزميات البحث عن‬ ‫المعلومة‬

‫هناك خوارزميات شتي تم تصميمها للبحث عن‬ ‫المعلومة من أشهرها خوارزمية البحث المتتالي‬ ‫أو البح ث الخط ي وخوارزمي ة البح ث الثنائي‬ ‫وغيره ا ‪ .‬لغرض هذا المنه ج س وف نكتفي‬ ‫بوص ف خوارزمي ة البح ث المتتال ي وخوارزمية‬ ‫البحث الثتائي ‪.‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫على التوالي من أول مفتاح إلي آخر مفتاح وفي‬ ‫كل مرة تقارن بين المفتاح الذي في الصف وبين‬ ‫المفتاح المطلوب حت ى نج د المفتاح المطلوب أو‬ ‫ينتهي الصف ‪.‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫مثال (‪: )1‬‬ ‫إذا كان صف المفاتيح هو ‪:‬‬ ‫مؤشر المصفوفة‬

‫‪1‬‬

‫‪2‬‬

‫‪3‬‬

‫‪4‬‬

‫‪5‬‬

‫‪6‬‬

‫‪7‬‬

‫‪8‬‬

‫المفتاح‬

‫‪110‬‬

‫‪112‬‬

‫‪156‬‬

‫‪210‬‬

‫‪257‬‬

‫‪296‬‬

‫‪350‬‬

‫‪892‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫• والمفتاح المطلوب هو ‪ 350‬فإن الخوارزمية‬ ‫تبدأ بمفارنة ‪ 350‬مع ‪:‬‬ ‫• المفتاح الول ‪ 110‬فل نج د أن ه يساوي‬ ‫المفتاح المطلوب ‪. 350‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫• المفتاح الثان ي ‪ 112‬فل نج د أن ه يساوي‬ ‫المفتاح المطلوب ‪. 350‬‬ ‫• المفتاح الثال ث ‪ 156‬فل نج د أن ه يساوي‬ ‫المفتاح المطلوب ‪. 350‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫• المفتاح الراب ع ‪ 210‬فل نج د أن ه يساوي‬ ‫المفتاح المطلوب ‪. 350‬‬ ‫• المفتاح الخام س ‪ 257‬فل نج د أن ه يساوي‬ ‫المفتاح المطلوب ‪. 350‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫• المفتاح الس ادس ‪ 296‬فل نج د أن ه يساوي‬ ‫المفتاح المطلوب ‪. 350‬‬ ‫• المفتاح السابع حيث نجد أنه يساوي المفتاح‬ ‫المطلوب ‪. 350‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫إنن ا عندم ا نتحدث ع ن كفاء ة أ و سرعة هذه‬ ‫الخوارزمية ‪ ،‬فإننا نجد أن متوسط عدد المقارنات‬ ‫= ( ن ‪ 2 /) 1 +‬إذا كانت ن هي عدد المفاتيح‬ ‫فاعتبار إذا كان المفتاح الول هو المفتاح‬ ‫المطلوب فإن الخوارزمية تكون قد اكتفت بمقارنة‬ ‫واحدة فقط وهي أحسن حالة ممكنة‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫وأما أسوأ حالة هي أن يكون المفتاح الخير هو‬ ‫المفتاح المطلوب وعلي ه يكون ف ي هذه الحالة‬ ‫عدد المقارنات يس اوي "ن" هذا النوع من‬ ‫الخوارزميات يوص ف عدد مقارنات ه بأنها تزداد‬ ‫طردياً مع عدد المفاتيح ‪.‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬أدخل عدد المفاتيح ن ومصفوفة المفاتيح ‪.‬‬ ‫‪ .2‬أدخل المفتاح المطلوب ‪.‬‬ ‫‪ .3‬أجعل عداد المفاتيح في البدء = ‪. 0‬‬ ‫‪ .4‬عدد المفاتيح = عداد المفاتيح ‪. 1 +‬‬ ‫‪ .5‬أقرأ مفتاح المصفوفة الذي يشير إليه المؤشر‪.‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬هل تطابق المفتاح مع مفتاح المصفوفة ؟ نعم ‪.‬‬ ‫أذهب إلي ‪. 8‬‬ ‫‪ .2‬هل عداد المفاتيح أكبر من ن ؟ "ل" أذهب إلي‬ ‫‪" 4‬نعم" أذهب إلي ‪. 10‬‬ ‫‪ .3‬اكتب "وجد المفتاح في " عداد المؤشر ‪.‬‬

‫الخوارزميات البيانية‬

‫‪/2‬خوارزمية البحث‬ ‫المتتالي‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬أذهب إلي ‪.11‬‬ ‫‪ .2‬اكتب ” لم يوجد المفتاح ” ‪.‬‬ ‫‪ .3‬النهاية ‪.‬‬

Program searchline ; Const n:=50; Var I , key : integer; found : Boolean; keys :array [1..n] of integer; Begin for i:=1 to n do readln )keys )I((; I:=0; found := false;

readln )key(; repeat I := I+1; if keys )I( = key then found:= true; until I < n or found == true; if I < n then write )‘ key not found’(; else write )‘ key found in ‘ I (; End.

‫برنامج البحث الخطي‬ ‫ثابت‬ ‫ن = ‪ 50‬عدد المفاتيح‬ ‫المتغيرات‬ ‫المؤشر ‪ ،‬المفتاح ‪ :‬عدد صحيح‬ ‫هل وجد ‪ :‬منطقي‬ ‫المفتاح ‪ :‬مصفوفة [ ‪ ..1‬ن ] رقمية‬ ‫أبدأ‬ ‫من المؤشر = ‪ 1‬إلي ن‬ ‫أقرأ المفتاح ( المؤشر )‬ ‫المؤشر = ‪0‬‬ ‫المفتاح لم يوجد‬

‫أقرأ المفتاح‬ ‫كرر‬ ‫المؤشر = المؤشر ‪1 +‬‬ ‫إذا تطابق المفتاح مع المفتاح الذي يشير إليه المؤشر‬ ‫أجعل المتغير المنطقي هل وجد ؟ نعم‬ ‫أوقف التكرار إذا كانت الجابة نعم أو زاد عدد المؤشر على ن‬ ‫إذا كان عدد المؤشر أكثر من ن‬ ‫اكتب لم يجد المفتاح‬ ‫وإل‬ ‫اكتب وجد المفتاح في المؤشر‬ ‫النهاية‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫هذه الخوارزمي ة تفترض أ ن المفاتي ح مرتبة‬ ‫ترتيبا تصاعديا ثم بعدها تقارن المفتاح المطلوب‬ ‫مع المفتاح الذي ف ي وس ط القائم ة أي المفتاح‬ ‫الذي يؤشر إليه المؤشر رقم و = (ن ‪2 /) 1 +‬‬ ‫باعتبار "ن " هي عدد المفاتيح (إذا كان هناك‬ ‫كسر في القسمة يتم اسقاطه)‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫فإذا كان المفتاح المطلوب أكبر من مفتاح الوسط‬ ‫"و" فأنن ا نهم ل البح ث ف ي النص ف الذي به‬ ‫المفاتيح الصغر من المفتاح المطلوب ‪ ،‬أي بلغة‬ ‫أخري نهمل كل المفاتيح من المؤشر رقم "‪"1‬‬ ‫إلي المؤشر "و" ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫نجعل بعد ذلك المؤشر رقم "و" هو مثل المؤشر‬ ‫رقم "‪ "1‬في المعالجة السابقة ونحسب المؤشر‬ ‫الوس ط ف ي النص ف م ن المؤش ر رق م "و" إلي‬ ‫المؤش ر رق م "ن" والذي يساوي (و‪+‬ن)‪2/‬‬ ‫وهي قيمة المؤشر الوسط الجديد "وج"‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫ثم تقارن المفتاح الذي يؤشر إليه مؤشر الوسط‬ ‫الجدي د م ع المفتاح المطلوب ‪ ،‬فأن كان المفتاح‬ ‫المطلوب هذه المرة أص غر م ن مفتاح الوسط‬ ‫الجدي د فأنن ا س نهمل الرب ع الك بر من مفتاح‬ ‫الوسط الجديد وننظر فقط للربع من مفتاح الوسط‬ ‫الجديد "وج" إلى مفتاح الوسط "و"‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫ث م نكرر العملي ة ونحس ب مؤش ر الوس ط الجد‬ ‫"وأ" والذي يس اوي (و‪+‬وج )‪ 2/‬ثم تقارن‬ ‫المفتاح المطلوب م ع مفتاح الوس ط الج د‪ ،‬فإن‬ ‫كان أكبر منه نظرنا إلي الثمن من مفتاح الوسط‬ ‫الج د إل ي مفتاح الوس ط الجدي د ويستمر هكذا‬ ‫نقس م النص ف إل ي نص فين إل ي أ ن نبق ي على‬ ‫مفتاح واحد هو المفتاح المطلوب ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫إذا لم نجد مفتاحاً مساوياً للمفتاح المطلوب يكون‬ ‫في هذه الحالة المفتاح المطلوب غير موجود ‪.‬‬ ‫المثال التال ي يمك ن أ ن يوض ح الخطوات على‬ ‫التوالي ‪:‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫مثال (‪: )2‬‬ ‫إذا كان صف المفاتيح هو ‪:‬‬ ‫المفتاح‬

‫‪110‬‬

‫‪112‬‬

‫‪156‬‬

‫‪210‬‬

‫‪257‬‬

‫‪296‬‬

‫‪892 350‬‬

‫والمفتاح المطلوب هو‪ 350‬فإن الخوارزمية تبدأ‬ ‫ب‪:‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫القائمة الولي ‪257 296 350892 210 156 112 110‬‬ ‫الخطوة الول ي مفتاح الوسط = ‪ 210‬المفتاح المطلوب‬ ‫‪210 >350‬‬ ‫القائمة الثانية ‪892 350 296 257 210‬‬ ‫الخطوة الثانية مفتاح الوسط = ‪ 296‬المفتاح المطلوب ‪>350‬‬ ‫‪296‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫القائمة الثالثة ‪892 350 296‬‬ ‫الخطوة الثالثة مفتاح الوسط = ‪ 350‬المفتاح المطلوب ‪=350‬‬ ‫‪350‬‬

‫المفتاح المطلوب هو الذي يؤشر إليه المؤشر رقم ‪7‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬أدخل المفتاح المطلوب وقائمة المفاتيح مرتبة‬ ‫تصاعدياً حيث أن المؤشر رقم ‪ 1‬يؤشر لصغر‬ ‫مفتاح والمؤشر الخير "ن" يؤشر لكبر مفتاح‬ ‫( ن عدد المفاتيح ) ‪.‬‬ ‫‪ .2‬هل المؤشر الول = المؤشر الخير ؟ نعم‬ ‫أذهب ‪. 6‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬أحسب مؤشر الوسط و = (المؤشر الول‪+‬‬ ‫المؤشر الخير)‪. 2/‬‬ ‫‪ .2‬هل مفتاح المؤشر الوسط = المفتاح المطلوب‬ ‫؟ نعم أذهب إلي ‪. 8‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫الخوارزمية ‪:‬‬ ‫• إذا كان مفتاح المؤش ر الوسط > المفتاح‬ ‫المطلوب أجعل المؤشر الخير = المؤشر الوسط‬ ‫وإل أجعل المؤشر الول = المؤشر الوسط ‪.‬‬ ‫• اكتب ل يوجد المفتاح ‪.‬‬ ‫• أذهب إلي ‪. 9‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬اكتب المؤشر الوسط ‪.‬‬ ‫‪ .2‬النهاية ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫نلحظ في هذه الخوارزمية أن عدد المقارنات‬ ‫يساوي لو ‪ 2‬ن إذا افترضنا مثل أن ن = ‪16‬‬ ‫فإن الخطوة الولي سيكون عدد المفتاح ‪ 8‬ثم‬ ‫الخطوة الثانية يكون عدد المفتاح ‪ 4‬ثم الخطوة‬ ‫الثالثة يكون عدد المفتاح ‪2‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫ثم الخطوة الرابعة يكون عدد المفاتيح ‪ 1‬وهو‬ ‫المفتاح المطلوب ‪ .‬إذن تمت ‪ 4‬مقارنات حتى‬ ‫وصلنا إلي المفتاح (‪ 4‬هي في الواقع لو‪. )16 2‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫ملحوظة ‪:‬‬ ‫إننا في مثالي وبرنامجي خوارزمية البحث‬ ‫المتتالي أو الخطي والبحث الثنائي أو الزوجي –‬ ‫جعلنا مصفوفة المفاتيح رقمية ‪ ،‬وهذا فقط على‬ ‫سبيل المثال ‪ ،‬لن المفاتيح يمكن أن تكون حرفية‬ ‫مثل السماء ‪ ،‬أو أن تكون أي نوع آخر ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫ملحوظة ‪:‬‬ ‫ولكن في غالب الستخدمات تكون المفاتيح رقمية‬ ‫لرفع كفاءة البحث ؛ لن مقارنة الرقام أسرع من‬ ‫مقارنة النواع الخرى ‪ ،‬لذا دائماً يستحسن أن‬ ‫يتم البحث برقم الموظف ‪ ،‬ورقم الطالب بد ًل من‬ ‫اسم الموظف ‪،‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫ملحوظة ‪:‬‬ ‫واسم الطالب بحيث يكون هناك رقم مفرد لي‬ ‫طالب ‪ ،‬ولي موظف على سبيل المثال ‪ .‬نجد‬ ‫عموماً أن أغلب التصميمات تعطي مفتاحا رقميا‬ ‫مفردا للمتعاملين مثل رقم الحساب ورقم بطاقة‬ ‫الخدمة الوطنية ‪..‬‬

‫الخوارزميات البيانية‬

‫‪ /3‬خوارزمية البحث‬ ‫الثنائي‬

‫ملحوظة ‪:‬‬ ‫كما لبد من الشارة الى ان هذا المفتاح يشير‬ ‫الى معان هامة مثل رقم فرع البنك ‪ ،‬ورقم‬ ‫البنك ‪ ،‬ثم رقم العميل ‪ ،‬وكذلك رقم البطاقة‬ ‫الشخصية يشير الى رقم الولية ورقم المحافظة‬ ‫ورقم المحلية ثم رقم المواطن مثل وهكذا‬

Program binary_search; Const n:= 50; Var I , key , first , last, middle :integer; found : Boolean; keys : array[1.. N] of integer; Begin for I:=1 to n do readln ) keys )I((; readln )key(;

found := false; first := 1; last := n; repeat middle := ) first + last ( div 2; if key [middle] < key then begin last := middle; if key [middle] > key then first := middle;

else found := true; end; until found or last >= first if found then writeln )‘ key found’ , middle(; else writeln )‘ key not found’(; End.

‫برنامج البحث الثاني‬ ‫الثوابت‬ ‫ن = ‪ 50‬عدد المفاتيح‬ ‫المتغيرات‬ ‫المفتاح ‪ ،‬الول ‪ ،‬الخير ‪ ،‬المؤشر الوسط ‪ :‬عدد صحيح‬ ‫هل وجد ‪ :‬منطقي‬ ‫مفتاح مصفوفة من ‪ 1‬إلي ن رقمية‬ ‫إبدا‬ ‫من ‪ 1‬إلي ن‬ ‫أقرأ عناصر المصفوفة‬ ‫أقرأ المفتاح‬ ‫هل وجد = ل‬ ‫المؤشر الول = ‪1‬‬ ‫المؤشر الخير = ن‬ ‫كرر‬ ‫المؤشر الوسط = إسقاط ( المؤشر الول ‪ +‬الخير )‪)2 /‬‬

‫إذا كان مفتاح المؤشر الوسط أكبر من المفتاح‬ ‫إبدا‬ ‫المؤشر الخير = المؤشر الوسط‬ ‫إذا كان مفتاح المؤشر الوسط أصغر من المفتاح‬ ‫المؤشر الول = المؤشر الوسط‬ ‫وإل‬ ‫أجعل هل وجد = نعم‬ ‫نهاية‬ ‫حتى يتحقق وجد المفتاح أو المفتاح الخير أقل من أو يساوي المفتاح الول‬ ‫إذا هل وجد = نعم‬ ‫اكتب ( ” وجد المفتاح في المؤشر الوسط“ )‬ ‫وإل‬ ‫اكتب (” لم يوجد المفتاح ”)‬ ‫النهاية‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫تصنيف المعلومات ‪ ،‬ومعنى تصنيف المعلومات‬ ‫وضع السجلت حسب ترتيب معين ويتم ذلك‬ ‫بالطبع عن طريق ترتيب مفاتيح السجلت التي‬ ‫ترتب ترتيبا تصاعديا أو تنازليا ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫رقم الموظف أو رقم البطاقة الشخصية فإن‬ ‫ترتيب المفاتيح يتم من أصغر رقم إي أصغر قيمة‬ ‫مفتاح تصاعديا إلى اكبر رقم إي اكبر قيمة مفتاح‬ ‫وبهذا تكون سجلت الطلب أو الموظفين أو‬ ‫المواطنيين تم ترتيبها تصاعدياً ‪،‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫والعكس إذا بدأنا الترتيب بأكبر رقم ثم نزلنا‬ ‫لصغر يكون الترتيب تنازلياً ‪ ،‬وبالمثل إذا كان‬ ‫المفتاح بالسماء فأن الترتيب يكون أبجدياً مبتدئاً‬ ‫بالحرف الول للسم بأللف ومنتهيا بالياء‬ ‫وعندما يتساوى مفتاحان في الحرف الول ينظر‬ ‫إلى الحرف الثاني‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫وإذا تساوى في الحرف الثاني ينظر إلى الحرف‬ ‫الثالث وهكذا ‪ .‬ومن الضروري إل يتطابق اسمان‬ ‫في كل الحروف وأل يكون حقل السم غير صالحاً‬ ‫ليكون مفتاحاً ‪،‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫لن هنالك شرطاً أساسياً لمفتاح السجل وهو أن‬ ‫يكون مفرداً في التعبير عن السجل ( لهذه‬ ‫المشكلة ل يفضل استخدام السماء في المفاتيح)‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫الخوارزمية هو تسهيل أو تسريع عملية البحث‬ ‫عن السجل هذا إضافة إلى إستخدامات أخرى في‬ ‫ترتيب المستويات للفراد مثل نتائج المتحانات‬ ‫والمنافسات بين الطلب والموظفين عامة‬ ‫المتنافسين‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫ومثل أولويات الحجوزات والطلبات والخدمات‬ ‫عموماً والتي تعطى أولوية للول فالتالي وهكذا ‪.‬‬ ‫إذاً ليس كل الترتيب يتم فقط لحقل المفاتيح وإنما‬ ‫يكمن أن يتم على أي حقل حسب الحاجة‬ ‫الستفسارية أو التحليلية ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫بعضها معقدة جداً وعالية الكفاءة ‪ ،‬ونعنى‬ ‫بالكفاءة إن يتم التصنيف في أقل وقت ممكن وفى‬ ‫أقل سعة تخزينية ممكنة ولكن لغرض هذا المنهج‬ ‫سوف نركز على نوعين من الخوارزميات يتميز‬ ‫بالبساطة وكثرة الستخدام ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫ما عرف باسم خوارزمية الفقاعة حيث يتم‬ ‫مقارنه كل عنصرين أو مفتاحين متجاورين‬ ‫وتعديل وضعهما حسب الترتيب المطلوب‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫أما النوع الثاني والذي عرف بخوارزميات‬ ‫الختيار وأشهرها ما يعرف بإسم خوارزمية‬ ‫الختيار المباشر حيث اختيار اكبر المفاتيح أو‬ ‫أصغرها حسب الترتيب المطلوب ووضعها في‬ ‫الترتيب الول ثم اختيار الكبر أو الصغر من‬ ‫بقية المفاتيح ووضعه في الترتيب الثاني وهكذا‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫يتم اختيار العنصر أو المفتاح التالي من بقية‬ ‫المفاتيح إلى إن يبقى مفتاح أو عنصر واحد هو‬ ‫المفتاح الخير أو العنصر الخير ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫خوارزمية الفقاعة ‪:‬‬ ‫• ادخل عدد المفاتيح أو العناصر (ن) ومصفوفة‬ ‫المفاتيح أو العناصر ‪.‬‬ ‫• قارن كل عنصر والعنصر الذي يليه مبتدئ ًا من‬ ‫العنصر الول مع الثاني ‪ ،‬الثاني مع الثالث ‪...‬‬ ‫حتى العنصر ( ن ‪ ، )1-‬العنصر (ن) ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫خوارزمية الفقاعة ‪:‬‬ ‫‪ .3‬إن كان ا غي ر مرت بين الترتيب المطلوب بدل‬ ‫موقعيهما (نلحظ هنا أن المقارنة التالية ستكون‬ ‫بي ن العنص ر الس ابق والعنص ر التال ي إذا تمت‬ ‫عملية تبديل الموقعين‪ ،‬مثلً إذا تم تبديل العنصر‬ ‫الثالث مع الرابع فإن العنصر الرابع الجديد‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫خوارزمية الفقاعة ‪:‬‬ ‫س يكون ف ي الواق ع ه و العنص ر الثال ث؛ لذا من‬ ‫الناحي ة العلمي ة س تتم المقارن ة هذه المرة بين‬ ‫العنص ر الثال ث والعنص ر الخام س‪ ،‬وهذا سبب‬ ‫تسمية الفقاعة حيث يقفز ليعيد الترتيب بسرعة‬ ‫إلى وضعه الطبيعي‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫خوارزمية الفقاعة ‪:‬‬ ‫مثل الفقاعة الصغيرة الحقيقية تقفز بسرعة إلى‬ ‫سطح الماء أو الزيت تاركة الفقاعات الكبر داخل‬ ‫السائل) ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫خوارزمية الفقاعة ‪:‬‬ ‫‪ .1‬قف إذا لم يعد هناك أي تبديل مواقع وأل عد‬ ‫إلى ‪. 2‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫مثال ( ‪: ) 3‬‬ ‫إذا كان صف المفاتيح هو ‪:‬‬ ‫‪86 92 12 37 48 57 25‬‬

‫المطلوب ترتيب العناصر ترتيباً تصاعدياً‬

‫‪33‬‬

‫مصفوفة العناصر الساسية ‪:‬‬ ‫‪33 86 92 12 37 48 57 25‬‬ ‫التبديل الول ل تبديل ‪57 25‬‬ ‫التبديل الثاني‬

‫تبديل ‪57 48 25‬‬

‫التبديل الثالث‬

‫تبديل ‪57 37 48 25‬‬

‫التبديل الرابع‬

‫تبديل ‪57 12 37 48 25‬‬

‫التبديل الخامس ل تبديل ‪92 57 12 37 48 25‬‬ ‫التبديل السادس تبديل‬ ‫التبديل السابع‬

‫تبديل‬

‫‪92 86 57 12 37 48 25‬‬ ‫‪92 33 86 57 12 37 48 25‬‬

‫مصفوفة العناصر بعد الدورة الولى ‪:‬‬ ‫‪92 33 86 57 12 37 48 25‬‬ ‫التبديل الول ل تبديل ‪48 25‬‬ ‫التبديل الثاني‬

‫تبديل‬

‫‪48 37 25‬‬

‫التبديل الثالث‬

‫تبديل‬

‫‪48 12 37 25‬‬

‫التبديل الرابع ل تبديل ‪57 48 12 37 25‬‬ ‫التبديل الخامس ل تبديل ‪86 57 48 12 37 25‬‬ ‫التبديل السادس تبديل‬

‫‪86 33 57 48 12 37 25‬‬

‫التبديل السابع ل تبديل ‪92 86 33 57 48 12 37 25‬‬

‫مصفوفة العناصر بعد الدورة الثانية ‪:‬‬ ‫‪92 86 33 57 48 12 37 25‬‬ ‫التبديل الول ل تبديل ‪37 25‬‬ ‫التبديل الثاني‬

‫تبديل‬

‫‪37 12 25‬‬

‫التبديل الثالث ل تبديل ‪48 37 12 25‬‬ ‫التبديل الرابع ل تبديل ‪57 48 37 12 25‬‬ ‫التبديل الخامس تبديل‬

‫‪57 33 48 37 12 25‬‬

‫التبديل السادس ل تبديل ‪86 57 33 48 37 12 25‬‬ ‫التبديل السابع ل تبديل ‪92 86 57 33 48 37 12 25‬‬

‫مصفوفة العناصر بعد الدورة الثالثة ‪:‬‬ ‫‪92 86 57 33 48 37 12 25‬‬ ‫التبديل الول تبديل ‪25 12‬‬ ‫التبديل الثاني ل تبديل ‪37 25 12‬‬ ‫التبديل الثالث ل تبديل ‪48 37 25 12‬‬ ‫التبديل الرابع‬

‫تبديل‬

‫‪48 33 37 25 12‬‬

‫التبديل الخامس ل تبديل ‪57 48 33 37 25 12‬‬ ‫التبديل السادس ل تبديل ‪86 57 48 33 37 25 12‬‬ ‫التبديل السابع ل تبديل ‪92 86 57 48 33 37 25 12‬‬

‫مصفوفة العناصر بعد الدورة الرابعة ‪:‬‬ ‫‪92 86 57 48 33 37 25 12‬‬ ‫التبديل الول ل تبديل ‪25 12‬‬ ‫التبديل الثاني ل تبديل ‪37 25 12‬‬ ‫التبديل الثالث‬

‫تبديل ‪37 33 25 12‬‬

‫التبديل الرابع ل تبديل ‪48 37 33 25 12‬‬ ‫التبديل الخامس ل تبديل ‪57 48 37 33 25 12‬‬ ‫التبديل السادس ل تبديل ‪86 57 48 37 33 25 12‬‬ ‫التبديل السابع ل تبديل ‪92 86 57 48 37 33 25 12‬‬

‫مصفوفة العناصر بعد الدورة الخامسة ‪:‬‬ ‫‪92 86 57 48 37 33 25 12‬‬ ‫التبديل الول ل تبديل ‪25 12‬‬ ‫إذن تم الترتيب النهائي‬ ‫التبديل الثاني ل تبديل ‪33 25 12‬‬ ‫التبديل الثالث ل تبديل ‪37 33 25 12‬‬ ‫التبديل الرابع ل تبديل ‪48 37 33 25 12‬‬ ‫التبديل الخامس ل تبديل ‪57 48 37 33 25 12‬‬ ‫التبديل السادس ل تبديل ‪86 57 48 37 33 25 12‬‬ ‫التبديل السابع ل تبديل ‪92 86 57 48 37 33 25 12‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫خوارزمية الختيار المباشر ‪:‬‬ ‫نبحث ع ن أصغر عنصر في المصفوفة‪ ،‬ونقوم‬ ‫بتبديل ه م ع العنصر الول‪ ،‬ثم نبحث عن أصغر‬ ‫عنص ر م ن بي ن عناص ر المص فوفة م ن العنصر‬ ‫الثان ي إل ي العنص ر الخي ر‪ ،‬ونقوم بتبديل ه مع‬ ‫العنصر الثاني ‪،‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫خوارزمية الختيار المباشر ‪:‬‬ ‫ث م نبح ث ع ن أص غر عنص ر م ن بي ن عناصر‬ ‫المص فوفة م ن العنص ر الثال ث إل ي العنصر‬ ‫الخير‪ ،‬ونقوم بتبديله مع العنصر الثالث‪ ،‬وهكذا‬ ‫إل ي أ ن تنته ي ك ل عناص ر المص فوفة وعندها‬ ‫نحصل على مصفوفة مرتبة ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫مثال (‪: )4‬‬ ‫إذا كان صف المفاتيح هو ‪:‬‬ ‫‪33 86 92 12 37 48 57 25‬‬ ‫المطلوب ترتيب العناصر ترتيباً تصاعدياً‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫الخطوة ‪:1‬‬ ‫نبح ث ع ن أص غر عنص ر م ن عناص ر المص فوفة وهو‬ ‫العنصر رقم [‪ ] 5‬الذي يساوي "‪ "12‬ونقوم بتبديله مع‬ ‫العنصر رقم [‪: ]1‬‬ ‫رقم العنصر [‪]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1‬‬ ‫‪33 86 92 25 37 48 57 12‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫الخطوة ‪:2‬‬ ‫نبحث عن أصغر عنصر من بين عناصر المصفوفة من‬ ‫العنصر الثاني إلي العنصر الخير وهو العنصر رقم [‪]5‬‬ ‫الذي يساوي "‪ "25‬ونقوم بتبديله مع العنصر رقم [‪]2‬‬ ‫رقم العنصر‬

‫[‪]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1‬‬ ‫‪33 86 92 57 37 48 25 12‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫الخطوة ‪:3‬‬ ‫نبحث عن أصغر عنصر من بين عناصر المصفوفة من‬ ‫العنصر الثالث إلي العنصر الخير وهو العنصر رقم [‪]8‬‬ ‫الذي يساوي "‪ "33‬ونقوم بتبديله مع العنصر رقم [‪]3‬‬ ‫رقم العنصر‬

‫[‪]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1‬‬ ‫‪48 86 92 57 37 33 25 12‬‬

‫الخوارزميات البيانية‬

‫الخطوة ‪:4‬‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫نبحث عن أصغر عنصر من بين عناصر المصفوفة من‬ ‫العنصر الرابع إلي العنصر الخير وهو العنصر رقم [‪]4‬‬ ‫الذي يساوي "‪ "37‬ونقوم بتبديله مع العنصر رقم [‪]4‬‬ ‫وهو نفس العنصر ‪:‬‬ ‫رقم العنصر‬

‫[‪]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1‬‬

‫‪48 86 92 57 37 33 25 12‬‬

‫الخوارزميات البيانية‬

‫الخطوة ‪:5‬‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫نبحث عن أصغر عنصر من بين عناصر المصفوفة من‬ ‫العنصر الخامس إلي العنصر الخير وهو العنصر رقم [‬ ‫‪ ]8‬ويساوي "‪ "48‬ونقوم بتبديله مع العنصر رقم [‪]5‬‬ ‫رقم العنصر‬

‫[‪]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1‬‬ ‫‪57 86 92 48 37 33 25 12‬‬

‫الخوارزميات البيانية‬

‫الخطوة ‪:6‬‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫نبحث عن أصغر عنصر من بين عناصر المصفوفة من‬ ‫العنصر السادس إلي العنصر الخير وهو العنصر رقم [‬ ‫‪ ]8‬الذي يساوي "‪ "57‬ونقوم بتبديله مع العنصر رقم [‬ ‫‪]6‬‬ ‫رقم العنصر‬

‫[‪]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1‬‬

‫‪92 86 57 48 37 33 25 12‬‬

‫الخوارزميات البيانية‬

‫الخطوة ‪:7‬‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫نبحث عن أصغر عنصر من بين عناصر المصفوفة من‬ ‫العنصر السابع إلي العنصر الخير وه و العنصر رقم [‬ ‫‪]7‬الذي يساوي "‪ "86‬ونقوم بتبديله مع العنصر رقم [‬ ‫‪]7‬وهو نفس العنصر ‪.‬‬ ‫رقم العنصر‬

‫[‪]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1‬‬

‫‪92 86 57 48 37 33 25 12‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫رقم العنصر‬

‫[‪]8[ ]7[ ]6[ ]5[ ]4[ ]3[ ]2[ ]1‬‬ ‫‪92 86 57 48 37 33 25 12‬‬

‫ونجد العنصر الخير يكون في موضعه الصحيح ‪.‬‬ ‫إذن تم الترتيب النهائي‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬ضع رقم العنصر = ‪. 1‬‬ ‫‪ .2‬أبحث عن أصغر عنصر من عناصر‬ ‫المصفوفة من رقم العنصر إلي آخر عنصر ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬قم بتبديل العنصر الصغر مع العنصر الذي‬ ‫يشير إليه رقم العنصر ‪.‬‬ ‫‪ .2‬رقم العنصر = رقم العنصر ‪. 1 +‬‬

‫الخوارزميات البيانية‬

‫‪ -4‬تصنيف‬ ‫المعلومات‬

‫الخوارزمية ‪:‬‬ ‫‪ .1‬إذا كان رقم العنصر = آخر عنصر أذهب إلي‬ ‫‪ 6‬وإل أذهب إلي ‪. 2‬‬ ‫‪ .2‬أطبع المصفوفة وهي مرتبة ‪.‬‬ ‫‪ .3‬النهاية ‪.‬‬

Program bubble sort; Const n:= 50; Var I , pass :integer; temp : integer; sortfield : array[1.. n] of integer; exchange : Boolean; Begin for I := 1 to n do readln ) sortfield [I](;

pass := 0; exchange := true; while exchange do begin exchange := false; pass := pass +1; for I := 1 to n-1 do if sortfield [I] < sortfield[I+1] then begin

temp := sortfield [ I ]; sortfield [ I ] := sortfield [ I+1] sortfield [ I+1] := temp; exchange := true; end; end; writeln )‘ no of passes’ , pass(; for I := I to n do writeln )sortfield [ I ](; End.

‫برنامج خوارزمية الفقاعة‬ ‫ثابت ن = ‪ 50‬عدد العناصر‬ ‫المتغيرات‬ ‫دورة ومؤشر ‪ :‬عدد صحيح‬ ‫مؤقت ‪ :‬عدد صحيح‬ ‫قائمة ‪ :‬مصفوفة من ‪ 1‬إلي ن وهي رقمية‬ ‫تبديل ‪ :‬منطقي‬ ‫أبدا‬ ‫المؤشر من ‪ 1‬إلي ن اعمل‬ ‫أقرأ عناصر مصفوفة القائمة‬ ‫دورة = ‪0‬‬ ‫تبديل = نعم‬ ‫ما دام التبديل نعم أعمل‬ ‫أبدا‬

‫التبديل = ل‬ ‫الدورة = الدورة ‪1 +‬‬ ‫من ‪ 1‬إلي ن – ‪ 1‬اعمل‬ ‫إذا كان بيان حقل التبديل < من الذي يليه‬ ‫أبدا‬ ‫أجعل حقل التبديل = تخزين مؤقت‬ ‫أجعل حقل التبديل التالي = حقل التبديل‬ ‫أجعل التخزين المؤقت = التبديل التالي‬ ‫أجعل التبديل = نعم‬ ‫نهاية (*نهاية إذا كان *)‬ ‫نهاية (* مادام * )‬ ‫اكتب (”عدد دورة الترتيب ” ‪ ,‬دورة )‬ ‫من ‪ 1‬إلي ن‬ ‫اكتب البيانات المرتبة من القائمة‬ ‫نهاية البرنامج‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫كلم ة تشفي ر نابع ة م ن كلم ة سايفر (‪)cipher‬‬ ‫النجليزي ة والت ي ه ي ف ي الواق ع أص لها الكلمة‬ ‫العربي ة صفر والت ي تعن ى (ل شي ء ) إذ أن‬ ‫التشفير مقصود به أل يفهم القارئ شيئاً مما هو‬ ‫مكتوب ( غير ذلك الشخص المصرح له بذلك ) ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫وبهذا لب د أ ن يكون عل م التشفير علماً قديماً؛‬ ‫فالناس منذ الزل لهم أسرارهم التي ل يؤدون أن‬ ‫يعرفها كل الناس‪ .‬ومما هو مسجل في التاريخ أن‬ ‫المص ريين القدام ى أول م ن بدأ التشفي ر لطريقة‬ ‫علمي ة ‪ ،‬وذل ك لم ا لديه م م ن مهارات رياضية‬ ‫معروفة‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫ث م مارس الهنود ولغري ق وغيره م م ن المم‬ ‫القديم ة التشفي ر‪ ،‬وأ ن المس لمين العرب مث ل بن‬ ‫الدره م ق د وثقوا لعل م التشفي ر وكتبوا في ه‪ ،‬أما‬ ‫اللمان فه م أول م ن مارس التشفي ر باستخدام‬ ‫الل ة حي ث اس تخدموا الل ة المعروف ة ب‬ ‫(‪. )Enigma‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫تتبع نظم التشفير الخطوات التالية ‪:‬‬ ‫‪ .1‬صمم خوارزمية الشفرة التي تود استخدامها‬ ‫مع الطرف الخر ‪.‬‬ ‫‪ .2‬أدخل النص أو المعلومات واضحة ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫تتبع نظم التشفير الخطوات التالية ‪:‬‬ ‫‪ .1‬أدخل الشفرة على النص أو المعلومات ليخرج‬ ‫نص أو معلومات مشفرة ‪.‬‬ ‫‪ .2‬أرسل الرسالة إلي الطرف الخر ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫تتبع نظم التشفير الخطوات التالية ‪:‬‬ ‫‪ .1‬عالج النص أو المعلومات التي بالرسالة‬ ‫بخوارزمية فك الشفرة ‪.‬‬ ‫‪ .2‬أخرج النص واضحا أو المعلومات واضحة ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫شفرات الستبدال أو التعويض ‪:‬‬ ‫تعت بر خوارزميات الس تبدال والتعوي ض من‬ ‫الخوارزميات القديم ة أبس طها ه ي خوارزمية‬ ‫يوليوس قيص ر والت ي تقوم باس تبدال أي حرف‬ ‫بالحرف الثال ث ف ي الترتيب‪ .‬يعن ى مثل حسب‬ ‫ترتيب الحروف العربية بالنظام التالي ‪:‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫‪1‬‬ ‫أ‬

‫‪2‬‬ ‫ب‬

‫‪3‬‬ ‫ت‬

‫‪4‬‬ ‫ث‬

‫‪5‬‬ ‫ج‬

‫‪6‬‬ ‫ح‬

‫‪7‬‬ ‫خ‬

‫‪8‬‬ ‫د‬

‫‪9‬‬ ‫ذ‬

‫‪14 13 12 11 10‬‬ ‫ر ز س ش ص‬

‫‪28 27 26 25 24 23 22 21 20 19 18 17 16 15‬‬ ‫ض ط ظ ع غ ف ق ك ل م ن ه و ي‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فإن أ تصبح ث و ب تصبح ج و ل تصبح ه ون‬ ‫تص بح ي وهكذا‪ .‬إذن نضي ف لموقع الحروف‬ ‫المراد تشفيره ‪ 3‬ليص بح الحرف المشف ر هو‬ ‫حرف ذلك الموقع ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫مثال (‪: )5‬‬ ‫حس ب خوارزمي ة يوليوس قيص ر م ا التشفير‬ ‫المقاب ل لحروف "ه " ‪" ،‬و" ‪" ،‬ي" مستعينا‬ ‫بالجدول أعله ؟‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫• موقع الحرف "ه " = ‪ ، 26‬موقع الحرف بعد‬ ‫التشفير = ‪ 29 = 3+ 26‬ل يوجد حرف رقمه‬ ‫‪ 29‬إذن نقوم بطرح ‪ 28‬وهي عدد الحروف‬ ‫وعليه يكون الحرف المقابل للحرف "ه " هو‬ ‫الحرف الذي موقعه = ‪ 1 = 28 – 29‬أي‬ ‫الحرف "أ" ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫مثال (‪: )5‬‬ ‫• موقع الحرف "و" = ‪ ، 27‬موقع الحرف بعد‬ ‫التشفير = ‪ 2 = 28 – 30 = 3 + 27‬وهو‬ ‫الحرف "ب"‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫مثال (‪: )5‬‬ ‫• موقع الحرف "ي" = ‪ ، 28‬موقع الحرف بعد‬ ‫التشفير = ‪ 3 = 28 – 31=3+28‬وهو الحرف‬ ‫"ت" ‪.‬‬ ‫هذا الجراء يتم في الحاسوب تلقائيا بواسطة‬ ‫الدالة ‪. MOD‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫معلومة ‪:‬‬ ‫تحسب الدالة ‪ MOD‬باقي القسمة فمثل‬ ‫‪ 16 MOD 3 = 1 , 37 MOD 7 = 2‬‬ ‫‪ 89 MOD 11 = 1 , 30 MOD 28 = 2‬‬ ‫‪ 31 MOD 28 = 3 , 7 MOD 4 = 3‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫وإذا أردنا تنفيذ هذه الخوارزمية بالحاسوب بلغة‬ ‫باسكال فإننا ببساطة‬

Program substitution ; Const no_of_char = 28; Var I : integer; letters :array[1.. No_of_char] of char; Begin for I := 1 to no_of_char do letters [I] := char ))I+3( mod no_of_char(; End.

‫برنامج استبدال الحروف‬ ‫ثابت‬ ‫عدد الحرف = ‪28‬‬ ‫متغيرات‬ ‫الحرف = مصفوفة حروف من ‪ 1‬إلي ‪28‬‬ ‫أبدا‬ ‫من ‪ 1‬إلي عدد الحرف‬ ‫أجعل الستبدال = الحرف الذي بعد ثلثة مواقع منه وعند‬ ‫انتهاء الحرف أبدا من الول‬ ‫النهاية‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫أما إذا أردنا فك التشفير فإننا نكرر نفس البرنامج‬ ‫فقد نجعل المعادلة‬ ‫( ‪Letters [ I ]:= char ))I – 3 ( mod No _ of _ char‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫أي أن الحرف المستبدل هو الحرف السابق قبل‬ ‫ثلث مواق ع م ن حرف الشفرة وعندما تكون‬ ‫القيم ة س البة فإنن ا نضي ف "‪ "28‬وهي عدد‬ ‫الحروف ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫مثال (‪: )6‬‬ ‫حس ب خوارزمي ة يوليوس قيص ر ما الحرف‬ ‫الص لي للمقابل للحروف المشفرة "أ" "ب"‬ ‫"ت" مستعينا بالجدول السابق ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫مثال (‪: )6‬‬ ‫‪ ‬موقع الحرف المشفر "أ" = ‪ ، 1‬موقع الحرف‬ ‫المقابل = ‪ 2 - = 3 – 1‬ل يوجد حرف رقمه –‬ ‫‪ 2‬إذن نقوم بجمع ‪ 28‬وهي عدد الحروف وعليه‬ ‫يكون الحرف المقاب ل للحرف "أ" هو الحرف‬ ‫الذي موقعه = ‪ 26 = 28+2-‬أي الحرف "ه "‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫الحرف المشف ر "ب" = ‪ ، 2‬موقع‬ ‫موق ع‬ ‫(‪: )6‬‬ ‫‪‬مثال‬ ‫الحرف المقابل = ‪27 = 28 + 1 - = 3 – 2‬‬ ‫وهو الحرف "و" ‪.‬‬ ‫‪ ‬موق ع الحرف المشف ر "ت" = ‪ ، 3‬موقع‬ ‫الحرف المقابل = ‪28 = 28 + 0 = 3 – 3‬‬ ‫وهو الحرف "ي" ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫مثال (‪: )7‬‬ ‫حسب خوارزمية يوليوس قيصر ما تشفير عبارة‬ ‫" أوقف الشراء " مستعينا بالجدول أعله ‪:‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫الل ف بعد الشفرة ثاء والواو "ب"‬ ‫يكون‬ ‫(‪: )7‬‬ ‫سمثال‬ ‫والقاف ميما والفاء لما واللم تصبح ياء والشين‬ ‫تص بح طاء والراء تص بح شيناً وم ن ث م تصبح‬ ‫العبارة ( أوقف الشراء ) ( ثنمل ثهطشث ) وإذا‬ ‫عرف الطرف الخ ر مفتاح الس تبدال ‪ 3‬فإنه‬ ‫سيفك تلك الشفرة ويصل إلي النص الواضح ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫‪ .1‬المعرفة بخواص اللغة مثل تكرارية الحروف‬ ‫في اللغة ‪ ،‬ففي كل لغة تتكرر الحروف بنسب‬ ‫ثابتة ‪ ،‬وهناك إحصائية ثابته بالنسبة المئوية‬ ‫لتكرار أي حرف في أي لغة ‪،‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫ث م أ ن هناك حروف ا معين ة تتكرر ف ي الكلمة‬ ‫الواحدة وحروف أخري ل تتكرر مثل حروف‬ ‫العط ف ف ي اللغ ة العربي ة فيمك ن أ ن تجد الواو‬ ‫جوارها واواً أو الفاء جوارها فاءاً‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫وكذل ك حروف الج ر فيمك ن أ ن تجد جوار اللم‬ ‫لماً وجوار الباء با ءً ولكن قل أو ل تكاد تجد‬ ‫جوار القاف قافاً أو جوار النون نوناً ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫كذلك هناك حروف يكثر تجاورها مثل ألف ولم‬ ‫في اللغ ة العربي ة وكي و ي و ‪ q u .‬في اللغة‬ ‫النجليزية ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫كذل ك هناك تكث ر ف ي بداي ة الكلمات ف ي ك ل لغة‬ ‫مثل حرف اللف في اللغة العربية وحرف الي ‪I‬‬ ‫في اللغة النجليزية ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫‪ .1‬معرف ة أس لوب المناف س اللغوي والمنطقي‬ ‫والعلم ي وذل ك ع ن طري ق كتابات ه المفتوحة‬ ‫وكلمه وحواره مع الخرين ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫‪ .1‬تخمي ن نوع الرس ائل الت ي يمك ن أ ن يرسلها‬ ‫بناء عل ى معلومات ع ن أنشطت ه وعلقات ه مع‬ ‫الطرف الخ ر‪ ،‬فه ل ه ي رس ائل تجارية‪،‬‬ ‫رياضية‪ ،‬أمنية‪ ،‬ثقافية‪ ،‬أكاديمية ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫‪ .1‬محاول ة الوص ول بقدر المكان إلي أنواع‬ ‫الخوارزميات الت ي تس تخدم ف ي التشفير فإذا‬ ‫عرفن ا عل ى س بيل المثال أن ه يستخدم شفرة‬ ‫قيصر‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫يمك ن معرف ة المفتاح بس هولة ع ن طريق‬ ‫خواص حروف اللغة ثم تجربة استبدال حرف‬ ‫بآخر حتى نصل للحل ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫تعتمد خوارزميات فك الشفرات على التي ‪:‬‬ ‫لبد من الشارة في أن سرعة الوصول إلي فك‬ ‫الشفرة يتناس ب تناس باً طردياً وأس ياً مع‬ ‫جزئيات المعلوم ة المكتشف ة ‪ .‬مثلً إذا اكتشفنا‬ ‫الحرف ألف يمكن أن نكتشف الحرف لم‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فك الشفرات ‪:‬‬ ‫على رالتي ‪:‬‬ ‫خوارزميات فك‬ ‫تجاورها‬ ‫الشفراتي يكث‬ ‫الحروف الت‬ ‫تعتمد ن وك ل‬ ‫والحرف‬ ‫للل ف‪ ،‬وم ن ث م ك ل حرف يت م اكتشاف ه يؤدي إلي‬ ‫اكتشاف الحروف الخري ‪ .‬وهكذا تتزاي د سرعة‬ ‫اكتشاف الحروف أضعافا مضاعفة‪ ،‬وهذا ما يعرف‬ ‫في علم تعقيدات الحاسوب بالسرعة السية‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫تعقيدات شفرات التبديل والتعويض ‪:‬‬ ‫يمكن تعقيد شفرة يوليوس قيصر ليكون مفتاحها‬ ‫بدلً من الرقم ثلثة أي رقم آخر مثل أنه يكون‬ ‫المفتاح "‪ "7‬فإ ن "أ " ستصبح بع د عملية‬ ‫التشفير "د" ‪" ،‬ن" ستصبح بعد عملية التشفير‬ ‫"ث" وهكذا ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫تعقيدات شفرات التبديل والتعويض ‪:‬‬ ‫نلحظ في شفرة يوليوس قيصر أن كل الحروف‬ ‫يتم تشفيرها بمفتاح واحد فقط فإذا اكتشف ذلك‬ ‫المفتاح سيتم فك الشفرة ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫تعقيدات شفرات التبديل والتعويض ‪:‬‬ ‫يمك ن تعقيد هذه الشفرة بإنشاء جدول حروف‬ ‫يكون لك ل حرف مفتاح خاص يت م تحديد هذا‬ ‫المفتاح عشوائياً (يختلف هذا الجدول اختلفاً‬ ‫كلي ًا عن جدول ترتيب الحروف)‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫تعقيدات شفرات التبديل والتعويض ‪:‬‬ ‫ويكون هذا الجدول الجديد مفتاح الشفرة السري‬ ‫بين الراسل والمرسل إليه ويتم هذا الجراء في‬ ‫الحاسوب تلقائيا بواسطة الدالة ‪.RANDOM‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫معلومة ‪:‬‬ ‫الدالة ‪ )RANDOM )N‬تعطي رقما عشوائيا‬ ‫بين ‪ 1‬و ‪ N‬فمثل ‪:‬‬ ‫يمكن أن تعطي ‪)RANDOM)6 6 ، 5 ، 4 ، 3 ، 2 ، 1‬‬ ‫يمكن أن تعطي أي رقم بين ‪ 1‬و ‪)RANDOM)28 28‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫وحتى يتم ذلك يمكن عمل تعديل بسيط في البرنامج‬ ‫الس ابق وذل ك باس تدعاء الدال ة العشوائي ة الرقمية‬ ‫أي تلك التي تعطي رقماً عشوائياً بين واحد وعدد‬ ‫الحروف حس ب نظام التمثي ل واس تخدام مصفوفة‬ ‫منطقية لتحدد هل الرقم العشوائي تم استخدامه أم‬ ‫ل على النحو التالي ‪:‬‬

Program random_change ; Const n = 28; Var L : integer; substit :array [1.. n] of integer; character :array [1.. n] of char; change :array [1.. n] of Boolean; Begin for I := 1 to no_of_char do

begin substit [I] := I; change [I] := false; end; for I := 1 to no_of_char do begin L := random )n(; if not change [L] then begin substit [I] := L;

change [I] := true; end; characters [I] := char )substit [I](; end; End.

‫برنامج تبديل الحروف‬ ‫ثابت‬ ‫عدد الحروف ‪28‬‬ ‫متغيرات‬ ‫م ‪ :‬عدد صحيح‬ ‫مصفوفة تغيير الرقام‬ ‫مصفوفة الحروف المشفرة‬ ‫مصفوفة هل استخدم الرقم العشوائي ؟‬ ‫أبدا‬ ‫من ‪ 1‬إلي عدد الحروف‬ ‫أبدا‬ ‫أجعل كل رقم في مكانه‬ ‫أجعل هل تم التغير = ل لكل الحروف‬ ‫النهاية‬

‫من ‪ 1‬إلي عدد الحروف‬ ‫أبدا‬ ‫أجعل م = الرقم العشوائي الذي تم توليده من ‪ 1‬إلي ن‬ ‫هل تم تغير في الحروف رقم م من قبل‬ ‫أبدا‬ ‫وضع رقم الحرف إلي الرقم العشوائي‬ ‫أجعل هل تم التغيير = نعم‬ ‫النهاية‬ ‫الحرف المشفر في المصفوفة = الحرف المقابل لرقم الحرف‬ ‫النهاية‬ ‫انتهت عملية تغيير وضع الرقام‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫هذا البرنامج يقوم أولً بافتراض كل الحروف في‬ ‫وضعه ا الط بيعي‪ ،‬ث م بع د ذل ك يت م توليد أرقاماً‬ ‫عشوائي ة بالدال ة ‪ random‬ولك ن لن هناك‬ ‫احتمالً بأن تعطي الدالة العشوائية أرقاماً متكررة‬ ‫ينتج عنها حرفان أو أكثر في موقع واحد‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫فكان لب د م ن اس تخدام المص فوفة المنطقية‬ ‫لزالة التكرارية‪ ،‬ولبد من إعطاء القيم الصلية‬ ‫للحروف لمص فوفة التبدي ل حت ى تظل الرقام‬ ‫التي لم يحدث لها تغيير في وضعها القديم ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫إن نقطة الضعف في هذه الشفرة تتمثل في أنها‬ ‫يمك ن أ ن تكتش ف باس تخدام التكرار النسبي‬ ‫للحرف ف ي اللغ ة كم ا ذكرن ا م ن قب ل‪ ،‬لن كل‬ ‫حرف يقابل ه حرف وبهذا س تظل التكرارية‬ ‫النسبية للحروف كما هي مع تغيير الحرف ومن‬ ‫ثم يمكن اكتشاف الحرف المقابل وفك الشفرة ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /5‬خوارزميات تشفير‬ ‫المعلومات‬

‫ملحوظة ‪:‬‬ ‫لحظ إننا لم نعط المسافة بين الكلمات رمزاً في‬ ‫المثل ة م ن أج ل المثال ولكنه ا ف ي الواق ع هي‬ ‫مثله ا مث ل الحروف له ا رم ز ف ي الحاسوب‬ ‫ويس ري عليه ا التبدي ل بك ل أنواع ه مثله ا مثل‬ ‫الحرف ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫عندم ا تحدثن ا ع ن أنظم ة الترمي ز الثنائ ي في‬ ‫منهج السنة الولي ذكرنا أن كل حرف لبد أن‬ ‫يكون ب ه رم ز ثنائ ي مفرد‪ ،‬وم ن هنا تطورت‬ ‫أنظم ة الترمي ز الثنائ ي م ن نظام ب ي سي دي‬ ‫(‪ )BCD‬الس داسي إل ي نظام البسيديك‬ ‫(‪ )EBEDIC‬ونظام آسكي (‪ )ASCII‬الثماني ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫ولك ن ذكرن ا ف ي الفقرة الس ابقة أ ن لك ل لغة‬ ‫خواص ها ف ي التكرار النس بي للحروف وداخل‬ ‫اللغة لكل مؤسسة أو مركز معلومات خواص في‬ ‫نوع المعلومات الت ي يتعام ل معه ا‪ ،‬فإن كان‬ ‫مركزاً إحص ائياً فإ ن أكث ر المعلومات ستكون‬ ‫أرقاماً‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫وإ ن كان مركزاً ص حفياً فإ ن أكثر المعلومات‬ ‫ستكون صوراً وأما الراديو فإن أكثر المعلومات‬ ‫كلماً ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫م ن هذا المنطل ق كان لب د م ن تحوي ر التمثيل‬ ‫الثنائ ي أ و تغييره ليمك ن م ن تمثيل ه تمثيلً أمثل‬ ‫لل بيانات بناء عل ى خواص اللغة وخواص‬ ‫البيانات ‪ ،‬ونعنى بالتمثيل المثل هو التمثيل الذي‬ ‫يأخ ذ أق ل حج م ممك ن م ن ذاكرة الحاس وب ‪ ،‬أو‬ ‫وسائط تخزين الحاسوب ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫ومن ثم أقل وقت ممكن في إرسال تلك البيانات‬ ‫وهذا يتم ببساطة بتمثيل أكثر الحروف أو الرقام‬ ‫أو الرموز تكراراً بأقل عدد من الثنائيات‪ ،‬ويزيد‬ ‫عدد الثنائيات الممثلة للحرف أو الرقم أو الرمز‬ ‫كلما قلت تكرارية استخدامه‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫وهذه الطريقة أو الخوارزمية تعرف بخوارزمية‬ ‫هوفمان ويت م تص ميمها بطريق ة الشجرة الثنائية‬ ‫على النحو التالي ‪:‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫‪ -1‬نفترض أن لدينا رمز أ ‪ 1‬و أ ‪ 2‬و أ ‪ 3‬و أ ‪ 4‬و‬ ‫أ ‪ 5‬وكان التكرار النس بي لهذه الرموز مرتبة‬ ‫تنازليا حسب الجدول أدناه ‪:‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫الرمز‬ ‫أ‪1‬‬ ‫أ‪2‬‬ ‫أ‪3‬‬ ‫أ‪4‬‬ ‫أ‪5‬‬

‫التكرار النسبي‬ ‫‪40%‬‬ ‫‪20%‬‬ ‫‪20%‬‬ ‫‪10%‬‬ ‫‪10%‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫‪ -2‬يت م رب ط ك ل رمزي ن م ن أس فل إل ي أعلى‬ ‫بالترتيب التالي ‪:‬‬ ‫أ ‪ /‬أ‪ 4‬و أ‪ 5‬يت م ربطهم ا ويس تبدل برم ز ربط‬ ‫جدي د أس مه أ‪ 5 4‬وبتكراري ة افتراضي ة تساوي‬ ‫جمعهما النسبي ‪. %20 = %10 + %10‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫ب ‪ /‬الن لدين ا ‪ 4‬رموز ه م الرمز أ‪ 1‬بتكرار‬ ‫نس بي ‪ %40‬والرمز أ‪ 2‬و أ‪ 3‬و أ‪ 54‬بتكرار‬ ‫نسبي ‪ %20‬فيمكننا اختيار أي اثنين من أ‪ 2‬و‬ ‫أ‪ 3‬و أ‪ 54‬فمثلً أ‪ 2‬و أ‪ 54‬وربطه ا برم ز جديد‬ ‫سمه أ‪ 254‬بتكرار نسبي ‪. %40‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫ج ‪ /‬الن أصبح لدينا ثلث رموز هم أ‪ 1‬وأ‪ 3‬و‬ ‫أ‪ 254‬بتكرار نسبي ‪ %40‬و ‪ %20‬و ‪%40‬‬ ‫على التوالي ‪ .‬لذا يتم ربط أ ‪ 3‬مع أي من أ‪ 1‬أو‬ ‫أ‪ 254‬فمثل أ‪ 254‬برمز ربط جديد سمه أ‪3254‬‬ ‫بتكرار نسبي ‪. %60‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫د ‪ /‬الن بق ي لن ا رمزي ن ه م أ‪ 1‬و أ‪ 3254‬يتم‬ ‫ربطهما برمز جديد أسمه أ‪ 13254‬بتكرار نسبي‬ ‫‪. %100‬‬ ‫بهذا تكتمل شجرة هوفمان حسب الرسم أدناه ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫أ‪13254‬‬ ‫أ‪3254‬‬

‫أ‪1‬‬

‫أ‪452‬‬

‫أ‪3‬‬

‫أ‪54‬‬ ‫أ‪2‬‬ ‫أ‪4‬‬

‫أ‪5‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫نلح ظ أ ن الشجري ة مائل ة ب ل شب ه س اقطة على‬ ‫الجانب اليسر أما تكويد الرموز فحسب الجدول‬ ‫أدناه ‪:‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫الرمز‬ ‫أ‪1‬‬ ‫أ‪2‬‬ ‫أ‪3‬‬ ‫أ‪4‬‬ ‫أ‪5‬‬

‫التكويد‬ ‫‪1‬‬ ‫‪100‬‬ ‫‪10‬‬ ‫‪1000‬‬ ‫‪1000‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫متوسط حجم الشجرة ‪:‬‬ ‫يقاس متوس ط حج م الشجرة بطول الرمز‬ ‫مضروب في التكرارية بالنسبة للرمز فمن جدول‬ ‫التكرار النس بي وجدول التكوي د يمك ن حساب‬ ‫حج م هذه الشجري ة ب ‪× 3 + %40 × 1‬‬ ‫‪× 4 + %10 × 4 + %20 × 2 + %20‬‬ ‫‪ 2.2 = %10‬ثنائية ‪ /‬الرمز ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫متوسط حجم الشجرة ‪:‬‬ ‫تعت بر م ن ميزات تكوي د هوفمان أ ن يعط ي كما‬ ‫ذكرنا التكويد المثل ‪ ،‬ومن ثم حتى إذا تم تغيير‬ ‫اختيار ربط الرموز التي لها في كل مرحلة نفس‬ ‫التكرار النس بي ل ن يؤث ر ف ي القيم ة النهائية‬ ‫لمتوسط حجم الشجرية‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫إ ن الرم ز أ‪ 1‬و أ‪ 2‬و أ‪ 3‬و أ‪ 4‬و أ‪ 5‬يمك ن أن‬ ‫تكون رموزاً لي رسائل أو لكلمات أو توجيهات‬ ‫هامة‪ ،‬ولها تكرارية مثلً يمكن أن تكون رسائل‬ ‫بي ن مكت بين ف ي بورتس ودان و الخرطوم في‬ ‫شرك ة اس تيراد‪ ،‬وبه ا تكراري ة س لم البضاعة‬ ‫للزبون ‪%40‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫وتس تلم البضاع ة من الباخرة ‪ %20‬وخزن‬ ‫البضاعة ‪ %20‬وإرسال البضاعة إلي الخرطوم‬ ‫‪ %10‬وتسلم التحويل المالي ‪ %10‬أو يمكن أن‬ ‫تكون نف س هذه الرموز يرم ز به ا لرسائل‬ ‫عسكرية في العمليات‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫مث ل (تس لم الغذي ة) ‪( %40‬وتسلم‬ ‫الذخيرة)‪( %20‬وتس لم الرواتب) ‪ %20‬و‬ ‫(الهجوم على العدو) ‪ %10‬و (إيقاف الهجوم)‬ ‫‪. %10‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫تكويد هوفمان المثالي للحروف النجليزية ‪:‬‬ ‫إذا كان ت تكراري ة الحروف النجليزي ة حسب‬ ‫دراس ات إحص ائية مكثف ة للغ ة النجليزي ة كانت‬ ‫حسب الجدول المرفق – فإن خوارزمية هوفمان‬ ‫يمكن أن تصمم عاى النحو التالي ‪:‬‬

‫تكويد هوفمان المثالي للحروف النجليزية ‪:‬‬ ‫‪ .1‬اربط ‪ z‬و‪ q‬في ‪ qz‬بنسبة ‪%0.5‬‬ ‫‪ .2‬اربط ‪ qz‬مع ‪ x‬بنسبة ‪ %1‬من ‪. xqz‬‬ ‫‪ .3‬اربط ‪ k‬و ‪ j‬في ‪ jk‬بنسبة ‪. %1‬‬ ‫‪ .4‬اربط ‪ xqz‬و ‪ jk‬في ‪ jk xqz‬بنسبة ‪. %2‬‬ ‫‪ .5‬اربط ‪ g‬و ‪ v‬في ‪ vg‬بنسبة ‪%2.5‬‬ ‫‪ .6‬اربط ‪ b‬و ‪ w‬في ‪ wb‬بنسبة ‪%3‬‬

‫تكويد هوفمان المثالي للحروف النجليزية ‪:‬‬ ‫‪ .1‬اربط ‪ p‬و ‪ y‬في ‪ yp‬بنسبة ‪%4‬‬ ‫‪ .2‬اربط ‪ f‬مع ‪ jkxqz‬في ‪ jkxqzf‬بنسبة ‪%4‬‬ ‫‪ .3‬اربط ‪ vg‬و ‪ wb‬في ‪ wbvg‬بنسبة ‪%5.5‬‬ ‫‪ .4‬اربط ‪ m‬و‪ u‬في ‪ um‬بنسبة ‪%6‬‬ ‫‪ .5‬اربط ‪ I‬و ‪ c‬في ‪ lc‬بنسبة ‪%6.5‬‬ ‫‪ .6‬اربط ‪ d‬و ‪ yp‬في ‪ ypd‬بنسبة ‪%9.5‬‬

‫تكويد هوفمان المثالي للحروف النجليزية ‪:‬‬ ‫‪ .1‬اربط ‪ jkxqzf‬مع ‪ wbvg‬في‬ ‫‪ wbvgjkxqzf‬بنسبة ‪%9.5‬‬ ‫‪ .2‬اربط ‪ s‬و ‪ h‬في ‪ sh‬بنسبة ‪%12‬‬ ‫‪ .3‬اربط ‪ um‬مع ‪ j‬في ‪ jum‬بنسبة ‪%12.5‬‬ ‫‪ .4‬اربط ‪ c‬مع ‪ r‬في ‪ rc‬بنسبة ‪%13‬‬ ‫‪ .5‬اربط ‪ o‬مع ‪ n‬في ‪ on‬بنسبة ‪%15‬‬

‫تكويد هوفمان المثالي للحروف النجليزية ‪:‬‬ ‫‪ .1‬اربط ‪ a‬مع ‪ ypd‬في ‪ aypd‬بنسبة ‪%16‬‬ ‫‪ .2‬اربط ‪ wbvgdkxqzf‬مع ‪ t‬في‬ ‫‪ twbvgdkxqzf‬بنسبة ‪%18.5‬‬ ‫‪ .3‬اربط ‪ e‬مع ‪ sh‬في ‪ esh‬بنسبة ‪%25‬‬ ‫‪ .4‬اربط ‪ jum‬مع ‪ vlc‬في ‪ vlcjum‬بنسبة‬ ‫‪%25.5‬‬

‫تكويد هوفمان المثالي للحروف النجليزية ‪:‬‬ ‫‪ .1‬اربط ‪ on‬مع ‪ apyd‬في ‪ apydon‬بنسبة‬ ‫تكرارية ‪%31‬‬ ‫‪ .2‬اربط ‪ twbvghjxqzf‬مع ‪ esh‬في‬ ‫‪ eshtwbvgjkxqzf‬بنسبة ‪%43.5‬‬ ‫‪ .3‬اربط ‪ rkcium‬مع ‪ apydib‬في‬ ‫‪ apydibrkcium‬بنسبة ‪%56.5‬‬

‫تكويد هوفمان المثالي للحروف النجليزية ‪:‬‬ ‫‪ .1‬اربط ‪ eshtwbvgkxqzf‬مع‬ ‫‪ apydibrkcium‬في‬ ‫‪apydonrlcjumeshtwbvgjkxqzf‬‬ ‫بنسبة تكرارية ‪%100‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫تمرين‬ ‫‪ .1‬ماالغرض من معرفة أماكن تخزين المعلومات ؟‬ ‫‪ .2‬ما المقصود بالبحث المتتالي ؟‬ ‫‪ .3‬ما المقصود بالبحث الثنائي ؟‬ ‫‪ .4‬ما المفتاح الساسي ؟‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫تمرين‬ ‫‪ .1‬حدد عيوب اس تخدام الس ماء كمفاتي ح مع‬ ‫ضرب أمثلة لذلك ‪.‬‬ ‫‪ .2‬أيهما أفضل للبحث المتتالي أم الثنائي ؟ وضح‬ ‫السباب ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫تمرين‬ ‫‪ .1‬صف خوارزمية البحث المتتالي ‪.‬‬ ‫‪ .2‬صف خوارزمية البحث الثنائي ‪.‬‬ ‫‪ .3‬ما المقصود بتصنيف المعلومات ؟‬ ‫‪ .4‬صف أحد خوارزميات التبديل ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫تمرين‬ ‫‪ .1‬صف أحد خوارزميات الختيار ‪.‬‬ ‫‪ .2‬أيهم ا أفض ل للس تخدام ف ي ترتي ب قائم ة من‬ ‫العداد أس لوب الفقاع ة ‪ ،‬أ م اسلوب الختيار‬ ‫المباشر ؟ وضح السباب ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫تمرين‬ ‫‪ .1‬عرف الشفرة ‪.‬‬ ‫‪ .2‬ما الغرض من استخدام الشفرة ؟‬ ‫‪ .3‬حدد خطوات الشفرة ‪.‬‬ ‫‪ .4‬على ماذا يعتمد فك الشفرة ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫تمرين‬ ‫‪ .1‬أعم ل شفرة ش بيه بشفرة يوليوس قيصر‬ ‫مستخدما الرقم "‪ "5‬كمفتاح لهذه الشفرة ‪.‬‬ ‫‪ .2‬وض ح عي ب الشفرة الت ي عملته ا في المثال‬ ‫السابق ‪.‬‬

‫الخوارزميات البيانية‬

‫‪ /6‬ترميز‬ ‫هوفمان‬

‫تمرين‬ ‫‪ .1‬ما الح ل المناس ب حس ب رأي ك لتفادي عيب‬ ‫الشفرة في المثال السابق ؟‬

‫نظم التشغيل‬

‫‪/1‬‬ ‫مدخل‬

‫نظام التشغي ل ه و برنام ج يعم ل بي ن مستخدم‬ ‫الحاسوب وجهاز الحاسوب يمكن المستخدم من‬ ‫تنفي ذ برمجيات ه بس هولة وفعالي ة وبكفاء ة عالية‬ ‫(نعنى بالكفاءة العالية التنفيذ في أقل وقت ممكن‬ ‫وفي أقل مساحة من الذاكرة)‬

‫نظم التشغيل‬

‫‪/1‬‬ ‫مدخل‬

‫يمكن أن نتصور نظام التشغيل كتنظيم فرعي من‬ ‫نظام الحاسوب في الرسم التالي ‪:‬‬

‫مستخدم‬

‫مستخدم‬

‫مستخدم‬

‫مستخدم‬

‫مستخدم‬

‫مستخدم‬

‫مستخدم‬

‫(‪)1‬‬

‫(‪)2‬‬

‫(‪)3‬‬

‫(‪)4‬‬

‫(‪)5‬‬

‫(‪)6‬‬

‫(ن)‬

‫تخزين‬ ‫بيانات‬

‫لغة‬ ‫باسكال‬

‫طباعة‬ ‫تقرير‬

‫لغة‬ ‫تجميع‬ ‫(اسمبلي)‬

‫إرسال‬ ‫بيانات‬

‫معالج‬ ‫النصوص‬

‫نظام‬ ‫قاعدة‬ ‫بيانات‬

‫البرامج التطبيقية أو برامج المستخدمين‬ ‫نظام التشغيل‬ ‫جهاز الحاسوب‬ ‫(الهاردوير)‬

‫نظم التشغيل‬

‫‪/1‬‬ ‫مدخل‬

‫نلحظ من الرسم أن نظام التشغيل ينظم أو يتحكم‬ ‫في ك ل طلبات المس تخدمين‪ ،‬فمنه م م ن يريد‬ ‫استخدام برنامج قاعدة البيانات‪ ،‬ومنهم من يريد‬ ‫اس تخدام برنام ج تخزي ن ملفات على القرص‪،‬‬ ‫ومنهم من يريد تشغيل برنامج بلغة باسكال لذا‬ ‫فهو يطلب من نظام التشغيل مترجم باسكال‪،‬‬

‫نظم التشغيل‬

‫‪/1‬‬ ‫مدخل‬

‫ومنه م م ن يري د طباع ة تقري ر أ و طباع ة رسم‬ ‫بيان ي‪ ،‬ومنه م م ن يري د اس تخدام لغ ة التجميع‪،‬‬ ‫ومنه م م ن يريد اس تفسارا أ و تعديل بيانات على‬ ‫الشاشة‪ ،‬ومنهم من يريد إرسال بيانات عبر شبكة‬ ‫التص الت‪ ،‬ومنه م م ن يري د برنام ج معالج‬ ‫النص وص إل ي آخ ر طلبات المس تخدمين التي‬ ‫يؤديها الحاسوب ‪.‬‬

‫نظم التشغيل‬

‫‪/1‬‬ ‫مدخل‬

‫وأحيان ا ب ل ف ي كثي ر م ن الحيان ق د يطلب عدد‬ ‫المستخدمين نفس الخدمة في وقت واحد ‪ .‬إذن‬ ‫يمك ن أ ن نقول أ ن برنام ج نظام التشغي ل هو‬ ‫برنام ج تحك م يس اعد ف ي تنفي ذ برامجه م وإنها‬ ‫أعماله م باس تخدام الح د الدن ي من إمكانات‬ ‫الحاسوب (الوقت والذاكرة) ‪.‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫عند اختراع الحاسوب في نهاية الربعينات كان‬ ‫التعامل مع الحاسوب باللغة الثنائية أو ما يعرف‬ ‫بلغ ة الماكين ة‪ ،‬وكان مس تخدم الحاس وب لب د أن‬ ‫يكون مبرمج ا بلغ ة الماكين ة ول م يكن حينذاك‬ ‫يوجد نظام تشغيل أو مشغل ‪،‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫ب ل كان الم برمج نفس ه الذي يشغ ل الحاسوب‬ ‫ليقوم بتنفيذ برنامجه‪ ،‬ثم بعد ذلك يدخل المبرمج‬ ‫التال ي ويشغ ل الحاس وب لتنفي ذ عمله وهكذا‬ ‫ولتنظي م أعمال الم برمجين يقوم الم برمج بحجز‬ ‫الحاسوب لفترة معينة كل ساعة ‪،‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫ث م الذي يلي ه فإذا اكتمل ت الس اعة ول م ينفذ‬ ‫الم برمج عمل ه يوق ف عمل ه بتس ليم الحاسوب‬ ‫للمبرمج التالي‪ .‬تم في نهاية الخمسينيات تصميم‬ ‫المترجمات مث ل مترج م القول (باس كال حاليا)‪،‬‬ ‫ومترجم فورتران ‪ ،‬ومترجم كوبول ‪.‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫وق د س هلت المترجمات عملي ة تص ميم البرامج‬ ‫وساعدت في كتابة برامج متطورة ومتعددة ولكن‬ ‫لم تساعد في عملية التشغيل‪ ،‬وظل التشغيل يأخذ‬ ‫وقت ا طويل حي ث يت م أول أنزال المترج م من‬ ‫الشريط إلي الذاكرة ‪،‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫ث م بع د ذل ك إنزال ال برنامج ث م تشغي ل المترجم‬ ‫على البرنامج ليتحول غلي لغة التجميع ثم إعادة‬ ‫المترجم إلي الشريط على البرنامج المترجم إلي‬ ‫لغ ة التجمي ع للتص حيح باللغ ة الثنائي ة‪ ،‬ثم إعادة‬ ‫التجميع إلي الشريط ثم تشغيل البرنامج المترجم‬ ‫باللغة الثنائية‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫أ و م ا يعرف بال برنامج الهدف عل ى الحاسوب‪.‬‬ ‫وإذا حدث أ ي خط أ ف ي ال برنامج الس اسي يتم‬ ‫تص حيح الخط أ وإعادة ك ل هذه العمليات من‬ ‫جديد‪.‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫هذا م ن ناحي ة‪ ،‬م ن ناحي ة أخري خلل فترة كل‬ ‫إنزال شري ط لغ ة البرمج ة وإعادته ا للشريط‬ ‫وإنزال شريط لغة التجميع وإعادتها إلي الشريط‬ ‫يظل الحاسوب عاطل غير مستخدم فإذا علمنا أن‬ ‫تكلفة ساعة الحاسوب في تلك الفترة حوالي ‪45‬‬ ‫دولر في الساعة‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫إذا عمل لمدة ‪ 24‬ساعة وحوالي ‪ 90‬دولرا في‬ ‫الساعة إذا عمل لفترة ‪ 12‬ساعة في حين أن الحد‬ ‫الدن ى للجور ف ي تل ك الفترة كان فقط دولرا‬ ‫واحدا للساعة بالوليات المتحدة ‪ .‬ممكن أن نري‬ ‫مدي الخس ارة الناتج ة ع ن أ ي وق ت يضيع دون‬ ‫استخدام الحاسوب لتنفيذ أعمال مفيدة ‪.‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫لهذا ت م خل ق وظيف ة جديدة ف ي الحاس وب هي‬ ‫وظيفة المشغل وهو الذي يقوم بأداء كل العمال‬ ‫اليدوي ة م ن إنزال للشرط ة وغيره ا والتي كان‬ ‫يقوم به ا الم برمجون‪ ،‬وق د أدي ذل ك إل ي تقليل‬ ‫الزمن الضائع من الحاسوب‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫لم ا كان للمشتغلي ن م ن خ برة في هذه العمال‬ ‫اليدوية أكثر من المبرمجين ثم أنه عندما يظهر‬ ‫خط أ ف ي ال برنامج – فأ ن المشغل يقوم مباشرة‬ ‫بإيقاف ذلك البرنامج وإعادته للمبرمج والبدء في‬ ‫تشغيل البرنامج التالي ‪.‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫ولق د كان ف ي الس ابق كم ا ذكرن ا (عندم ا ل م يكن‬ ‫هنال ك مشغ ل يقوم الم برمج باس تخدام ك ل وقته‬ ‫ويحاول تص حيح برنامج ه إ ن كان ت به أخطاء‬ ‫خلل وقت ه المحجوز) ولك ن بع د خل ق وظيفة‬ ‫المشغل يتم الستفادة من الوقت الذي يصحح فيه‬ ‫المبرمج برنامجه في تشغيل برنامج آخر ‪.‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫كذلك لتقليل الوقت الضائع في إنزال وإعادة أشرطة‬ ‫المترجمات والتجمي ع أدخلت فكرة حزم العمال‬ ‫وه ي أ ن يت م تشغي ل ك ل مجموع ة أعمال متساوية‬ ‫في وق ت واح د مثل ك ل ال برامج المس تخدمة للغة‬ ‫"القول" يت م تشغيله ا م ع بعضه ا حي ث يتم إنزال‬ ‫مترجم "القول" لكل هذه العمال في وقت واحد‪.‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫وبالمثل برامج فورتران أو برنامج كوبول وبهذا‬ ‫يت م توفي ر وق ت إنزال وإعادة المترج م م ع أي‬ ‫عم ل مفرد‪ .‬هذه الطريق ة بالتأكي د وفرت وقتا‬ ‫كبيرا‪ ،‬ولكنها تتطلب من المشغل أن يكون مراقبا‬ ‫للحاسوب مراقبة لصيقة حتى إذا حدث خطأ في‬ ‫أحد برامج الخدمة‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫يقوم المشغل بتوجيه الحاسوب للنتقال للبرنامج‬ ‫التالي ويظل الحاسوب عاطل خلل تلك الفترة أما‬ ‫إذا غف ل ع ن ذل ك س يظل الحاس وب عاطل حتى‬ ‫ينتب ه (وبهذا يظ ل وقت ا ضائع ا ف ي النتقال من‬ ‫برنام ج إل ي آخ ر داخ ل الحزم ة إذا حدث خطأ‪،‬‬ ‫وهناك حاجة لمراقبة لصيغة من المشغل) ‪.‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫لمعالج ة هذه المشكل ة ت م إدخال فكرة التوالي‬ ‫التلقائي للعمال وهي عبارة عن برنامج صغير‬ ‫يقوم بتعري ف الحاس وب بالعمال‪ ،‬أ و البرامج‬ ‫المطلوبة على التوالي‪ .‬فإذا تم إكمال البرنامج أو‬ ‫حدث ب ه خط أ ينتق ل تلقائي ا لل برنامج التالي دون‬ ‫الحاجة لتدخل المشغل‪،‬‬

‫نظم التشغيل‬

‫‪ /2‬ما قبل نظم‬ ‫التشغيل‬

‫وهذه الفكرة أ و هذا ال برنامج والذي يسمي‬ ‫بالمراقب المقيم ‪ resident monitor‬يعتبر‬ ‫أول خطوة في تصميم برنامج نظام التشغيل ‪.‬‬

‫نظم التشغيل‬

‫‪ /3‬المرقب‬ ‫المقيم‬

‫مثال لوامر برنامج المراقب المقيم ‪:‬‬ ‫تشغيل مترجم فورتران‬

‫‪FTN$‬‬

‫تشغيل لغة التجميع اسمبلي ‪A S M $‬‬ ‫تشغيل برنامج المستخدم‬

‫‪RUM$‬‬

‫نظم التشغيل‬

‫‪ /3‬المرقب‬ ‫المقيم‬

‫وللتفريق بين عمل وآخر لبد أن يكون ‪:‬‬ ‫أول سطر في العمل‬

‫‪JOB $‬‬

‫وآخر سطر في العمل ‪END $‬‬

‫نظم التشغيل‬

‫‪ /3‬المرقب‬ ‫المقيم‬

‫وهذان الس طران يمك ن ع ن طريقهم ا معرفة‬ ‫الزمن الذي استخدم كل عمل ‪ .‬كذلك متاح إضافة‬ ‫أس طر أخري فيه ا مثل اس م العم ل أ و البرنامج‬ ‫المراد تشغيله ورقم المستخدم حتى تحسب جملة‬ ‫الزمن الذي قضاه في كل برمجة لحساب المبلغ‬ ‫المطلوب منه ‪.‬‬

‫نظم التشغيل‬

‫‪ /3‬المرقب‬ ‫المقيم‬

‫نلح ظ م ن الس طر أعله أنه ا تبدأ بعلمة دولر‬ ‫(‪ )$‬وفي بعض الجهزة مثل (‪ ) IBM‬كانت تبدأ‬ ‫بعلم ة (‪ )/‬وهذه العلم ة ضروري ة للتفري ق بين‬ ‫أس طر أوام ر التشغي ل وأس طر البرنامج‬ ‫والمدخلت وعلي ه س يتم تشغي ل العمال على‬ ‫النحو التالي ‪:‬‬

‫نظم التشغيل‬

‫بداية عمل جديد‬ ‫تشغيل مترجم فورتران‬

‫‪ /3‬المرقب‬ ‫المقيم‬

‫‪JOB $‬‬ ‫‪FTN $‬‬

‫البرنامج‬ ‫ترجمة برنامج فورتران إلي لغة الماكينة ‪LOAD $‬‬ ‫تشغيل البرنامج على البيانات ‪RUN $‬‬

‫نظم التشغيل‬

‫‪ /3‬المرقب‬ ‫المقيم‬

‫البيانات‬ ‫نهاية العمل ‪END $‬‬ ‫‪JOB $‬‬ ‫بداية عمل جديد‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫لق د أحدث برنام ج المراق ب المقي م م ع حزمة‬ ‫العمال تطورا ك بيرا ف ي رف ع كفاء ة تشغيل‬ ‫الحاس وب‪ ،‬وق د رأينا أن برنام ج المراق ب المقيم‬ ‫يقوم بتشغي ل العمال داخ ل الحزم ة عمل بعد‬ ‫عمل على التوالي‪،‬‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫ولكن هناك مشكلة إذا كان هناك خطأ في برنامج‬ ‫أحد أعمال الحزمة مثل كتابة أمر غير موجود في‬ ‫لغة البرمجة أو محاولة إدخال بيانات في مواقع‬ ‫غير معرفة في الذاكرة (مثل أن تكون المصفوفة‬ ‫أ معرفة من ‪ 1‬إلي ‪ 25‬ثم محاولة إدخال بيانات‬ ‫في الموقع أ (‪ )26‬أو أ (صفر)‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫ونقول في هذه الحالة أن برنامج المراقب المقيم‬ ‫قد وق ع ف ي مص يدة وس يضطر غل ي مس ح ذلك‬ ‫البرنامج من الذاكرة ثم البدء في العمل التالي ‪.‬‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫كذلك من أخطاء المبرمجين الشائعة الدخول في‬ ‫دوار ل نهائي عند قراءة البيانات ويقوم البرنامج‬ ‫حينئ ذ بع د انتهاء أس طر ال بيانات بمحاول ة قراءة‬ ‫أس طر العم ل التال ي ‪ ،‬لن أم ر القراء ة مستمر‬ ‫بسبب خطأ الدوار اللنهائي ‪،‬‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫ولك ن لن أس طر العم ل التال ي تبدأ بعلمة (‪)$‬‬ ‫وهي علمة أوامر المراقب المقيم سيقوم برنامج‬ ‫المراق ب المقي م بمعامل ة هذه الحال ة معامل ة خطأ‬ ‫في ال برنامج ويقوم تلقائي ا بمس حه من الذاكرة‬ ‫والنتقال إلي العمل التالي في الحزمة ‪.‬‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫إذن ليست هناك مشكلة غذ عمل المبرمجون عبر‬ ‫برنام ج المراق ب المقي م‪ ،‬ولك ن بعضهم ل يلتزم‬ ‫بذلك ‪ ،‬ومن ثم ل يستطيع المراقب المقيم التحكم‬ ‫في أخطائهم مما ينتج عنه دخول الحاسوب في‬ ‫دوار مما يضطر ليقافه لمعالجة هذه المشكلة‪.‬‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫ثم إضافة ثنائية في جهاز الحاسوب (الهاردوير)‬ ‫لتفري ق بي ن أوام ر المس تخدم وأوام ر المراقب‬ ‫حي ث ل يقب ل الحاس وب أس طر المراق ب المقيم‬ ‫كمدخلت في برنامج المستخدم على الطلق ‪.‬‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫إذن تمكين الحاسوب منذ البداية من التفريق بين‬ ‫حال ة المس تخدم (‪ )USER MODE‬وحالة‬ ‫المراقب أو المشرف (‪)Mode supervisor‬‬ ‫يؤدي إل ي عدم قبول أوام ر برنام ج للمراقب‬ ‫المقيم كمدخلت في البرنامج‬

‫نظم التشغيل‬

‫‪ /4‬المراقب‬ ‫والمستخدم‬

‫ومن ثم يتم تنفيذ تلك الوامر التي تقوم بالتحكم‬ ‫في أخطاء الم برمجين وإلغاء برامجه م من‬ ‫الذاكرة والنتقال للعمال التالية ‪.‬‬

‫نظم التشغيل‬

‫‪ /5‬نداءات النظام‬

‫م ا دام م ن غي ر المس موح للم برمج التعام ل مع‬ ‫أجهزة الدخال والخراج إل عبر المشرف – فإن‬ ‫أجهزت الحاس وب الحديث ة جعل ت هناك أوامر‬ ‫تس مي نداءات المراق ب أ و المشرف أو نداءات‬ ‫النظام يمك ن ل برنامج المس تخدم استدعاءها إذا‬ ‫رغ ب المس تخدم ف ي العام ل م ع أ ي جهاز من‬ ‫أجهزة الدخال أو الخراج ‪.‬‬

‫نظم التشغيل‬

‫‪ /5‬نداءات النظام‬

‫عندما يصل النداء أو المر إلي البرنامج المراقب‬ ‫أو المشرف فإنه يقوم بتنفيذ النداء ‪ .‬بهذا يكون‬ ‫ال برنامج المشرف ه و الذي يقوم نياب ة عن‬ ‫برنامج المستخدم عن طريق نداءات النظام بتنفيذ‬ ‫كل أوامر المستخدم المتعلقة بالتعامل مع أجهزة‬ ‫الدخال والخراج‬

‫نظم التشغيل‬

‫‪ /5‬نداءات النظام‬

‫وبهذا يكون البرنامج المراقب أو نظام التشغيل له‬ ‫التحك م التام ف ي نظام الحاس وب فالمستخدم ل‬ ‫يستطيع مباشرة التعامل مع الحاسوب لتنفيذ أي‬ ‫عمل يجب أن يتم عبر نظام التشغيل المشرف ‪.‬‬

‫نظم التشغيل‬

‫‪ /5‬نداءات النظام‬

‫فنظام التشغي ل المشرف يتأك د أول م ن أ ن عمل‬ ‫المس تخدم المراد تنفيذه مس موح ب ه ومقبول من‬ ‫ذلك المستخدم ثم بعد ذلك يقوم بتنفيذ العمل نيابة‬ ‫عن المس تخدم ث م يعي د للمس تخدم التحكم مرة‬ ‫أخري فيما يليه من أوامر ‪.‬‬

‫نظم التشغيل‬

‫‪ /5‬نداءات النظام‬

‫لبد أن نلحظ أن هناك أوامر أخري غير التحكم‬ ‫في الدخال والخراج ل يمك ن أ ن يسمح‬ ‫للمس تخدم بتنفيذه ا مث ل أم ر إيقاف الحاسوب‬ ‫(‪)HALT‬‬

‫نظم التشغيل‬

‫‪ /5‬نداءات النظام‬

‫وأم ر التحول م ن حال ة المس تخدم إل ي حالة‬ ‫المشرف أ و الدخول ف ي منطق ة الذاكرة الخاصة‬ ‫بال برنامج المشرف (أو نظام التشغيل)‬ ‫‪. memory protection‬‬

‫نظم التشغيل‬

‫‪ /6‬ساعة الحاسوب‬ ‫(‪)Tuner‬‬

‫لق د ت م تص ميم س اعة الحاس وب لمن ع برنامج‬ ‫المستخدم من الدخول في دوار ل نهائي وامتداد‬ ‫سيطرة البرنامج المشرف ‪.‬‬

‫نظم التشغيل‬

‫‪ /6‬ساعة الحاسوب‬ ‫(‪)Tuner‬‬

‫حي ث تقوم س اعة الحاس وب ع بر نظام التشغيل‬ ‫بإيقاف البرنامج إذا تجاوز فترة معينة مثل ‪60/1‬‬ ‫ثاني ة ث م بع د ذل ك يقرر ال برنامج المشرف إما‬ ‫إعطاء برنام ج المس تخدم زمن ا إضافي ا أ و إعادته‬ ‫له برسالة (خطأ فادح) (‪.)fatal error‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫إ ن سرعة أجهزة الدخال والخراج ل تقارن‬ ‫بس رعة ولهذا ربم ا يظ ل الحاس وب عاطل بعض‬ ‫الوق ت ف ي انتظار المدخلت من أجهزة الدخال‬ ‫وف ي انتظار إخراج ال بيانات بواسطة أجهزة‬ ‫الخراج ‪.‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫إ ن فكرة الترجم ة تهدف إل ي الس تفادة القصوى‬ ‫من وق ت الحاسوب وأجهزة الدخال والخراج‬ ‫وذلك بحجز موقع في الذاكرة للسجلت التي تتم‬ ‫قراءتها في انتظار المعالجة وتعرف هذه المواقع‬ ‫بمواقع الرجاء (‪)buffers‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫وبهذا يمك ن لجهاز الدخال قراء ة عدة سجلت‬ ‫ووضعه ا ف ي مواق ع إرجاء المدخلت قب ل أ ن تدخل‬ ‫للمعالجة في وحدة المعالجة المركزية كما يمكن بعد‬ ‫إنها وحدة المعالجة المركزية من معالجة السجلت‬ ‫ثم إرسالها مباشرة إلي مواقع إرجاء المخرجات بدلً‬ ‫من انتظار وحدة الخراج لخراج تلك السجلت‪.‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫ولك ن إذا كان ت س رعة الحاس وب كبيرة جدًا‬ ‫مقارنة بس رعة جهاز الدخال فإ ن مواقع إرجاء‬ ‫المدخلت س تكون دائم ا فارغ ة وم ن ث م ليست‬ ‫ذات جدوي وكذل ك إذا كان ت س رعة الحاسوب‬ ‫كبيرة جدا مقارنة بسرعة جهاز الخراج‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫فإ ن مواق ع إرجاء المخرجات س تكون ممتلئة‬ ‫وس يضطر الحاس وب للنتظار عاطل حتى تفرغ‬ ‫تلك المواقع‪ .‬إذن فكرة الدخال لن تكون مفيدة إل‬ ‫إذا كانت سرعة أجهزة الدخال والخراج مقاربة‬ ‫لسرعة الحاسوب في التعامل مع السجلت ‪.‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫ولما كانت سرعة الحاسوب عادة أكبر من سرعة‬ ‫أجهزة الدخال والخراج ل بس رعة الحاسوب‬ ‫ولك ن ف ي بع ض الحيان ربما تكون عمليات‬ ‫الحوسبة المطلوبة على السجلت عالية جدا وفي‬ ‫هذه الحال ة س تكون مواقع إرجاء المدخلت‬ ‫ممتلئة‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫ومواقع إرجاء المخرجات خالية بسبب الحوسبة‬ ‫العالي ة المطلوب ة م ن وحدة المعالج ة المركزية ‪.‬‬ ‫بهذا يمك ن القول إ ن فكرة الرجاء أ و الترجئة‬ ‫يمكن أن تعالج بعض المشكلة ولكن لن تعالج كل‬ ‫المشكل ة بس بب الفوارق العالي ة بي ن سرعة‬ ‫الحاس وب وسرعة أجهزة الدخال والخراج‬ ‫وبسبب نوع الحوسبة المعقدة المطلوبة أحيانا ‪.‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫لمعالج ة مشكل ة الفوارق العالي ة بي ن سرعة‬ ‫الحاسوب وأجهزة الدخال والخراج يتم استخدام‬ ‫وسائط تخزينية أعلى سرعة مثل الشريط وتخزين‬ ‫البيانات عليه بعد إدخالها بواسطة جهاز الدخال‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫ث م يقوم الحاس وب بالتعام ل م ع الس جلت في‬ ‫الشريط ومعالجتها ثم يقوم بإخراج البيانات على‬ ‫الشريط قبل إخراجها بواسطة جهاز الخراج وهذه‬ ‫‪off-line‬‬ ‫تعرف بالمعاملة غير النية‬ ‫‪( operation‬موضحة في الشكال التالية) ‪.‬‬

‫وحدة المعالجة المركزية‬ ‫الماملة النية‬ ‫مع مواقع الرجاء‬

‫الطابعة‬

‫إرجاء المخرجات‬

‫إرجاء المدخلت‬

‫وحدة الدخال‬

‫وحدة المعالجة المركزية‬

‫الطابعة‬

‫الشريط‬

‫الشريط‬

‫وحدة الدخال‬

‫المعاملة غير النية باستخدام الشريط‬ ‫القرص‬

‫الطابعة‬

‫وحدة إدخال‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫لقد تم تحسين فكرة المعاملة غير النية باستخدام‬ ‫القراص‪ ،‬والقراص بالطب ع له ا ميزاته ا على‬ ‫الشرطة في أنها ل تشترط التعامل المثالي ‪ .‬مثل‬ ‫ل يمك ن عل ى الشري ط الكتاب ة والقراء ة ف ي وقت‬ ‫واحدة فل يمك ن أ ن يت م إدخال ال بيانات عليه‬ ‫بواسطة وحدة إدخال‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫وف ي نف س الوق ت قراء ة ال بيانات من ه بواسطة‬ ‫الحاس وب أ و وحدة المعالج ة المركزية لتفوم‬ ‫بمعالجته ا ‪ ،‬ولك ن القرص يعال ج هذه المشكلة‬ ‫حيث يمك ن الكتابة عليه والقراءة منه آنيا حيث‬ ‫يقوم نظام التشغي ل بوض ع مدخلت ك ل عم ل في‬ ‫جدول على التوالي الول فأول ‪،‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫ويقوم الحاسوب بقراءة تلك المدخلت حسب طلب‬ ‫ال برنامج ‪ ،‬ث م يقوم بنق ل المخرجات إل ي مساحة‬ ‫إرجاء المخرجات ليت م كتابته ا عل ى القرص لتتم‬ ‫طباعتها على التوالي الول فالول ‪ .‬هذه الطريقة‬ ‫تسمي المعاملة النية المشتركة (‪. )spooling‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫في الواقع إن المعاملة النية المشتركة هي نفس‬ ‫فكرة الترجم ة م ع اس تخدام القرص بدل عن‬ ‫الذاكرة مما يمكن من تخزين الملفات بعد إدخالها‬ ‫في انتظار المعالج ة أ و تخزي ن الملفات بعد‬ ‫المعالج ة ف ي انتظار لخراج وبهذا ل ن ينتظر‬ ‫الحاس وب عاطل لدخال مدخلت أو عاطل‬ ‫لخراج مخرجات ‪.‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫وهنا يمكن إدخال مدخلت عمل وإخراج مخرجات‬ ‫عمل آخر أو معالجة عمل آخر في نفس الوقت‪.‬‬ ‫أم ا ف ي حال ة الترجئ ة فل يت م إرجاء مدخلت أو‬ ‫معالج ة برنام ج أ و إرجاء مخرجات إل لنفس‬ ‫العمل إذ ل يمكن تجاوز عمل إلي عمل آخر في‬ ‫الدخال أو المعالجة أو الخراج ‪.‬‬

‫نظم التشغيل‬

‫‪ /7‬الترجمة (‪)Buffering‬‬

‫كذل ك م ن المميزات الهام ة للمعامل ة النية‬ ‫المشترك ة ه و أن ه بإمكان نظام التشغيل إعطاء‬ ‫أولوي ة لبع ض العمال عل ى الخرى في الدخال‬ ‫أو المعالجة أو الخراج ‪.‬‬

‫نظم التشغيل‬

‫‪ /8‬البرمجة المشتركة‬ ‫( ‪) Multi Programming‬‬

‫تعمل البرمجة المشتركة على تقليل الوقت الضائع‬ ‫من الحاس وب‪ ،‬فإذا كان الحاس وب يقوم بمعالجة‬ ‫برنامج عمل معين‪ ،‬وهناك بيانات طلبها البرنامج‬ ‫ول زال ت وحدة الدخال تعم ل عل ى إدخال تلك‬ ‫ال بيانات فإ ن الحاس وب س يظل متعطل في انتظار‬ ‫تلك البيانات إذا كان بطريقة البرمجة المفردة‪،‬‬

‫نظم التشغيل‬

‫‪ /8‬البرمجة المشتركة‬ ‫( ‪) Multi Programming‬‬

‫أما إذا كان يعمل بطريقة البرمجة المشتركة فإن‬ ‫هناك عدة برام ج بالذاكرة ف ي انتظار المعالجة‬ ‫بالحاسوب‪ .‬ومن ثم لن ينتظر الحاسوب عاطل بل‬ ‫سينقل فورا إل ي ال برامج التال ي ويقوم بمعالجته‬ ‫أما ذلك البرنامج الذي لم تكتمل مدخلته فسيعود‬ ‫إلي آخر الصف بالذاكرة وينتظر دوره ‪،‬‬

‫نظم التشغيل‬

‫‪ /8‬البرمجة المشتركة‬ ‫( ‪) Multi Programming‬‬

‫فإذا جاء دوره وقد اكتملت بياناته ستتم معالجته‬ ‫وإذا ل م تكتم ل بيانات ه س تتم معالجت ه حت ى لحظة‬ ‫الحاجة لمزيد من البيانات وإبقائه عند ذلك الحد‬ ‫ثم النتقال للبرنامج التالي ‪.‬‬

‫نظم التشغيل‬

‫‪ /8‬البرمجة المشتركة‬ ‫( ‪) Multi Programming‬‬

‫تعت بر البرمج ة المشترك ة م ن أه م ميزات نظم‬ ‫التشغي ل الحديث ة وق د ت م تطويره ا لعطاء خدمة‬ ‫مريح ة للمس تخدم واس تخدام أمثل لمكانات‬ ‫الحاسوب ومن تلك التطورات الخدمة الدورية وهي‬ ‫أنه إذا تجاوز أي برنامج زمن معين فإن الحاسوب‬ ‫يوق ف معالجت ه ويبدأ ف ي معالج ة ال برنامج التالي‬ ‫ويعود ذلك البرنامج إلي آخر الصف ‪.‬‬

‫نظم التشغيل‬

‫‪ /8‬البرمجة المشتركة‬ ‫( ‪) Multi Programming‬‬

‫إ ن هذه الطريق ة تضم ن إنهاء العمال القصيرة‬ ‫فورا وعدم تعطيله ا بس بب العمال الطويلة‪ .‬كما‬ ‫أنها تتجاوز تلقائيا أخطاء البرامج فإذا كان هناك‬ ‫برنامجا به خطأ أدي إي دوار غير نهائي فإنه لن‬ ‫يؤثر في العمال الخري أو يؤدي إلي تأخرها‪،‬‬

‫نظم التشغيل‬

‫‪ /8‬البرمجة المشتركة‬ ‫( ‪) Multi Programming‬‬

‫إذ أنه بعد مضي بعض الوقت سيضطر الحاسوب‬ ‫إل ي إيقاف ذل ك العم ل وعم ل رس الة للمبرمج‬ ‫مفادها بأن هناك خطأ فادحا في ذلك البرنامج ‪.‬‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)‬ ‫المعالج ة‬ ‫العمال أ و‬

‫الخدمية‬ ‫لق د أت ت فكرة حزم ة‬ ‫لمعالج ة مشكل ة إدخال وإخراج ال برامج المساعدة‬ ‫والمترجمات الت ي يس تخدمها الم برمجون‪ ،‬حي ث يتم‬ ‫إدخال أعمال المبرمجين التي تستخدم نفس المترجمات‬ ‫أو البرامج المساعدة في شكل حزمة مع بعضها حتى‬ ‫يت م توفي ر وق ت إنزال وإعادة المترجمات والبرامج‬ ‫المساعدة من الشريط مع كل برنامج على حده ‪.‬‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)‬ ‫أصبح‬ ‫القراص‬

‫بالمكان‬ ‫ولك ن بع د تطور تقني ة‬ ‫إنزال وإعادة أي مترجم أو برنامج مساعد يحتاج‬ ‫إلي ه المس تخدم عل ى الفور م ن وإل ي القرص‪.‬‬ ‫فإنزال ال بيانات م ن القرص أ و إعادته ا إلي‬ ‫القرص ل يتم كما يحدث في الشريط بقراءة كل‬ ‫بيانات الشريط على التوالي‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك) المطلوب ة‬ ‫ال بيانات‬

‫ثم‬ ‫حت ى يت م الحص ول عل ى‬ ‫تحوي ل الشري ط م ن حال ة القراء ة إل ي حالة‬ ‫التخزي ن ليت م إعادة تل ك ال بيانات إل ي الشريط‬ ‫وإنم ا يت م ذل ك مباشرة بواس طة المؤش ر الرأسي‬ ‫للقرص الذي يقفز مباشرة إلي موقع البيانات أو‬ ‫البرنامج المساعد أو المترجم المطلوب‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)‬

‫لتتم قراءته بواسطة الحاسوب كما يقفز مباشرة‬ ‫إلي المواقع الخالية ليتم تخزين البيانات المطلوب‬ ‫تخزينها ‪.‬‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)الحزمي ة‬ ‫للمعالج ة‬

‫حيث‬ ‫بهذا ل م تع د هناك حاج ة‬ ‫أصبح كل مستخدم يتعامل مباشرة مع الحاسوب‬ ‫مس تخدما لوحة المفاتيح لدخال البرامج وإدخال‬ ‫ال بيانات والشاش ة لس تقبال رس ائل الحاسوب‬ ‫والمخرجات أو القرص لتخزين البرامج والبيانات‬ ‫واستدعاء البرامج المساعدة والترجمات وغيرها‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)‬

‫كم ا يمك ن للمس تخدم ع ن طري ق لوح ة المفاتيح‬ ‫إعطاء الحاسوب أوامر متاحة من نظام التشغيل‬ ‫تمكن ه م ن التعام ل مع أجهزة الدخال والخراج‬ ‫الخرى كالماس حة والطابع ة والراسمة والنواع‬ ‫المختلفة من القراص والشرطة ‪.‬‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)‬

‫هذه الطريق ة تعرف بنظام التخاط ب المباشر‬ ‫(‪[ ) Interactive system‬لك ن تظل هناك‬ ‫حاجة للمعالجة الحزمية في حالة العمال الكبيرة‬ ‫الت ي تحتاج لزم ن طوي ل لمعالجته ا بواسطة‬ ‫الحاسوب ول توجد حاجة للمستخدم على الشاشة‬ ‫لمراقبتها او للتخاطب مع الحاسوب بشأنها‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)‬ ‫حزمة‬ ‫شكل‬

‫ثم الذهاب‬ ‫فبإمكانه إرسال العمل في‬ ‫لقضاء أعمال أخري إل ي حي ن إنهاء الحاسوب‬ ‫لذلك العمل ‪ ،‬لكن الواقع أنه ل توجد حزمة ‪ ،‬إنما‬ ‫هنالك عمل واحد فقط يخص المستخدم كما أنه ل‬ ‫توجد ضرورة لوضع العمال في شكل حزمة مع‬ ‫وجود القرص كما أوضحنا سابقا] ‪.‬‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫البرمج ة‬ ‫بي ن‬ ‫المشترك)‬

‫المشتركة‬ ‫لهذا جاء ت فكرة الجم ع‬ ‫والتخاط ب المباش ر م ع الحاس وب حي ث يقوم كل‬ ‫مس تخدم بإرس ال عمل ه ويقوم الحاس وب بترتيب‬ ‫هذه العمال عل ى التوال ي الول فالول ولكنه ل‬ ‫يعط ي أ ي عم ل الزم ن الكاف ي الذي ينهي ه وإنما‬ ‫يعطي ه زم ن ثاب ت مثل ‪ 60/1‬ثاني ة فإذا ل م ينتهي‬ ‫ذلك العمل يعود وينتظر في آخر الصف وهكذا ‪.‬‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)‬

‫بهذا يتم إنهاء العمال القصيرة فورا ويتم تأخير‬ ‫العمال الك بيرة فالذي ن له م أعمال صغيرة‬ ‫ينتظرون عل ى الشاش ة لمتابع ة أعماله م والذين‬ ‫له م أعمال ك بيرة يمكنه م بع د إرس الها الذاهب‬ ‫لقضاء بعض العمال والعودة مرة أخري ‪.‬‬

‫التشغيل‬ ‫نظم‬ ‫‪ /9‬اشتراك وقت‬ ‫الحاسوب‬ ‫(الستخدام‬ ‫المشترك)‬

‫هذه الفكرة في نظم التشغيل تعرف باشتراك وقت‬ ‫الحاسوب‪ .‬وطريقة الخدمة التي يقدمها الحاسوب‬ ‫في نظام اشتراك وق ت الحاس وب تعرف بالخدمة‬ ‫الدورية ‪.‬‬

‫نظم التشغيل‬

‫‪ /10‬النظمة اللحظية‬ ‫( ‪)Real-time systems‬‬

‫نعن ى بنظام ال بيانات اللحظي ة ه و تحكم نظام‬ ‫التشغي ل ف ي وحدة إدخال بيانات خاص ة بتطبيقات‬ ‫معين ة مث ل الحس ابات المس تخدمة في الجهزة‬ ‫الطبية أو الحساسات المستخدمة في قراءة البيانات‬ ‫البيئي ة أ و حس اسات التص نت أ و الحساسات‬ ‫المس تخدمة ف ي الص ناعات أ و المس تخدمة في‬ ‫التجارب العملية وغيرها ‪.‬‬

‫نظم التشغيل‬

‫‪ /10‬النظمة اللحظية‬ ‫( ‪)Real-time systems‬‬

‫ث م يقوم الحاس وب بتحلي ل تل ك ال بيانات ث م قد‬ ‫يوج ه بضب ط التحط م وطل ب قراء ة جديدة من‬ ‫الحس اسة أ و عم ل المعالجات عل ى تل ك البيانات‬ ‫وإعطاء المخرجات المطلوبة على الفور ‪.‬‬

‫نظم التشغيل‬

‫‪ /10‬النظمة اللحظية‬ ‫( ‪)Real-time systems‬‬

‫إذن أنظم ة ال بيانات اللحظي ة تختل ف م ن أنظمة‬ ‫اشتراك وق ت الحاس وب والتعام ل اللحظ ي مع‬ ‫البيانات وإذا لم يتم خلل وقت محدد سيودي ذلك‬ ‫إلي فشل النظام‪ .‬وعليه فل مجال لنتظار العمال‬ ‫في صف المعالجة كما هو الحال في اشتراك وقت‬ ‫الحاسوب ‪.‬‬

‫نظم التشغيل‬

‫‪ /11‬تطور أنظمة‬ ‫التشغيل‬

‫‪ /1‬نظام المعالجة الحزمية‬ ‫الطابعة‬

‫وحدة المعالجة‬ ‫المركزية‬

‫نظم التشغيل‬

‫‪ /11‬تطور أنظمة‬ ‫التشغيل‬

‫‪ /2‬نظام التخاطب المباشر مع الحاسوب‬ ‫الشاشة‬

‫نظم التشغيل‬

‫‪ /11‬تطور أنظمة‬ ‫التشغيل‬

‫‪ /3‬نظام اشتراك الزمن‬ ‫شاشة‬

‫شاشة‬

‫شاشة‬

‫وحدة المعالجة‬ ‫المركزية‬

‫نظم التشغيل‬

‫‪ /11‬تطور أنظمة‬ ‫التشغيل‬

‫‪ /4‬النظام اللحظي‬ ‫تحكم‬

‫وحدة المعالجة‬ ‫المركزية‬

‫حساسة‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫بدلً م ن اس تعمال وحدة معالج ة مركزية واحدة‬ ‫جاءت فكرة أن تكون هناك وحدة معالجة مركزية‬ ‫رئيس ة ومعالجات أخري مس اعدة له ا تعنى‬ ‫بأعمال محددة مثلً أن تكون هناك وحدة معالجة‬ ‫مركزي ة مس اعدة متفرغ ة للتعام ل مع وحدات‬ ‫الدخال والخراج‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫ووحدة معالج ة مركزي ة أخري متفرغ ة للتعامل‬ ‫مع شبكات التص ال وتظ ل وحدة المعالجة‬ ‫المركزي ة الرئيس ة متفرغ ة لمعالج ة البرمجيات‬ ‫وتنفي ذ العمال‪ .‬هذه الفكرة تحف ظ زم ن المعالج‬ ‫الضائع في التنقل بين وحدات الدخال والخراج‬ ‫والتصال والمعالجة ‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫نخل ص م ن س رد هذا التطور التاريخ ي في بناء‬ ‫نظ م التشغي ل أ ن ذل ك ت م لتحقي ق أهداف نظم‬ ‫التشغي ل ف ي الس تفادة القص وى من إمكانات‬ ‫الحاس وب وإعطاء الخدم ة الممتازة للمستخدم‬ ‫سواء أكان ذل ك في تس هيل عملي ة الس تخدام أم‬ ‫في إنهاء الخدمة في أقل وقت ممكن ‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫لق د ت م ذل ك أولً باس تخدام فن ي تشغي ل مدربين‬ ‫عل ى إنزال وإخراج الشرط ة الممغنطة ليقوموا‬ ‫بهذا العم ل ف ي أق ل وق ت وليحفظوا وقت‬ ‫الم برمجين للبرمج ة بدلً من هذه العمال‬ ‫اليدوية‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫ثم تل ذلك فكرة حزم العمال حيث يقوم المشغل‬ ‫بوض ع العمال المتشابه ة ف ي شكل مجموعات‬ ‫ويت م تنفيذه ا مجموع ة تل و الخرى ويقوم فني‬ ‫التشغي ل بإدخال أعمال الم برمجين داخل‬ ‫المجموعة يدويا ‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫تل ذل ك أ ن يت م إدخال ك ل أعمال الم برمجين في‬ ‫المجموع ة الواحدة مرة واحدة‪ ،‬وهناك أوامر‬ ‫تقوم بالفص ل بي ن عم ل وآخر وتحدد المترجمات‬ ‫المطلوبة لي عمل‪ ،‬ومن ثم يتم تنفيذ كل العمال‬ ‫داخ ل المجموع ة تلقائي ا دون الحاج ة لفني‬ ‫التشغيل وهذه كانت بداية فكرة نظام التشغيل ‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫وق د س مي ال برنامج المحتوي لهذه الوامر‬ ‫بالمراق ب المقي م ‪ .‬ثم طورت هذه الفكرة في‬ ‫صناعة الحواسيب حيث صممت ثنائية تصل بين‬ ‫أوامر المبرمج أو المستخدم وأوامر المشرف أو‬ ‫المراقب‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫وذل ك لتجاوز أخطاء الم برمجين وتدخله م في‬ ‫أعمال المشرف أو ضبطهم في التعامل مع أجهزة‬ ‫الدخال والخراج وتجاوز صلحياتهم في التعامل‬ ‫مع الذاكرة ووحدة المعالجة المركزية‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫بعد ذلك تمت إضافة ساعة الحاسوب عند صناعة‬ ‫الحاس وب لمن ع خط أ الدوار اللنهائي الذي يحدث‬ ‫عادة مع المبرمجين‪ .‬ثم تم إضافة حالتي المستخدم‬ ‫والمشرف وتحدي د الص لحيات وحماية الذاكرة‪.‬‬ ‫وبتص ميم الس اعة بدأ تص ميم نظام التشغيل‬ ‫بمفهومه الحديث ‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫فأدخلت فواصل الترجئة لتقليل الزمن الضائع من‬ ‫وحدة المعالج ة المركزية ‪ .‬ثم أدخلت فكرة‬ ‫المعامل ة غي ر الني ة بإدخال الشرط ة كوسائط‬ ‫بي ن وحدات إدخال والخراج وبين المعالجات‬ ‫المركزية ‪،‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫وأخيرا بعد تطور تقنية الشراف ثم إدخال فكرة‬ ‫المعامل ة الني ة المشترك ة لم ا ف ي الشراف من‬ ‫ميزة التعامل المباشر ‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫لقد تم تطوير فكرة المعاملة النية المشتركة إلي‬ ‫البرمجة المشتركة حيث أصبح الحاسوب يحتفظ‬ ‫بعدة برام ج ف ي الذاكرة ف ي وق ت واح د ويعالج‬ ‫على التوالي ‪.‬‬

‫نظم التشغيل‬

‫‪ /12‬أنظمة المعالجات المشتركة‬ ‫(‪)Multiprocessing systems‬‬

‫الخلصة ‪:‬‬ ‫وأخيرا فكرة البرمج ة المشترك ة إل ي الستخدام‬ ‫المشترك الذي يمك ن مئات المس تخدمين من‬ ‫التخاط ب م ع الحاس وب ومعالج ة برامجه م في‬ ‫وقت واحد‪.‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫لن يونيك س يمث ل الس اس لك ل أنظم ة التشغيل‬ ‫الحديث ة فلب د م ن أعطاء بع ض الوام ر الهامة‬ ‫المستخدمة في هذا النظام ‪ .‬في البداية يجب أن‬ ‫يدخل اسمه وكلمة سره البتدائية للمشرف على‬ ‫النظام لنه عندما يريد استخدام النظام بالمر ‪:‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫* أدخل اسمك المعرف لدي المشرف ‪Login :Ali‬‬ ‫بع د الضغ ط عل ى مفتاح "أدخ ل " سوف يظه ر لك‬ ‫المر ‪:‬‬ ‫* أدخل كلمة السر‪Password :Sudani‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫أذا أخطأت في الس م س تظهر لك رس الة توضح‬ ‫بأن هذا المستخدم غير معروف ‪ ،‬وعليك إعادة‬ ‫كتاب ة الس م أم ا إذا أخطأ ت ف ي كلم ة السر‬ ‫فسيظهر لك خطأ ويطلب منك إدخال كلمة السر‬ ‫مرة أخري ‪.‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫وإذا كان الس م ص حيحاً وكلم ة الس ر صحيحة‬ ‫سوف تظه ر ل ك رس الة ترحي ب ويكون الحاسوب‬ ‫في انتظار أوامرك وإذا كتبت أي أمر غير معروف‬ ‫مثل "‪ "eat foot‬سيرد عليك الحاسوب ‪:‬‬ ‫هذا المر غير موجود‬

‫‪eat : command not found‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫فيما يلي سنسرد بعض الوامر الهامة في يونيكس‪:‬‬ ‫المر ‪: pwd‬‬ ‫يظه ر الدلي ل الحال ي ويس تفاد من ه ف ي تحديد‬ ‫موقعك قبل قيامك بأي عمل في الدليل الحالي‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: pwd‬‬ ‫‪$ pwd‬‬ ‫‪$ /home/ ali‬‬ ‫هذا يعنى أن الدليل الحالي هو ‪home / ali/‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:passwd‬‬ ‫لتغير كلمة السر (يوصي بأن يغير المستخدم كلمة‬ ‫السر حتى ل تتسرب) ويتم ذلك بالمر ‪.‬‬ ‫‪$ passwd‬‬ ‫‪Changing password for ali‬‬ ‫‪Old password :‬‬ ‫‪New password :‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫س يرد ل ك الحاس وب إدخال كلم ة الس ر القديمة‬ ‫حتى يتأكد أنك نفس الشخص المخول له تغيير‬ ‫كلمة السر بعد إدخال الكلمة القديمة والتأكد منها‬ ‫يطل ب من ك الحاس وب إدخال كلم ة السر الجديدة‬ ‫وتص بح هذه ه ي كلم ة الس ر الت ي تمكن ك من‬ ‫دخول الحاسوب ‪.‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:mkdir‬‬ ‫لنشاء الدلة الفرعية في الدليل الحالي بعد أن‬ ‫أمنت نفسك يمكنك الن تنظيم بياناتك ويتم ذلك‬ ‫بجع ل ك ل الملفات الت ي له ا علق ة م ع بعضها‬ ‫البعض تكون في دليل واحد خاص بها ‪.‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:mkdir‬‬ ‫مثل ملفات قس م الحاس وب تكون ف ي دليل‬ ‫الحاس وب "‪ "computer‬يت م تكوي ن ذلك‬ ‫الدليل على النحو التالي ‪:‬‬ ‫‪$mkdir computer‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:cd‬‬ ‫للتنقل بين أدلة النظام‪ ،‬فإذا أردنا النتقال من الدليل‬ ‫الحال ي وه و"‪ "ali‬إل ي الدلي ل الحاسوب‬ ‫"‪ "computer‬فإن ذلك يتم بالمر ‪:‬‬ ‫‪$ cd computer‬‬ ‫‪$ pwd‬‬ ‫‪$ /home/ali/computer‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:cd‬‬ ‫أ ي أ ن أوامرن ا أص بحت الن ف ي الدلي ل الفرعي‬ ‫"‪ "computer‬وإذا أردنا العةدة مرة أخري إلي‬ ‫الدليل "‪ "ali‬فإننا نكتب المر‬ ‫‪$ cd ..‬‬ ‫‪$ pwd‬‬ ‫‪$ /home/ali‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫إذا عملنا دليل آخر للرياضيات يسمي "‪"math‬‬

‫‪$mkdir math‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: ls‬‬ ‫لمعرف ة ك ل الملفات والدل ة الموجودة ف ي الدليل‬ ‫الحالي‪ $‬وهو ‪ ali‬فإن ذلك يتم بالمر‪:‬‬ ‫‪ls‬‬ ‫‪.‬‬ ‫‪..‬‬

‫‪Computer‬‬ ‫‪math‬‬ ‫‪$‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:cp‬‬ ‫يستخدم لنسخ ملف في ملف آخر أو إلي دليل آخر‪.‬‬ ‫إذا كان هناك ملف في الدليل الحالي يسمي ‪file1‬‬ ‫ونري د نس خه ف ي المل ف ‪ file2‬فيت م ذل ك بالمر‬ ‫التالي‬

‫‪$ cp file1 file2‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:cp‬‬ ‫أم ا إذا أردن ا نس خه ف ي الدلي ل الفرعي‬ ‫‪ computer‬فيتم كالتي‪:‬‬

‫‪$ cp file1 computer‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:cp‬‬ ‫أما إذا كان الملف غير موجود فإنك ستحصل على‬ ‫رسالة خطأ بالشكل‬

‫‪$ cp file3 file2‬‬ ‫‪cp: cannot access file3‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: mv‬‬ ‫يقوم هذا المر بنقل أو إعادة تسمية الملفات والدلة‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: mv‬‬ ‫معلومة ‪:‬‬

‫عملي ة النق ل تختل ف ع ن عملي ة النس خ‪ ،‬لن‬ ‫النسخ يبقي الملف الصلي كما هو وينشئ ملفا‬ ‫آخ ر مماث ل ل ه بينم ا النق ل ينشئ ملفاً آخرا‬ ‫ويلغي الصلي ‪.‬‬

‫نظم التشغيل‬

‫ نظام التشغيل‬/13 ‫يونيكس‬

$ ls file1 file2 $ mv file1 file4 $ ls file4 file2

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: rm‬‬ ‫يقوم هذا المر بحذف الملفات‬

‫‪$ ls‬‬ ‫‪file4‬‬ ‫‪file2‬‬ ‫‪$ rm file4‬‬ ‫‪$ ls‬‬ ‫‪file2‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: rmdir‬‬ ‫يقوم هذا الم ر بحذف الدل ة بشرط أن تكون هذه‬ ‫الدلة فارغة‬

‫نظم التشغيل‬

‫ نظام التشغيل‬/13 ‫يونيكس‬

$ rmdir computer rmdir : computer not empty $ cd computer $ rm file1 $ cd .. $ rmdir computer

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: more‬‬ ‫يقوم هذا الم ر بعرض مل ف نص ي عل ى الشاشة‬ ‫بشكل صفحات متتالية يتم التوافق فيما بينها وهذ‬ ‫الم ر يشب ه الم ر ‪ cat‬مع اختلف ف ي التوقف‬ ‫بين الصفحات ‪.‬‬

‫‪$ more file2‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: clear‬‬ ‫يقوم هذا الم ر بمس ح الشاش ة وإظهاره ا خالية‬ ‫مع وض ع المؤش ر وإشارة النظام ف ي الزاوية‬ ‫العليا اليسارية للشاشة ‪.‬‬ ‫‪$ clear‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: exit‬‬ ‫يستخدم هذا المر إنهاء عمل إجراء ما والخروج‬ ‫من مستوي إلي مستوي أعلى منه ‪.‬‬ ‫‪$ exit‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: factor‬‬ ‫يقوم هذا الم ر بإيجاد العوام ل الولية للعداد‬ ‫الصحيحة الموجبة‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫‪$ factor‬‬ ‫‪150‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪5‬‬

‫‪$ factor‬‬ ‫‪72‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: rev‬‬ ‫يقوم هذا الم ر بعك س ترتي ب الحروف ف ي كل‬ ‫سطر م ن مل ف م ا فمثلً إذا كان الملف ‪file2‬‬ ‫يحتوي على العبارة التالية ‪:‬‬ ‫”‪”programming in logic‬‬

‫نظم التشغيل‬

‫ نظام التشغيل‬/13 ‫يونيكس‬

: rev ‫المر‬ ‫يقوم هذا المر بعكس العبارة لتصبح‬ ”Cigol ni gnimmargorp” $ cat file2 programming in logic $ rev file2 Cigol ni gnimmargorp

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: cal‬‬ ‫يستخدم هذا المر لظهار التقويم الميلدي‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: cal‬‬

‫‪$ cal 3 2002‬‬ ‫‪March 2002‬‬ ‫‪Th‬‬ ‫‪F‬‬ ‫‪S‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪7‬‬ ‫‪8‬‬ ‫‪9‬‬ ‫‪14‬‬ ‫‪15‬‬ ‫‪16‬‬ ‫‪21‬‬ ‫‪22‬‬ ‫‪23‬‬ ‫‪28‬‬ ‫‪29‬‬ ‫‪30‬‬ ‫‪31‬‬ ‫‪$‬‬

‫‪W‬‬ ‫‪6‬‬ ‫‪13‬‬ ‫‪20‬‬ ‫‪27‬‬

‫‪Tu‬‬ ‫‪5‬‬ ‫‪12‬‬ ‫‪19‬‬ ‫‪26‬‬

‫‪M‬‬

‫‪S‬‬

‫‪4‬‬ ‫‪11‬‬ ‫‪18‬‬ ‫‪25‬‬

‫‪3‬‬ ‫‪10‬‬ ‫‪17‬‬ ‫‪24‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: cal‬‬ ‫عن د اس تخدامه م ن غي ر تحدي د الشهر والعام‬ ‫سوف يقوم بإظهار التقوي م الميلدي للشهر‬ ‫الحالي فقط ‪.‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪:grep‬‬ ‫إذا أردت البح ث ع ن س لسلة م ن الحروف في‬ ‫ملف أو أكثر من ملف سوف يتم ذلك بهذا المر‬ ‫وس تكون عملي ة البح ث س طراً سطراً‪ .‬فمثل إذا‬ ‫كان‪ :‬المل ف ”‪ ”file1‬يحتوي على المعلومات‬ ‫التالية‪:‬‬

‫نظم التشغيل‬

‫ نظام التشغيل‬/13 ‫يونيكس‬

Mohammed Osman Shemma Hassan Rowa Abd Allah

:‫” يحتوي على المعلومات التالية‬file2” ‫الملف‬ Mohammed Osman Hadeel Mamoon

‫نظم التشغيل‬

‫ نظام التشغيل‬/13 ‫يونيكس‬

$ cat file1 Mohammed Osman Shemma Hassan Rowa Abd Allah $ cat file2 Mohammed Osman Yousif Ali $ grep "Mohammed Osman" file1 Mohammed Osman $ grep "Mohammed Osman" file1 file2 file1 : Mohammed Osman file2 : Mohammed Osman

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: man‬‬ ‫إذا أردت المس اعدة م ن يونيكس بتذكيرك‬ ‫بالوام ر أ و طريق ة اس تخدامها فإ ن هذا المر‬ ‫يمكنك من ذلك فمثلً ‪:‬‬ ‫‪man ls $‬‬

‫نظم التشغيل‬

‫‪ /13‬نظام التشغيل‬ ‫يونيكس‬

‫المر ‪: man‬‬ ‫يت م عرض ك ل المعلومات الخاص ة باستخدام‬ ‫الم ر ‪ ls‬ويمك ن تكرار هذا الم ر م ع جميع‬ ‫الوامر الخري للتأكد منها ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫بع د تطور أنظم ة الحواس يب الشخص ية والتي‬ ‫بدأ ت ف ي اس تخدام المعالجات ذات ال ‪ 32‬ثنائية‬ ‫لم يع د نظام التشغي ل دوس مناس با لتشغيلها‬ ‫التشغي ل المث ل‪ ،‬فت م اس تبداله بنظام التشغيل‬ ‫يونيك س ونظام التشغي ل وندوز إ ن ت ي الشبيه‬ ‫بيونيكس ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫ولكن أسعار ووندوز إن تي غير مجدية لكثير من‬ ‫مبرمجي ومستخدمي الحواسيب من ثم بدأ هؤلء‬ ‫الم برمجون والمس تخدمون يبحثون ع ن بدائل‬ ‫أخرى كان أنسبها نظام التشغيل لينوكس ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫لق د ت م تص ميم نظام التشغي ل ليونيك س بواسطة‬ ‫طال ب فنلندي يدعى لينوس تورفالدس عام‬ ‫‪1991‬م بخواص يونيكس ثم طرحه مجانا لعامة‬ ‫الناس عل ى النترن ت وطل ب م ن ك ل المبرمجين‬ ‫ةنص ممي نظ م التشغي ل المشارك ة ف ي تطوير هذا‬ ‫النظام مما أدي إلي تطويره سريعا ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫إذن نظام لينوك ي ه و نظام تشغي ل غير تجاري‬ ‫متاح مجان ا للس تخدام ويشارك الجمي ع في‬ ‫تطويره من خلل مجموعات عمل عبر النترنت‪.‬‬ ‫لقد تم طرح النسخة العملية الولي للينوكس في‬ ‫مارس ‪1994‬م ث م النس خة الثاني ة ف ي يونيو‬ ‫‪1996‬م ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫يتميز لينوكس ‪:‬‬ ‫‪ ‬بإمكاني ة التعام ل م ع ك ل ال برمجيات الت ي تم‬ ‫تص ميمها عل ى أنظم ة التشغي ل الخري مثل‬ ‫يونيكس ووندوز مايكروسوفت ودوس ومع لغات‬ ‫البرمجة المختلفة ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫يتميز لينوكس ‪:‬‬ ‫‪ ‬كذل ك التعام ل م ع أكس س وندوز بخواصه‬ ‫المتطورة في التخاطب المباشر مع ربط الصور‪.‬‬ ‫كما له خاصية توسع الذاكرة ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫يتميز لينوكس ‪:‬‬ ‫‪ ‬لقد استفاد لينوكس من النسخة القياسية لنظام‬ ‫التشغيل يونيكس مما مكنه من التعامل مع بيئات‬ ‫يونيكس المختلفة والحتفاظ بخاصية يونيكس في‬ ‫الس تخدام المشترك والبرمج ة المشتركة‬ ‫(‪)multiprogramming‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫يتميز لينوكس ‪:‬‬ ‫‪ ‬هذا إضاف ة إل ي إمكاني ة التعام ل مع تقنيات‬ ‫وبرتوكلت شبكات التصال المختلفة تي سي بي‬ ‫‪ /‬آي بي ‪))TCP/IP‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫أولً‪ :‬استخدامات لينوكس ‪:‬‬ ‫ثنائي ة بمرون ة ل تقيده عل ى معماري ة بعينه ا فه و الن‬ ‫يمكن استخدامه على كل المعماريات المتاحة والمستقبلية‬ ‫بسهولة ويسر كما أن له القدرة في التعامل مع المعالجات‬ ‫المركب ة(‪)multiprocessing‬والتعام ل اللحظي‬ ‫((‪. real time‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫أولً‪ :‬استخدامات لينوكس ‪:‬‬ ‫إذن يمك ن القول أ ن نظام لينوك س يمكن‬ ‫اس تخدامه ف ي ك ل التقنيات المتاح ة والمستقبلية‬ ‫لجهزت الحواس يب بإمكانات عالي ة تفوق كل‬ ‫النظمة التشغيل الحالية ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫أولً‪ :‬استخدامات لينوكس ‪:‬‬ ‫يمك ن اس تخدام لينوك س م ع المخدمات ومع‬ ‫الطرفيات وم ع أجهزة الذكاء الصطناعي‬ ‫(الروبوتات) والحس اسات وأجهزة التحك م ومع‬ ‫أجهزة الحواسيب الكبري ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫أولً‪ :‬استخدامات لينوكس ‪:‬‬ ‫ه ذ إضاف ة إل ي اس تخدامات لينوكس المتطورة‬ ‫على برمجيات خدمات النترنت وفي قدرته على‬ ‫حماي ة ال بيانات بواس طة م ا يعرف بالحوائط‬ ‫النارية (‪.)walls fire‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫أولً‪ :‬استخدامات لينوكس ‪:‬‬ ‫إن للينيوك س المرون ة الكافي ة ف ي التعام ل مع‬ ‫حاسوب ضعيف المكانات مثل معالج انتل ‪386‬‬ ‫وذاكرة ‪ 4‬م ب فق ط وإذا أردن ا التعام ل مع‬ ‫الرس وم الت ي تحتاج لمكانات ذاكرة أك بر فإننا‬ ‫نحتاج كحد أدني إلي ‪ 8‬م ب‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫أولً‪ :‬استخدامات لينوكس ‪:‬‬ ‫وتزي د الحاج ة إل ي ذاكرة أك بر ومعالج أقوي إذا‬ ‫أردنا تعامل أدق مع الرسوم وقد يطلب لينوكس‬ ‫حسب متطلبات الرسومات والبرمجة ‪ 64‬م ب أو‬ ‫‪ 128‬م ب هذا بالطب ع مع معالجات بنتيوم ‪3‬‬ ‫كحد أدني في هذه الحالت ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫ثانيا ‪ :‬تشغيل لينوكس ‪:‬‬ ‫يمكن الحصول على لينوكس مجانا على أقراص‬ ‫مرنة أو أقراص مضغوطة وحجمه حوال ‪ 40‬م ب‬ ‫في نس خته الص غري (أي لي س بها إمكانات‬ ‫الرس ومات) وحوال ي ‪ 120‬م ب ف ي النسخة‬ ‫الكبري ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫ثانيا ‪ :‬تشغيل لينوكس ‪:‬‬ ‫لذا يتض ح أن ه لي س عملي ا نس خه في أقراص‬ ‫مرن ة؛ لن ذل ك يتطل ب كح د أدن ي حوالي ‪100‬‬ ‫قرص مرن‪ ،‬لذا م ن العمل ي والجدي أ ن يتم‬ ‫اقتناء لينوكس على قرص مضغوط ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫ثانيا ‪ :‬تشغيل لينوكس ‪:‬‬ ‫عند إنزال لينوكس من القرص إلي الجهاز هناك‬ ‫أس ئلة س وف يطل ب من ك لينوك س الجابة عليها‬ ‫تخص التقنية المستخدمة في ذلك الجهاز ‪.‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫ثانيا ‪ :‬تشغيل لينوكس ‪:‬‬ ‫أولً سوف يسألك لينوكس عن متحكمات القراص‬ ‫الص لبة المس تخدمة وه ي عادة المتحك م الول به‬ ‫قرص أس اسي ‪ C‬وقرص يس مي ‪ D‬والمتحكم‬ ‫الثان ي وب ه قرص رئي س يس مي ‪ E‬وقرص تابع‬ ‫يسمي ‪ .F‬ةهذه المتحكمات هي في الغالب من نوع‬ ‫‪. IDE‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫ثانيا ‪ :‬تشغيل لينوكس ‪:‬‬ ‫هنالك متحكمات من نوع آخر يعرف ب ‪ SCSI‬لكنها‬ ‫غي ر منتشرة م ع الحواس يب الشخص ية‪ .‬بع د ذلك‬ ‫سوف يس أل لينوك س ه ل تري د وض ع نظام التشغيل‬ ‫في قرص منفصل أم مع النظمة الخري والفضل‬ ‫أن يكون في قرص منفصل وفي القرص ‪. C‬‬

‫نظم التشغيل‬

‫‪ /14‬نظام التشغيل‬ ‫لينوكس‬

‫ثانيا ‪ :‬تشغيل لينوكس ‪:‬‬ ‫وربم ا يس أل كذل ك لينوك س أثناء النزال عن عدد‬ ‫المسارات في القرص وعدد السطح وعدد المقاطع‬ ‫في المس ار الواحد وهذه المعلومات تكون عادة‬ ‫مطبوعة علة القرص من الخارج ‪.‬‬

:DOS , UNIX ‫ بعض أوامر لينوكس الهامة وما يقابلها في‬:ً‫ثالثا‬ DOS Dir Cls Del Copy Move / rename Type Cd More > file

UNIX Is Clear Rm Cp Mv Cat Cd More file

LUNIX Ls/ die Velar Rm Cp Mv Vat Cd More file

Md Rd

Mkdir Emdir

Mkdir rmdir

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫الذي يعني بالمعالجات الرياضية والمنطقية التي‬ ‫تجعل من الحاسوب آلة ذكية ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫ويعن ى بالذكاء القدرة عل ى اس تيعاب الحقائق‬ ‫وعلقاته ا م ع بعضه ا واس تخدام تل ك الحقائق‬ ‫والعلقات للتوص ل إل ي نتائ ج ص حيحة ومنطقية‬ ‫لقصى حد ممكن ‪،‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫فعلي سبيل المثال إذا غذينا الحاسوب بصورة أي‬ ‫طال ب ع ن طري ق الكاميرا الرقمي ة وم ع صورة‬ ‫الطالب نداء صوتي لسم الطالب فإننا نستطيع أن‬ ‫نجع ل الحاس وب ينادي اس م الطال ب كلم ا وقف‬ ‫الطالب أمامه ويتم ذلك على النحو التالي ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫عند وقوف الطالب أمام الحاسوب يقوم الحاسوب‬ ‫بأخذ صورة رقمية لذلك الطالب ثم مضاهاة تلك‬ ‫الص ورة م ع الص ورة الت ي تغذيت ه بها وينادي‬ ‫الحاسوب الطالب متى ما تطابقت تلك الصورة مع‬ ‫صورة الطالب والتي سبق أن تم تخزين نداء اسم‬ ‫الطالب معها ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫الشطرن ج والتحرك الص حيح مقاب ل حرك ة من‬ ‫اللع ب المناف س‪ ،‬وبهذا ل يمك ن أن ينهزم‬ ‫الحاس وب أمام اللع ب المنافس وإذا كان‬ ‫المنافس ماهراً فإن اللعبة لن تنتهي أبدا ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫ومثال آخر يمكن أن ينصح الحاسوب بعدم السفر‬ ‫بالسيارة بناء علي بيانات مناخية يتم تغذيته بها‬ ‫وتمكنه من تحليل المناخ والتنبؤ بحدوث أمطار‬ ‫غزيرة أو رياحا كثيفة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫مثال آخ ر ه و أ ن يت م تص نيع آل ة تشب ه النسان‬ ‫به ا كاميرا رقمي ة وحاس وب يكون الحاسوب‬ ‫بمثاب ة الم خ والكميرا بمثاب ة العي ن فمت ى ما‬ ‫صورت الكاميرا جس ما أمامه ا يوج ه الحاسوب‬ ‫تلك اللة بالتوجه يميناً أو شمالً أو للخلف‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫كما يمكن تعقيد هذه اللة بحيث رأت صورة أحد‬ ‫الطلب الذي ن س بق أ ن غذي ت بص ورهم فإنها‬ ‫تنادي الطال ب باس مه ان افس ح الطري ق‪ ،‬كما‬ ‫يمك ن لهذه الل ة بأ ن تس تخدم في العمليات‬ ‫الخطيرة‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪/1‬‬ ‫مدخل‬

‫مثل القصف الجوي أو معالجة التسرب النووي‬ ‫أو إطفاء الحرائ ق أ و ف ي التجارب المؤث ر علي‬ ‫الصحة مثل التجارب النووية ذات الشعاع العالي‬ ‫أو التجارب الت ي تت م ف ي بيئ ة يس تحيل على‬ ‫النسان التعايش معها ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /2‬أهداف علم الذكاء‬ ‫الصطناعي وأمثلة‬ ‫لتطبيقاته‬

‫يهدف علم الذكاء الصطناعي إلي ‪:‬‬ ‫‪ ‬تصميم وبرمجة آلت ذكية تقوم بتنفيذ العمال‬ ‫المطلوب ة منه ا بك ل دق ة مثل قيادة الطائرات‬ ‫ووصول الصواريخ للهداف المقصودة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /2‬أهداف علم الذكاء‬ ‫الصطناعي وأمثلة‬ ‫لتطبيقاته‬

‫ورة تؤدي إلي‬ ‫إلي ‪:‬‬ ‫الصطناعيبص‬ ‫الذكاءق وعلقته ا‬ ‫علمالحقائ‬ ‫ترجم ة‬ ‫‪‬يهدف‬ ‫نتائ ج منطقي ة إل ي تحقي ق أهداف ص حيحة مثل‬ ‫تحلي ل وتخزي ن كلمات وتركي ب اللغات لجل‬ ‫الترجم ة الفوري ة والتحلي ل وتخزين بيانات‬ ‫المجرمي ن لمعرف ة المتهمي ن ف ي جريم ة معين ة أو‬ ‫في التخطيط الدقي ق بناء عل ى تحليل لحج م ضخم‬ ‫من المعرفة والمعلومات ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /2‬أهداف علم الذكاء‬ ‫الصطناعي وأمثلة‬ ‫لتطبيقاته‬

‫يهدف علم الذكاء الصطناعي إلي ‪:‬‬ ‫‪ ‬يمكن للحاسوب أن يلعب دور الخبير البشري‬ ‫في الفتوى ف ي مجال الخ برة فيقوم بتشخيص‬ ‫العطاب أ و المراض أ و الرشاد والنص ح أو‬ ‫التنبؤ أو التخطيط ‪ ....‬الخ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /2‬أهداف علم الذكاء‬ ‫الصطناعي وأمثلة‬ ‫لتطبيقاته‬

‫يهدف علم الذكاء الصطناعي إلي ‪:‬‬ ‫‪ ‬اس تخدام النماذج المحوس بة لدراس ة سلوكيات‬ ‫النسان أو الحيوان أو الحياء عموما‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /2‬أهداف علم الذكاء‬ ‫الصطناعي وأمثلة‬ ‫لتطبيقاته‬

‫النس ان الواعي‬ ‫الذكاءوب مثل ه‬ ‫علم الحاس‬ ‫يهدفتخدام‬ ‫‪ ‬اس‬ ‫مث لإلي ‪:‬‬ ‫الصطناعي‬ ‫المتعاون – مث ل معرف ة الداخلي ن ف ي الماكن‬ ‫الحس اسة م ن خلل تحلي ل الص ورة أ و الصوت‬ ‫والس ماح للمأذون له م بالدخول أ و استخدام‬ ‫النسان اللي في إطفاء الحريق أو أعمال يدوية‬ ‫دقيقة (روبوت)‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /2‬أهداف علم الذكاء‬ ‫الصطناعي وأمثلة‬ ‫لتطبيقاته‬

‫يهدف علم الذكاء الصطناعي إلي ‪:‬‬ ‫‪ ‬استخدام الحاسوب في مساعدة النسان المعاق‬ ‫باس تخدامه ف ي التحك م ف ي ي د ص ناعية أ و رجل‬ ‫صناعية أو مساعدة قلب ضعيف الحركة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /3‬أسس علم الذكاء‬ ‫الصطناعي‬

‫لتحقي ق أهداف عل م الذكاء الص طناعي التي‬ ‫ذكرناه ا ف ي الفقرة الس ابقة هناك مجموع ة من‬ ‫المعارف الضروري ة الت ي يج ب أ ن يل م بها‬ ‫مهندس برمجيات الذكاء الص طناعي أول تلك‬ ‫المعارف بالطبع هي نظم الحاسوب (تقنية أجهزة‬ ‫وتقنية برمجيات)‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /3‬أسس علم الذكاء‬ ‫الصطناعي‬

‫وعلم المنطق والنظريات الرياضية في الحوسبة‬ ‫وعلم النفس أو تركيب النفس البشرية ونظريات‬ ‫التحك م اللكترون ي والنظريات الرياضي ة ف ي حل‬ ‫المشكلت إضافة إلي المعرفة بالقتصاد ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /3‬أسس علم الذكاء‬ ‫الصطناعي‬

‫في الغالب ل نجد شخصا يلم بكل تلك المعارف‬ ‫لذا كان تص ميم وبرمج ة أ ي نظام يقوم على‬ ‫الذكاء الص طناعي ه و عم ل مجموع ة خبراء‬ ‫وليس عمل فرد حتى نضمن نجاح التصميم الذي‬ ‫يتمكن فعل من التحكم في حرك ة النس ان اللي‬ ‫(روبرت)‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /3‬أسس علم الذكاء‬ ‫الصطناعي‬

‫بناءً على خطة دقيقة وقدرة على الحساس بالنظر‬ ‫أو اللم س أ و بالش م أ و غيره ا من المؤثرات‬ ‫اللكترونية تمكنه من ‪:‬‬ ‫‪ ‬تفسير اللغات النسانية المكتوبة أو المسموعة‪.‬‬ ‫‪ ‬ويت م ذل ك بأق ل تكلف ة ولتحقي ق أكبر فائدة‬ ‫اقتصادية ممكنة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /4‬لغات الذكاء‬ ‫الصطناعي‬

‫إن المدخل إلي الذكاء الصطناعي ل يتم إل بنوع‬ ‫خاص م ن اللغات الحاس وب العليا تعرف بلغات‬ ‫برمج ة المنط ق الت ي تس اعد ف ي جع ل الحاسوب‬ ‫يتعامل بطريقة منطقية أو كأنه آلة مدركة‪ ،‬وبهذا‬ ‫تكون لغات برمج ة المنطق هي اللغات المناسبة‬ ‫في تطبيقات الذكاء الصطناعي ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /4‬لغات الذكاء‬ ‫الصطناعي‬

‫إن كانت اللغات العالية الن تطورت لتلئم هندسة‬ ‫ال برمجيات بالتوج ه نح و الشيئيات مثل ‪++C‬‬ ‫وغيره ا فإ ن لغات برمج ة المنط ق أص لً صممت‬ ‫لتلئ م هندس ة ال برمجيات بالتوج ه نحو المطلوب‬ ‫أو نحو الهداف‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /4‬لغات الذكاء‬ ‫الصطناعي‬

‫وهذا ه و النوع م ن ال برمجيات الذي يحقق‬ ‫أغراض الذكاء الص طناعي إ ذ أ ن غاية الذكاء‬ ‫الصطناعي أن يدرك الحاسوب ما المطلوب منه‬ ‫أو م ا الهداف الت ي يج ب أ ن يحققه ا بناء على‬ ‫معلومات معينة أدخلت عليه ؟‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /4‬لغات الذكاء‬ ‫الصطناعي‬

‫إن أهم لغات الذكاء الصطناعي لغتان لغة لسب‬ ‫(‪ ) Lisp‬ولغ ة برولوق (‪ . )Prolog‬لق د تم‬ ‫تص ميم لغ ة لس ب عام ‪1984‬م بمعهد‬ ‫ماس اشيوتس المشهور ب (‪ ). M .I .T‬بمدينة‬ ‫بوس طن بالوليات المتحدة المريكي ة خصيصاً‬ ‫لتحقيق الغراض البرمجية للذكاء الصطناعي ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /4‬لغات الذكاء‬ ‫الصطناعي‬

‫أم ا برولوق فق د ت م تص ميمها ف ي عام ‪1970‬م‬ ‫بجامعة مرسيليا بفرنسا بغرض برمجة المسائل‬ ‫المنطقي ة قب ل ظهور الذكاء الص طناعي بصورة‬ ‫واضح ة ‪ ،‬وم ن ث م أص بحت له ا قدرة عالي ة في‬ ‫برمج ة تط بيقات الذكاء الص طناعي تفوق تلك‬ ‫التي في لسب‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /4‬لغات الذكاء‬ ‫الصطناعي‬

‫إل أ ن لس ب ظل ت الكث ر اس تخداما لتطوره ا في‬ ‫أمريم ا أكث ر بلدان العال م اس تخداما للحاسوب ‪.‬‬ ‫إننا لسنا في حاجة لمقارنة اللغتين ولكن لغرض‬ ‫هذا المنه ج س وف نكتف ي بوص ف مبادئ لغة‬ ‫برولوق وطريقة استخدامها مع أمثلة بسيطة من‬ ‫أمثلة الذكاء الصطناعي ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫لق د ت م تص ميم لغ ة برولوق(‪ )PROLOG‬في‬ ‫جامعة مارسيليا بفرنسا في عام ‪1970‬م بواسطة‬ ‫عال م الحاس وب الفرنس ي آلن كولمراور‪ .‬وكلمة‬ ‫برولوق مشتقة من الحروف الثلث الولي لكلمة‬ ‫والحروف‬ ‫برمجة (‪)PROgramming‬‬ ‫الثلث الولي لكلمة منطق (‪. )LOGic‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫إذن كلم ة برولوق ه ي اختص ار لكلمت ي البرمجة‬ ‫بالمنط ق أ و برمج ة المنط ق وهذه الخاص ية للغة‬ ‫برولوق – أي برمجة المنطق – تمكن من تحويل‬ ‫الحاسوب للة ذكية بمعنى له القدرة في تخزين‬ ‫مجموع ة حقائ ق ث م اس تخدام تل ك الحقائ ق في‬ ‫الوصول إلي نتائج وقرارات ذكية ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫مثل أ ن يت م تخزي ن ك ل المعلومات المتاح ة عن‬ ‫الخص ائص الس لوكية والخلفيات البيئية‬ ‫والجتماعية والمزجة الشخصية لكل الطلب‪ .‬ثم‬ ‫بناء عل ى هذه المعلومات يقوم الحاس ب بتقسيم‬ ‫الطلب إل ي مجموعات ص غيرة متجانسة لغرض‬ ‫السكن في غرف مشتركة‪ ،‬أو داخليات مشتركة‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫مثال آخ ر بأ ن يت م تخزي ن معلومات شرطي ة عن‬ ‫كل النشالين في الولية وتشمل المعلومات طريقة‬ ‫نشله م‪ ،‬وأماك ن وجوده م‪ ،‬وأعماره م‪ ،‬وألوانهم‪،‬‬ ‫وأشكالهم‪ ،‬فإذا حدثت شكوي نشل من مواطن يتم‬ ‫بناء عل ى بيانات المواط ن تحدي د أقرب النشالين‬ ‫تطابقا مع بيانات الشاكي‪،‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫ثم تكمل الشرطة تحرياتها لتحديد النشال‪ ،‬ونفس‬ ‫الطريق ة يمك ن أ ن تس تخدم ف ي تحدي د سارقي‬ ‫المتاجر والقتلة وغيرهم ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫العل م الذي يس اعد ف ي تحوي ل الحاس وب إل ي آلة‬ ‫ذكاء يعرف ف ي علوم الحاسوب بالذكاء‬ ‫الصطناعي (‪)Artificial Intelligence‬‬ ‫تس مي اللغات الت ي ت برمج الحاس وب ليكون آلة‬ ‫ذكي ة بلغات الذكاء الص طناعي وأه م لغ ة في‬ ‫الذكاء الصطناعي اليوم هي لغة برولوق ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫تعتبر لغات الذكاء الصطناعي عموما أكثر كفاءة‬ ‫من اللغات التقليدي ة مث ل بيزك وباس كال ونعني‬ ‫بالكفاء ة تقلي ل تنفي ذ ال برنامج وتقلي ل حجم‬ ‫التخزين في الذاكرة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫لك ن ف ي المقاب ل يحتاج برنام ج لغة الذكاء‬ ‫الص طناعي إل ي مجهود ذهن ي أك بر م ن البرامج‬ ‫في تحدي د ك ل الحقائ ق وال بيانات الواقعية‬ ‫(‪ )Facts‬ثم تنظيم تلك الحقائق وربطها ببعضها‬ ‫(‪ ) Rules‬وتوجيهه ا لس تخلص النتائج‬ ‫والهداف المطلوبة (‪. )goals‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /5‬لغة‬ ‫برولوق‬

‫أم ا اللغات التقليدي ة فتقوم بتوجي ه الحاس ب إلي‬ ‫تنفي ذ المطلوب ف ي شك ل خطواط تس لسلية أو‬ ‫دوائ ر تكراري ة كم ا شرحن ا ف ي ذل ك في كتاب‬ ‫السنة الثانية عند وصف طرق البرمجة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫تعت بر لغات الذكاء الص طناعي عموم ا أكث ر بنلئية‬ ‫من اللغات التقليدة لعدم اس تخدامها الدوائر‬ ‫اللكترونية وهذا يجعلها أكثر وضوحا وأقل عرضة‬ ‫للخطأ لكنها في المقابل كما ذكرنا تحتاج لحجم كبير‬ ‫من الحقائ ق والعلقات الت ي ل ب د أ ن يغذي بها‬ ‫الحاسوب قبل البدء في التنفيذ أو المعالجة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫تتكون بنائية لغة برولوق من الجزاء التالية ‪:‬‬ ‫أولً ‪ :‬تعري ف أس ماء وأشكال وأوصاف الشياء‬ ‫المتعلقة أو ذات الصلة بالموضوع‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫مثال (‪: )1‬‬ ‫إذا كان الموضوع هو المدرسة فإن الشياء التي‬ ‫يمكن أن تكون ذات العلقة بالمدرسة ؟ وهي ‪:‬‬ ‫• اسم المدرسة ‪.‬‬ ‫• المحلية التي تتبع لها ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫مثال (‪: )1‬‬ ‫• المرحلة التعليمية ‪.‬‬ ‫• عدد الفصول ‪.‬‬ ‫• عدد الطلب ‪.‬‬ ‫• عدد الساتذة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫ثانياً ‪ :‬تعري ف ووص ف العلقات الت ي ترب ط بين‬ ‫تل ك الشياء الت ي ت م تعريفه ا ف ي المثال السابق‬ ‫يتم تعريف العلقة التالية ‪:‬‬ ‫المدرسة (اسم المدرسة ‪ ،‬المحلية ‪ ،‬المرحلة ‪ ،‬عدد‬ ‫الفصول‪ ،‬عدد الطلب‪ ،‬عدد الساتذة ) ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫ثالثاً‪ :‬وصف الحقائق والقوانين التي أسست عليه‬ ‫هذه العلقات ‪ ،‬مثل من الحقائق يمكن أن تكون ‪:‬‬ ‫المدرسة ( أبو حشيش ‪ ،‬البر الشرقي اساس ‪، 8‬‬ ‫‪. )10 ، 300‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫أي أن ‪  :‬اسم المدرسة هي أبو حشيش ‪.‬‬ ‫‪ ‬اسم المحلية هي البر الشرقي ‪.‬‬ ‫‪ ‬عدد الفصول = ‪. 8‬‬ ‫‪ ‬عدد الطلب = ‪. 300‬‬ ‫‪ ‬عدد الساتذة = ‪. 10‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫رابعاً ‪ :‬اس تخدام هذه الحقائ ق والقواني ن في‬ ‫الوصول إلي الهداف المطلوبة ‪ ،‬مثل أن نسأن‬ ‫عن عدد الساتذة أو عدد الطلبة أو الفصول في‬ ‫مدرس ة أب ة و حشي ش أ و أ ي مدرس ة أخري تم‬ ‫وصفها ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫إذا قارن ا لغ ة برولوق بلغ ة باس كال نلح ظ أن‬ ‫الجزء الول والجزء الثاني في لغة برولوق هما‬ ‫جزئي ن تعريفيي ن يقابلن جزء إعلن السماء‬ ‫والمتغيرات والدوال والجراءات في لغة باسكال‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫أما الجزء الثالث والجزء الرابع واللذان يقابلن‬ ‫الجسم الرئيس في لغة باسكال فيختلفان اختلفا‬ ‫جزرئي ا ف ي البنائي ة المنطقي ة كم ا في المثال‬ ‫التالي‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫مثال (‪: )2‬‬ ‫أدرس العبارات التالية جيدا‬ ‫الحقائق ‪:‬يحب محمد الفول‬ ‫يحب علي العدس‬ ‫القانون ‪:‬يحب محمد س إذا كان يحب علي س‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫إذا أعطين ا برولوق هدف (‪ ) goal‬أن يستخدم‬ ‫قوت ه الس تنتاجية ليجاد ك ل الحلول الممكنة‬ ‫لستخراج كل اللذين يحبون العدس ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫بناء عل ى الحقيق ة أ ن عل ي يحب العدس وبناء‬ ‫على القانون أن محمد يحب كل ما يحبه علي فإن‬ ‫برنام ج برولوق س وف تس تنتج أ ن محم د يحب‬ ‫العدس وعليه فإن المخرجات ستكون‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫علي "مخرج أصيل من الحقيقة يحب علي العدس"‬ ‫محمد "مخرج استنتاجي من القانون يحب محمد س‬ ‫إذا كان يحب علي س" ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /6‬بنائية لغة‬ ‫برولوق‬

‫هذا المثال يبدو بس يطا جدا ولكن إذا كان هناك‬ ‫آلف الحقائ ق فإ ن النتيج ة أ و الهدف سيكون‬ ‫معقدا جدا أ و يص عب الوص ول إلي ه بالطريقة‬ ‫اليدوية أو الذهنية كما أنه سيحتاج إلي برنامج‬ ‫معقد جدا إذا تم استخدام اللغات التقليدية ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫أ‪ /‬التحكم التلقائي ‪:‬‬ ‫يتم التحكم في برنامج برولوق تلقائيا فعند تشغيل‬ ‫ال برنامج يقوم النظام بالبح ث ع ن ك ل القي م التي‬ ‫تحق ق الهدف أثناء ذل ك ربم ا يطل ب الحاسوب‬ ‫إدخال بع ض ال بيانات أ و يعرض بعض المخرجات‬ ‫على الشاشة ‪ .‬هذه الخاصية تشترك فيها كل لغات‬ ‫البرمجة تقريبا ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫ب‪ /‬الخاصية الستنتاجية ‪:‬‬ ‫هذه الخاصية أوضحناها في المثال السابق عندما‬ ‫أجاب برنام ج برولوق بأ ن محم د يحب العدس‬ ‫بالرغم من أن هذه الحقيقة لم تكن ضمن الحقائق‬ ‫المبين ة ف ي ال برنامج ولك ن اس تنتجها بواسطة‬ ‫العلقة يحب محمد س إذا كان يحب علي س ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫ب‪ /‬الخاصية السترجاعية ‪:‬‬ ‫ونعن ي بالخاص ية الس ترجاعية عن د وصول‬ ‫ال برنامج لي ح ل فإن ه يس تخدم هذا الح ل في‬ ‫إعادة تص ميم ك ل الفروض والعلقات السابقة‬ ‫لمعرف ة مدى تأثي ر هذا الح ل ف ي استنتاج حلول‬ ‫جديدة ‪،‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫ب‪ /‬الخاصية السترجاعية ‪:‬‬ ‫أ و كأ ن ال برنامج يقوم بإعادة التنفيذ مرة أخري‬ ‫مستخدما الحل الذي توصل إليه كمدخل جديد في‬ ‫البرنامج ‪ .‬مثال ذلك إذا أضفنا في المثال السابق‬ ‫العلقة أو القانون يحب عثمان ص إذا كان يحب‬ ‫محمد ص‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫ب‪ /‬الخاصية السترجاعية ‪:‬‬ ‫من قبل القانون يحب محمد س إذا كان يحب علي‬ ‫س فإنه عند تشغيل البرنامج إذا سألنا ماذا يحب‬ ‫عثمان فإ ن ال برنامج س يجيب الفول مستخدما‬ ‫حقيق ة أ ن محم د يح ب الفول ولك ن عندم ا يصل‬ ‫إلي القانون يحب محمد س إذا كان يحب علي س‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫ب‪ /‬الخاصية السترجاعية ‪:‬‬ ‫فإنه سيصل إلي الحل أن محمد يحب العدس ‪ ،‬ثم‬ ‫مستخدما هذا الحل مرة أخري في البرنامج راجعا‬ ‫من البداية سيصل إلي الحل عثمان يحب العدس‬ ‫كذلك ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫د‪ /‬السلوب التخاطبي ‪:‬‬ ‫يمك ن اس تخدام لغ ة برولوق ف ي إدخال البيانات‬ ‫بلوح ة المفاتي ح واس تخراج المخرجات على‬ ‫الشاشة أثناء تنفيذ البرنامج وهذا يتيح التخاطب‬ ‫بي ن مس تخدم ال برنامج والحاس وب مم ا ل ه من‬ ‫ميزة في برنامج اللعاب ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫ه ‪ /‬بنائية المعاودة ‪:‬‬ ‫تتميز لغة برولوق ببنائية المعاودة ونعنى ببنائية‬ ‫المعاودة بأن ينادي ك ل قوس القوس الذي دونه‬ ‫أو بداخله‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫مثال (‪: )3‬‬ ‫محمد ( يدرس ( الجامعة (العلوم (الحاسوب ))))‬ ‫تعنى أن محمداً يدرس بالجامعة كلية العلوم بقسم‬ ‫الحاسوب ‪ .‬فإذا اضفنا‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫‪ ‬علي يدرس ( الجامعة ( الداب ( الجغرافيا )))‬ ‫‪ ‬عثمان ( يدرس (الجامعة (العلوم (الفيزياء))))‬ ‫‪ ‬أحمد ( يدرس ( الثانوية ))‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫ثم سألنا من يدرس بالجامعة ستكون الجابة‬ ‫محمد‬ ‫علي‬ ‫عثمان‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫وإذا سألنا من يدرس بالعلوم ستكون الجابة‬ ‫محمد‬ ‫عثمان‬ ‫وإذا سألنا من يدرس جغرافيا ستكون الجابة‬ ‫علي‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫و‪ /‬بساطة السلوب ‪:‬‬ ‫تتميز البرمجة بلغة برولوق بسهولة فهمها وقلة‬ ‫سطورها لنه ا تس تخدم لغ ة عادي ة غي ر اللغة‬ ‫الخوارزمية التي لحظناها في لغو بيسك كما أن‬ ‫برنامج بروبوق أق عشرة مرات في عدد السطر‬ ‫من اللغات التقليدية تقريبا ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫مثال (‪: )4‬‬ ‫ذكرن ا أ ن برنام ج برولوق يتكون م ن أربع أجزاء‪.‬‬ ‫الجزء الول ويعرف بالمجال(‪ )domain‬ويتم فيه‬ ‫تعريف الشياء التي يتعامل معها البرنامج والجزء‬ ‫الثان ي ويعرف بالتحقيقات (‪ )predicates‬ويتم‬ ‫فيه تعريف العلقات التي تربط بين هذه الشياء‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫مثال (‪: )4‬‬ ‫أم ا الجزء الثالث ويعرف بالعبارة (‪)clauses‬‬ ‫يت م في ه وص ف الحقائ ق أ و الواق ع الحقيق ي أما‬ ‫الجزء الراب ع فيت م إعطاء التس اؤلت الت ي يجيب‬ ‫عليه ا ال برنامج ‪ .‬أو ما يعرف بالهداف‬ ‫(‪.)Goals‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫مثال (‪: )4‬‬ ‫في هذا المثال نريد أن نعرف الرغبات الرياضية‬ ‫للطلب حت ى نس تطيع أ ن ننظ م النشاط الرياضي‬ ‫للطلب بناء عل ى ذل ك يبدأ ال برنامج بتعريف‬ ‫الشياء الت ي يتعام ل معه ا ال برنامج وه ي طالب‬ ‫ونشاط رياضي ‪،‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫مثال (‪: )4‬‬ ‫ثم تعريف العلقة وهي رغبة الطالب في النشاط‬ ‫الرياضي المعني وهو كرة القدم أو كرة السلة أو‬ ‫كرة اليد أو كرة الطاولة ثم بعد ذلك يبدأ البرنامج‬ ‫في الجابة من يرغب كرة القدم ومن يرغب كرة‬ ‫السلة وهكذا ‪.‬‬

‫البرنامج‬ */program/* ‫المجال‬ domains ‫ نشاط = رمزي‬، ‫طالب‬ student, activity = symbol ‫التحققات‬ predicates ) ‫ نشاط‬، ‫يرغب ( طالب‬ likes )student, activity( ‫العبارات‬ Clauses ) “‫ ”كرة القدم‬، ‫يرغب ( علي‬ like ) ali , ”foot ball”( ) “‫ ”كرة السلة‬، ‫يرغب ( عمر‬ like ) ali , ”basket ball”( ) “‫ ”كرة اليد‬، ‫يرغب ( عثمان‬ like ) ali , ”volley ball”( ) “‫ ”كرة الطاولة‬، ‫يرغب ( أحمد‬ ‫ س ) إذا كان‬، ‫يرغب ( أحمد‬ like ) ali , ”ping ball”( . )‫س‬،‫يرغب (عمر‬ like ) ali , ”foot ball”(

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫هذه العبارة تص ف حقائ ق وهي رغبات مباشرة‬ ‫لهول الطلب وقوانين ( قانون واحد هنا ) وهو‬ ‫أن أحمد يحب كل ما يحبه عمر‬ ‫* الجزء الرابع وهو جزء التس اولت يبدأ بكلمة‬ ‫هدف (‪ )goal‬على النحو التالي ‪:‬‬

Goal Likes ) omer,”basket ball”( Yes Goal Likes ) omer, ”ping ball”( No Goal Likes)ahmed,”basket ball”( Yes

‫هدف‬ )"‫ "كرة السلة‬، ‫يرغب (عمر‬ ‫نعم‬ ‫هدف‬ ) "‫ "كرة الطاولة‬، ‫يرغب (عمر‬ ‫ل‬ ‫هدف‬ ) "‫ "كرة السلة‬، ‫يرغب ( أحمد‬ ‫نعم‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫نلحظ في هذا البرنامج أول أن عبارات الحقائق‬ ‫والتس اؤلت ع ن الحقائ ق تنته ي بنفط ة ف ي آخر‬ ‫العبارة أما التحققات فل تنتهي بنقطة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫عندم ا س ألنا ال برنامج ه ل يرغ ب عم ر لعبة كرة‬ ‫الس لة كان ت الجابة ب "نع م" لن ذل ك ثاب ت في‬ ‫عبارات الحقائ ق ‪ ،‬وكذل ك عندم ا س ألنا البرنامج‬ ‫هل يرغ ب أحم د كرة الس لة ؟ أجاب ب "نعم"‬ ‫مستنتجا ذلك من حقيقة أن أحمد يرغب في كل ما‬ ‫يرغب فيه عمر من نشاط ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /7‬بعض مميزات لغة‬ ‫برولوق‬

‫أم ا عندم ا س ألنا ال برنامج ه ل يح ب عمر كرة‬ ‫الطاول ة أجاب ه ب "ل" لن ه ل توج د عبارة تفيد‬ ‫بذلك أو علقة يمكن أن يستنتج منها ذلك ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /8‬المتغيرات في لغة‬ ‫برولوق‬

‫المتغيرات ‪ X‬في ال برنامج الس ابق والذي يقابله‬ ‫س في الترجمة العربية هو رمز لمتغير في لغة‬ ‫برولوق ونعنى بالمتغيرات الرمز الذي يأخذ قيما‬ ‫مختلفة فإذا كتبنا في المثال السابق ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /8‬المتغيرات في لغة‬ ‫برولوق‬

‫هدف‬ ‫يرغب ( أحمد ‪ ،‬س )‬ ‫س = كرة الطاولة‬ ‫س = كرة السلة‬ ‫حلين‬

‫‪Goal‬‬ ‫(‪Likes )ahmed , x‬‬ ‫‪X = ping pong‬‬ ‫‪X = basket ball‬‬ ‫‪2 solutions‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /8‬المتغيرات في لغة‬ ‫برولوق‬

‫أي أن س أو ‪ X‬تحقق القيم كرة الطاولة وكرة‬ ‫السلة ‪ .‬القيمة الولي من الحقيقة أن أحمد يرغب‬ ‫كرة الطاول ة والقيم ة الثاني ة مس تنتجة بأ ن أحمد‬ ‫يحب كل نشاط يحبه عمر ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /8‬المتغيرات في لغة‬ ‫برولوق‬

‫تشترط برولوق ف ي المتغيرات أن تبدأ بحرف‬ ‫كبير (‪ )capital‬يليه ا أ ي عدد من الحروف‬ ‫والرقام وعلمة ( _ ) مثل ‪My_name_is‬‬ ‫تقب ل كرم ز لمتغي ر ف ي لغ ة برولوق أم ا الرمز‬ ‫‪ 1st-boy‬فل تقب ل لنه ا بدأ ت برق م بدل من‬ ‫حرف كبير ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /8‬المتغيرات في لغة‬ ‫برولوق‬

‫يفضل في لغات البرمجة عموما أن تكون أسماء‬ ‫أو رموز المتغيرات ذات دللة ومعنى بدلً من س‬ ‫و ص و ع و غيرها مثل ‪:‬‬ ‫ يفضل (‪ ahmed, sport ( likes‬على ‪)likes)ahmed,x‬‬‫‪ -‬يفضل (‪ student,”foot ball”( likes‬على ‪)”likes )y,”foot ball‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /8‬المتغيرات في لغة‬ ‫برولوق‬

‫إذا وضعنا هذه العبارة كهدف فإن البرنامج سيرد‬ ‫أن المتغير الذي يحقق الرغبة لكرة القدم هو فقط‬ ‫الطال ب عل ي و يمك ن ص ياغة هذا الهدف بلغة‬ ‫برولوق على النحو التالي ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /8‬المتغيرات في لغة‬ ‫برولوق‬

‫هدف‬ ‫يحب (الطالب ‪ ،‬كرة القدم)‬ ‫الطالب = علي‬ ‫حل واحد‬

‫‪Goal‬‬ ‫‪)Likes )student, foot ball‬‬ ‫‪Student = ali‬‬ ‫‪solution 1‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫ذكرن ا أ ن جزء العبارات ف ي لغة برولوق يتكون‬ ‫من حقائ ق (‪ )facts‬والحقيق ة يع بر عنه ا في‬ ‫شكل علقة تربط بين أشياء ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫مثل ف ي المثال الس ابق عل ي وعمر و عثمان و‬ ‫أحمد وكرة قدم وكرة سلة وكرة طاولة وكرة يد‬ ‫كلها شيئيات أما يرغب (‪ )likes‬فهي علقة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫كم ا كان هناك شرط ف ي أسماء المتغيرات هناك‬ ‫شرط ا لس ماء الشيئيات والعلق ة وه و أن يبدأ‬ ‫السم بحرف صغير (‪ ) small‬ثم أي تركيب من‬ ‫الحروف والرقام وعلمة ( _ ) ‪ ،‬وأن ل يحتوي‬ ‫هذا التركيب مسافة فارقة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫معلومة ‪:‬‬ ‫يمك ن اس تخدام الحروف الك بيرة أ و المسافات‬ ‫الفارغة بين الحروف عندما ينحصر التركيب‬ ‫”‪.‬‬ ‫بين علمتي اقتباس ”‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫مثال (‪: )5‬‬ ‫بين أي من العبارات أو الحقائق التالية صحيح أو‬ ‫خطأ ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫فارهة (شقة)‬ ‫فارهة (عربة)‬ ‫يمتلك (محمد ‪ ،‬منزل)‬ ‫يأكل (القط ‪ ،‬اللحم )‬ ‫يأكل ( البقر ‪ ،‬النجيلة )‬ ‫عربة ( كرونا ‪ ،‬زرقاء ‪،‬‬ ‫موديل ‪) 86‬‬

‫‪) valuable ) flat‬‬ ‫‪) valuable ) car‬‬ ‫‪)owns ) mohamed, house‬‬ ‫‪) eats ) cat , meat‬‬ ‫‪) eats ) cow , grass‬‬ ‫‪)car )corona , blue, M 86‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫ك ل هذه المثل ة عبارات أ و حقائ ق ص حيحة في‬ ‫لغة برولوق ماعدا العبارة الخيرة لن ‪ M‬حرف‬ ‫كبير والشياء يجب أن تبدأ بحرف صغير ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫يلحظ هنا أن عدد الشياء داخل العلقات مفتوح‬ ‫ونجد أن في ‪:‬‬ ‫‪ ‬المثال الول والثاني هناك شيء واحد يوصف‬ ‫بأنه فارهة ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫‪ ‬المثال الثال ث هناك علق ة بي ن شيئي ن هما‪:‬‬ ‫المالك والمملوك ‪ ،‬ومثله المثال الرابع والخامس‬ ‫حيث نجد علقة بين شيئين هما‪ :‬الكل والمأكول‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /9‬الشياء‬ ‫والعلقات في‬ ‫لغة برولوق‬

‫‪ ‬المثال الس ادس فه و وص ف لعرب ة يتكون من‬ ‫نوع العرب ة ‪ ،‬ولون العرب ة ‪ ،‬ومودي ل العربة ‪،‬‬ ‫وبالطب ع يمك ن أ ن يزي د الوص ف ليشم ل سعر‬ ‫العربة ‪ ،‬ورقم العربة ‪ ،‬وعدد الميال التي تقطعها‬ ‫وهكذا ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /10‬المجالت‬ ‫والتحقيقات‬

‫ذكرن ا أ ن المجالت والتحقيقات ف ي لغة برولوق‬ ‫يقابلن جزء التعريفات لغ ة باس كال لت بيان ذلك‬ ‫نقدم المثلة التالية ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /10‬المجالت‬ ‫والتحقيقات‬

‫المجالت‬ ‫شخص ‪ ،‬نشاط = رمزي‬ ‫التحققات‬ ‫يحب ( شخص ‪ ،‬نشاطاً )‬

‫‪domains‬‬ ‫‪Person , activity = symbol‬‬ ‫‪predicates‬‬ ‫‪)Likes ) person , activity‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /10‬المجالت‬ ‫والتحقيقات‬

‫هذا يعن ي أ ن هناك علق ة بي ن شيئي ن هما الفرد‬ ‫والنشاط والعلقة هي الحب أو الرغبة وهما من‬ ‫النوع رمز وليس من العدد أو الرقم ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /10‬المجالت‬ ‫والتحقيقات‬

‫مثال (‪: )6‬‬ ‫بين مصدر الخطأ إذا كتبنا الحقيقة (‪ )fact‬التالية‬ ‫في جزء العبارات‬ ‫‪Likes ) )10, x‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /10‬المجالت‬ ‫والتحقيقات‬

‫لن تقبل لن الشيء الول في العلقة معرف بأنه‬ ‫رمز وفي هذا المثال = ‪ 10‬وهي رقم لذا سيعطى‬ ‫الحاسوب على الشاشة رسالة (‪) type error‬‬ ‫أي هناك خط ا أ و عدم طاب ق بين الشياء‬ ‫ومواصفاتها ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /10‬المجالت‬ ‫والتحقيقات‬

‫مثال (‪: )7‬‬ ‫بي ن الخط أ إذا كتبن ا الحقيق ة (‪ )fact‬التالي ة في‬ ‫جزء العبارات‬ ‫‪Likes)" )ali, "foot ball ", "basket ball‬‬

‫الذكاء الصطناعي ولغة برولوق‬ ‫‪ /10‬المجالت‬ ‫والتحقيقات‬

‫فإن البرنامج يعطي خطأ لن العلقة صممت بين‬ ‫شيئين اثنين فقط وهذه علقة بين ثلث أشياء ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫مثال (‪: )8‬‬ ‫شراء العربة المناسبة ‪:‬‬

domains brand , colour = symbol age , price = integer millage = real predicates car )brand, millage, age, colour, price( clauses car ) toyota , 45000 , 5 , white , 800000( car ) ford , 30000 , 4 , blue , 500000( car ) datsun , 20000 , 3 , red , 300000(

‫المجالت‬ ‫الموديل ‪ ،‬اللون = رمزي‬ ‫العمر ‪ ،‬السعر = رقمي‬ ‫المسافة = عددي‬ ‫التحققات‬ ‫عربة ( موديل ‪ ،‬المسافة ‪ ،‬العمر ‪ ،‬اللون ‪ ،‬السعر )‬ ‫العبارات‬ ‫عربة ( تويوتا ‪ ، 5 ، 45000 ،‬أبيض ‪) 800000 ،‬‬ ‫عربة ( فورد ‪ ، 4 ، 30000 ،‬أزرق ‪) 500000 ،‬‬ ‫عربة ( داتسون ‪ ، 3 ، 20000 ،‬أحمر ‪) 300000 ،‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫هدف‬ ‫عربة ( موديل ‪ ،‬المسافة ‪ ،‬العمر ‪ ،‬اللون ‪) 500000 ،‬‬ ‫‪Goal‬‬ ‫( ‪Car ) Brand, Millage, Age, colour, 500000‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫الهدف الن أ ن يبح ث الحاس وب أ و برنامج‬ ‫برولوق عن أي عربة سعرها ‪ 500000‬وبغض‬ ‫النظ ر ع ن موديله ا أ و المس افة الت ي قطعته ا أو‬ ‫عمرها أو لونها‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫سيجيب الحاسوب أن العربة التي تحقق ذلك هي‬ ‫العربة الفورد ومواصفتها أن مسافاتها ‪30000‬‬ ‫ميل وعمرها ‪ 4‬سنوات ولونها أزرق ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫ الهداف‬/11 ‫المركبة‬

Brand = ford millage = 30000 , age = 4m colour = blue 1 solution

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫لكن عادة ل يبحث شخص عن عربة بسعر معين‬ ‫ولكن يبحث عن عربة بسعر ل يزيد عن مبلغ‬ ‫معين ‪ .‬لهذا سيعدل الهدف للتي ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫هدف‬ ‫عرب ة (أي مودي ل‪ ،‬أ ي مس افة‪ ،‬أ ي عم ر‪ ،‬أي‬ ‫لون‪ ،‬أي سعر ) والسعر أقل من ‪35000‬‬ ‫‪Goal‬‬ ‫(‪Car ) brand , millage , age , coluor , price‬‬ ‫‪And price > 35000‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫س تكون الجاب ة عل ى هذا الهدف ه ي عربة‬ ‫الداتسون لنها العربة الوحيدة التي تحقق شرط‬ ‫الس عر أق ل م ن ‪ 350000‬وس يخرج البرنامج‬ ‫البيانات التالية ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫ الهداف‬/11 ‫المركبة‬

Brand = datsun millage = 20000, age = 3, colour = red , price = 300000 1 solution

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫إذا كنا لنرغ ب في ك ل هذه ال بيانات عند إخراج‬ ‫الحل بل فقط نريد على سبيل المثال عمر العربة‬ ‫إضافة للسعر يمكن ذلك بتعديل الهدف على النحو‬ ‫التالي ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫‪Goal‬‬ ‫‪Car ) _ , _ , age, _ , price( and price> 35000‬‬ ‫‪age = 3 , price = 200000‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫من هذا نلحظ أننا إذا وضعنا علمة ( _ ) في‬ ‫مكان متغي ر يعن ى هذا أ ن ذل ك المتغير مطلوب ‪.‬‬ ‫وهذه العلمة إذا أستخدمت في الحقائق تعنى أن‬ ‫الشيء الذي وضعت في مكانه شيء عام مثل ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫مثال (‪: )9‬‬ ‫ماذا تعني الحقائق التالية ‪:‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬

‫يرغب ( _ ‪ ،‬كرة القدم )‬ ‫يأكل ( _ ‪ ،‬خبزا )‬ ‫يغسل ( _ )‬ ‫يمتلك ( _ ‪ ،‬ملبسا )‬

‫(‪likes ) _ , foot ball‬‬ ‫(‪Eats ) _ , bread‬‬ ‫( _ ) ‪Washes‬‬ ‫(‪Owns ) _ , clothes‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫‪ .1‬يعنى ذلك أن كل الطلب يحبون كرة القدم ‪.‬‬ ‫‪ .2‬يعنى أن كل الناس يأكلون الخبر ‪.‬‬ ‫‪ .3‬يعنى أن كل الناس يغسلون ملبسهم ‪.‬‬ ‫‪ .4‬يعنى أن كل شخص يمتلك ملبسا وهكذا ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫مثال (‪: )10‬‬ ‫إختيار زوج المباراة ‪:‬‬

domains pupil = symbol age = integer predicates player ) pupil , age ( clauses player ) sami , 9 ( player ) isam , 10 ( player ) ali , 9 ( player ) omer , 9 ( player ) ahmed , 10 (

‫المجالت‬ ‫تلميذ = رمزي‬ ‫عمر = رقمي‬ ‫التحققات‬ ) ‫ عمر‬، ‫اللعب ( تلميذ‬ ‫العبارات‬ ) 9 ، ‫اللعب ( سامي‬ ) 10 ، ‫اللعب ( عصام‬ ) 9 ، ‫اللعب ( عمر‬ ) 9 ، ‫اللعب (علي‬ ) 10 ، ‫اللعب ( أحمد‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫فإذا أردن ا م ن ال برنامج إخراج ك ل تلميذي ن في‬ ‫عمر واحد ليتبارا في لعبة معينة فإن ذلك متاح‬ ‫في لغة برولوق على النحو التالي ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫(‪player ) pupil1 , 9( and ) pupil2 , 9‬‬ ‫‪and pupil2 >< pupil1‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫اللعب (التلميذ‪ )9 ،‬واللعب (التلميذ الثاني‪)9 ،‬‬ ‫بحي ث ل يكون التلمي ذ الول ه و نف س التلميذ‬ ‫الثاني ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫س يقوم ال برنامج بالبح ث ع ن التلميذ الول الذي‬ ‫عمره تمسع سنوات وسيجد أول من يحقق ذلك‬ ‫التلمي ذ س امي ث م يبح ث ع ن التلمي ذ الثاني الذي‬ ‫عمره تسع سنوات وسيجد أول من يحقق ذلك‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫كذل ك التلمي ذ س امي ولك ن س يجد أ ن سامي ل‬ ‫يحقق الشرط الثالث وهو أل يكون التلميذ الول‬ ‫هو نف س التلمي ذ الثان ي لذا س يقوم البرنامج‬ ‫بالبح ث ع ن تلمي ذ آخ ر غي ر س امي وسيجد أول‬ ‫من يحقق شرط العمر لتسع سنوات ويختلف عن‬ ‫سامي هو التلميذ علي‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫بهذا يكون علي هو أحد الحلول ثم يواصل البرنامج‬ ‫للبح ث ع ن تلمي ذ آخ ر يحق ق شرط العم ر تسع‬ ‫سنوات ويختلف عن سامي وسيجد أن عمر يحقق‬ ‫هذي ن الشرطي ن بع د ذل ك يبدأ البرنامج بتكرار‬ ‫الختبارات التي عمله ا م ع س امي مع عل ي ثم مع‬ ‫عمر وستكون النتيجة النهائية على النحو التالي‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫ الهداف‬/11 ‫المركبة‬

pupil1 = sami pupil1 = sami pupil1 = ali pupil1 = ali pupil1 = omer pupil1 = omer

, , , , , ,

pupil2 = ali pupil2 = omer pupil2 = sami pupil2 = omer pupil2 = sami pupil2 = ali

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫وإذا عملنا اختبارا آخرا وهو أن يلعب عمر ‪ 9‬مع‬ ‫عمر ‪10‬‬ ‫(‪player ) pupil1 , 9( and ) pupil2 , 10‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫ الهداف‬/11 ‫المركبة‬

‫ستكون الجابة‬ pupil1 = sami , pupil2 = ahmed pupil1 = ali , pupil2 = ahmed pupil1 = omer , pupil2 = ahmed

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫مثال (‪: )11‬‬ ‫برنامج الشجرة العائلية وصلة القرابة ‪:‬‬ ‫مباشرة ه ي الب والم والج د والجدة والعم‬ ‫والعم ة والخال والخال ة والخ والخ ت والقرابة‬ ‫دائما بين شخصين‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫مثال (‪: )11‬‬ ‫برنامج الشجرة العائلية وصلة القرابة ‪:‬‬ ‫فقرابة البوة بين الب وولده وقرابة الخالة بين‬ ‫الخالة وأبن أختها أو بنت اختها وهكذا ‪ .‬يمكن‬ ‫تفص يل هذه العلقات لوص ف الشجرة العائلية‬ ‫بلغة برولوق على النحو التالي ‪:‬‬

/* family program */ domains person = symbol predicates male ) person( female ) person( female ) person( mother ) person , person(

father ) person , person( brother ) person , person( sister ) person , person( uncle ) person , person( aunt ) person , person( uncle1 ) person , person( aunt1 ) person , person( grand_father ) person , person(

grand_mother ) person , person( parent ) person , person( Clauses male ) ali ( male ) gafer ( male ) bakri ( male ) eisa ( female ) batol ( female ) fatma (

female ) maria ( female ) samia ( mother ) samia , batol ( mother ) ali , samia ( father ) ali , bakri ( father ) batol , gafer ( father ) maria , ali ( father ) fatma , bakri (

‫‪ */‬برنامج شجرة العائلية *‪/‬‬ ‫المجالت‬ ‫شخص = رمزي‬ ‫التحققات‬ ‫ذكر (شخص)‬ ‫أنثى (شخص)‬ ‫أم (شخص و شخصين )‬ ‫أب (شخص و شخصين )‬ ‫أخ (شخص و شخصين )‬

‫أخت (شخص و شخصين )‬ ‫عم (شخص و شخصين )‬ ‫عمة (شخص و شخصين )‬ ‫خال (شخص و شخصين )‬ ‫خالة (شخص و شخصين )‬ ‫جد (شخص و شخصين )‬ ‫جدة (شخص و شخصين )‬ ‫والد (شخص و شخصين )‬

‫العبارات‬ ‫ذكر (علي )‬ ‫ذكر ( جعفر )‬ ‫ذكر (بكري )‬ ‫ذكر ( عيسي )‬ ‫أنثي ( بتول )‬ ‫أنثي ( فاطمة )‬ ‫أنثي ( ماريا )‬ ‫أنثي ( سامية )‬

‫أم ( سامية ‪ ،‬بتول )‬ ‫أم ( علي ‪ ،‬سامية )‬ ‫أب ( علي ‪ ،‬بكري )‬ ‫أب ( بتول جعفر )‬ ‫أب ( ماريا ‪ ،‬علي )‬ ‫أب ( فاطمة ‪ ،‬بكري )‬

)parent ) X , Y( if mother )X , Y( or father )X,Y brother ) X , Y( if male )Y( and parent )X,P( and parent )Y , P( and X >< Y sister ) X , Y( if female )Y( and parent )X,P( and parent )Y , P( and X >< Y uncle ) X , Y( if male )Y( and father )X,P( and brother )Y , P( aunt ) X , Y( if female )Y( and father )X,P( and brother )Y , P(

uncle1 )X , Y( if male )Y( and mother )X,P( and sister )Y , P( aunt1 )X , Y( if female )Y( and mother )X,P( and sister )Y , P( grand_father )X , Y( if parent )X , P( and father )P , Y( grand_mother )X , Y( if parent )X , P( and father )P , Y(

‫والد (س ‪ ،‬ص ) إذا كان أم ( س ‪ ،‬ص ) أو أب ( س ‪ ،‬ص )‬ ‫أخ ( س ‪ ،‬ص ) إذا كان ذكر (ص) ووالد ( س ‪ ،‬ع ) ووالد‬ ‫(ص‪،‬ع) و س تختلف عن ص‬ ‫أخت ( س ‪ ،‬ص ) إذا كانت انثي (ص) ووالد ( س ‪ ،‬ع ) ووالد‬ ‫(ص ‪ ،‬ع) و س تختلف عن ص ‪.‬‬ ‫عم (س ‪ ،‬ص ) إذ كان ذكر (ص) وأب (س ‪ ،‬ع ) وأخ (ص ‪ ،‬ع)‪.‬‬ ‫عمة (س ‪ ،‬ص) إذا كانت أخت (ص) وأب (س‪،‬ع) وأخ ( ص‪،‬ع)‪.‬‬ ‫خال (س ‪ ،‬ص ) إذا كان ذكر (ص) وأم (س‪،‬ع) وأخت (ص ‪،‬ع) ‪.‬‬

‫خالة (س ‪،‬ص) إذا كانت أخت (ص) وأم (س‪،‬ع) وأخت (ص ‪،‬ع)‪.‬‬ ‫جد (س ‪،‬ص) إذا كان والد (س ‪ ،‬ع ) وأب (ص ‪ ،‬ع ) ‪.‬‬ ‫جدة (س ‪ ،‬ص ) إذا كان والد (س ‪ ،‬ع ) أم ( ص ‪ ،‬ع ) ‪.‬‬

‫إذا بدأنا في الستفسار عن لعض العلقات سيرد‬ ‫ال برنامج حس ب م ا ه و متاح ل ه م ن معلومات ثم‬ ‫تعريفها له في جزء العبارات مثل‬

‫الذكاء الصطناعي ولغة برولوق‬

‫ الهداف‬/11 ‫المركبة‬

Goal Grand_father) maria , Gf ( Gf = bakri 1 solution

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫هدف‬ ‫جد ( ماريا ‪ ،‬جد )‬ ‫الجد = بكري‬ ‫حل واحد‬ ‫أجاب البرنامج بأن جد ماريا هو بكري ول يوجد‬ ‫جد آخر حسب المعلومات المتاحة لدى البرنامج ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫‪Goal‬‬ ‫هدف‬ ‫اخت (علي ‪ ،‬الخت) ( ‪Sister ) ali , Sis‬‬ ‫‪Sis = fatima‬‬ ‫الخت = فاطمة‬ ‫‪1 solution‬‬ ‫حل واحد‬ ‫أجاب البرنامج بأن أخت علي هي فاطمة ول‬ ‫توجد أخت أخرى لعلي حسب ما هو متاح من‬ ‫معلومات للبرنامج ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫معلومة ‪:‬‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫‪ .1‬تتيح لغة البرولوق إمكانية كتابة الملحظات‬ ‫أو التعليقات إذا ‪:‬‬ ‫‪ ‬وضعت بين علمتي ‪. /* */‬‬ ‫‪ ‬وضعت علمة ‪ %‬عند بداية السطر وتنتهي‬ ‫الملحظة أو التعليق بنهاية السطر ‪.‬‬ ‫‪ .2‬يتبع الهدف ( ‪ ) Goal‬علمة (‪):‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫مثال (‪: )12‬‬ ‫برنامج التوصل إلي القاتل ‪:‬‬ ‫لق د ت م اغتي ل س هام ف ي مطع م بالس وق‪ ،‬وقد‬ ‫شاه د بع ض الفراد بع د عملي ة القتل مباشرة‪،‬‬ ‫وبدأت الشرطة في التحري لمعرفة القاتل ‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫التوصل إلي القاتل ‪:‬‬ ‫برنامج(‪: )12‬‬ ‫مثال‬ ‫فجمع ت معلومات ع ن الوس يلة الت ي يمك ن أن‬ ‫تكون قد أستخدمت في تنفيذ عملية القتل‪ ،‬وهل‬ ‫هذه الوس يلة يمك ن أ ن تكون ف ي ي د أ ي من‬ ‫المشبوهي ن م ن جان ب آخ ر تحري الشرط ة عن‬ ‫علقات سهام بالمشبوهين‪،‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫القاتل ‪:‬المشبوهين لقتل سهام‬ ‫لي من‬ ‫هناك‬ ‫وهل‬ ‫دوافعإلي‬ ‫التوصل‬ ‫برنامج‬ ‫(‪: )12‬‬ ‫مثال‬ ‫وحي ث أ ن هذه المعلومات يمك ن أ ن تكون شائكة‬ ‫ومعقدة ‪ .‬تم اس تخدام الحاس وب للمس اعدة في‬ ‫الوصول للقاتل وكانت اللغة المناسبة التي يمكن‬ ‫التخاطب بها مع الحاسوب هي لغة برولوق ولهذا‬ ‫الغرض قام الضاب ط الشرط ي بكتاب ة البرنامج‬ ‫التالي ‪:‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫أخراج ال برنامج بأ ن المته م الرئي س هو عمار‬ ‫للسباب التالية ‪:‬‬ ‫أول ‪ :‬أن سهام قتلت بضربة عصا غليظة وهذه‬ ‫يشبه أن تكون قد ضربت بحائط الكافتريا أو‬ ‫بالبوت ولما كان علي يمتلك بوت ويمتلك عمار‬ ‫رجل خشبية من هذا كانا أكثر شبهة من الخرين‪.‬‬

‫الذكاء الصطناعي ولغة برولوق‬

‫‪ /11‬الهداف‬ ‫المركبة‬

‫ثانيا ‪ :‬يمكن أن يكون الفاتح متهما بالقتل بضرب‬ ‫سهام مع حائط الكافتريا بغرض سرقة مالها ‪.‬‬ ‫ثالثا ‪ :‬بما أن هنالك إشكال بين عمار وسهام وأن‬ ‫سهام قد قتلت بعصا غليظة يكون أقرب المتهمين‬ ‫هو عمار ‪.‬‬

‫‪ */‬برنامج شجرة العائلية *‪/‬‬ ‫المجالت‬ ‫السم = رمزي‬ ‫العمر = رقمي‬ ‫النوع = رمزي‬ ‫الدافع = رمزي‬ ‫العلمة = رمزي‬ ‫السلح = رمزي‬ ‫النشاط = رمزي‬

‫التحققات‬ ‫شخص ( السم‪ ،‬العمر‪ ،‬النوع‪ ،‬النشاط)‬ ‫إشكال ( السم ‪ ،‬السم )‬ ‫قتل ( السم ‪ ،‬السلح )‬ ‫علمة ( اسم ‪ ،‬علمة )‬ ‫دافع ( الدافع )‬ ‫يمتلك ( السم ‪ ،‬السلح )‬ ‫يحتمل أن يملك ( السم ‪ ،‬السلح )‬ ‫يؤثر مثل الخر ( السلح ‪ ،‬السلح )‬ ‫المتهم ( السم )‬

‫العبارات‬ ‫شخص ( علي ‪ ، 25 ،‬ذكر ‪ ،‬لعب كرة )‬ ‫شخص ( علي ‪ ، 25 ،‬ذكر ‪ ،‬جزار )‬ ‫شخص ( فاطمة ‪ ، 20 ،‬أنثي ‪ ،‬كوفير )‬ ‫شخص ( عمار ‪ ، 25 ،‬ذكر ‪ ،‬نجار )‬ ‫شخص ( فاتح ‪ ، 25 ،‬ذكر نشال )‬ ‫إشكال ( فاطمة ‪ ،‬فاتح )‬ ‫إشكال ( فاطمة ‪ ،‬عمار )‬ ‫إشكال ( سهام ‪ ،‬عمار )‬

‫العبارات‬ ‫قتل ( سهام ‪ ،‬عصا غليظة )‬ ‫الدافع ( المال )‬ ‫الدافع ( المشاكل )‬ ‫علمة ( سامية ‪ ،‬دم )‬ ‫علمة ( علي ‪ ،‬طين )‬ ‫يمتلك ( عمار ‪ ،‬رجل خشبية )‬ ‫يمتلك ( الفاتح ‪ ،‬مسدس )‬

‫*‪ /‬معلومات خلفية *‪/‬‬ ‫له نفس الثر ( رجل خشبية ‪ ،‬كافتريا )‬ ‫له نفس الثر ( كافتريا ‪ ،‬قهوة )‬ ‫له نفس الثر ( المقص ‪ ،‬المطوة )‬ ‫له نفس الثر ( البوت ‪ ،‬الكافتريا )‬ ‫يمتلك ( س ‪ ،‬بوت ) إذا كان شخص (س ‪، - ، - ،‬‬ ‫لعب كرة )‬ ‫يمتلك (س‪ ،‬مقص) إذا كان شخص (س‪ ،- ،- ،‬كوافير )‬ ‫يمتلك ( س ‪ ،‬شيئاً ) إذا كان يحتمل أن يمتلك (س‪،‬شيئاً)‬

‫هدف‬ ‫‪ */‬إتهم من يملك سلحاً يمكن أن تكون قد قتلت‬ ‫به سهام * ‪/‬‬ ‫إتهم (س) إذا كان قتل (سهام ‪ ،‬السلح ) وله‬ ‫نفس الثر (ص ‪ ،‬السلح)‬ ‫س = عمار‬ ‫حل واحد‬

‫‪ */‬إتهم أولئك الشخاص الذين لديهم مشاكل مع‬ ‫سهام * ‪/‬‬ ‫هدف‬ ‫إتهم (س) إذا كان دافع (المشاكل) وشخص‬ ‫(س‪ ) - ، - ، - ،‬واشكال ( سهام ‪ ،‬س )‬ ‫س = عمار‬ ‫حل واحد‬

‫الملح‬ ‫ق‬

‫الملحق ‪:‬‬ ‫حلقة ‪...For‬‬

‫‪Do‬‬

‫نستخدم هذا النمط من الحلقات التكرارية إذا‬ ‫كان معلوماً لدينا مسبقاً عدد المرات التي نريد‬ ‫فيها تكرار العمل ‪.‬‬

‫الملح‬ ‫ق‬

‫الصيغة العامة‬ ‫>=‪ <:‬متغير‬ ‫‪ < to [Downto‬القيمة البتدائية للمتغير‬ ‫> ‪[For‬‬ ‫للمتغير‪do‬‬ ‫القيمة النهائية >‬ ‫<‬ ‫< عبارات بسيطة او مركبة >‬

‫الملح‬ ‫ق‬

‫العبارة المركبة هي التي تتألف من عدد من‬ ‫العبارات البسيطة وينبغي ان تنحصر بين‬ ‫‪;Begin‬‬ ‫‪….‬‬ ‫‪End‬‬

‫الملح‬ ‫ق‬

‫حلقة ‪...Repeat‬‬

‫‪Until‬‬

‫نستخدم هذا النمط من الحلقات التكرارية إذا‬ ‫كان تكرار العمل يتوقف علي شرط معين ‪.‬‬

‫الملح‬ ‫ق‬

‫الصيغة العامة‬ ‫<‬

‫أي تتابع‬ ‫مركبة‬ ‫عبارات بسيطة‬ ‫‪Until‬او<‬

‫‪Repeat‬‬ ‫>‬ ‫>‬

Related Documents

0000
May 2020 3
0000
April 2020 3
0000
November 2019 2
0000
June 2020 1
0000
December 2019 3
0000.docx
December 2019 22