You are on page 1of 16

‫‪23‬‬

‫علوم الحاسوب‬
‫الباب الثاني‬
‫بنائيات البيانات‬

‫مصفوفة السجلت‬
‫حصة رقم (‪)23‬‬
‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬

‫تعّـريـف‪-:‬‬

‫هي بنائية بيانات مركبة وهى عبارة عن‬


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

‫مثـــال (‪-:)1‬‬
‫الشكل التـي يوضح بنائية مصفوفة سجلت‬
‫الطلب‪.‬‬
‫سجل طالب‬

‫= ‪A3x3‬‬ ‫سجل طالب‬


‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬

‫مـلحظــة‪-:‬‬

‫تحايلت لغة باسكال على المصفوفة بجعل وحداتها‬


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

‫العلن عن مصفوفة السجـلت(كنوع بيانى جديد)‪:‬‬

‫يتم العلن عن مصفوفة السجلت بإستخدام الكلمة‬


‫المحجوزة (‪ )Type‬و تعريف حقول أحد السجلت‪.‬‬
‫ثم نحجز عن المصفوفة‪.‬‬
‫مثـــال(‪-:)1‬‬
‫أعلن عن مصفوفة تحتوى على ‪ 30‬سجل عامل‬
‫بإسـتخدام ـتعليمات ـلغـة ـباسـكال‪ .‬حيث ـيحتوى‬
‫سجل العامل على‪:‬‬
‫(‪)30‬‬ ‫السـم ـ ـ ـ‪:‬‬
‫حرف‪.‬‬
‫(‪ )40‬حرف‪.‬‬ ‫العنـوان ‪:‬‬
‫رقمى‪.‬‬ ‫العمـر ‪:‬‬
‫المـرتـب ‪ :‬حقيقى‪.‬‬
‫بنائيات البيانات‬
23 ‫مصفوفة‬
‫السجلت‬
Type
Laborer = record;
:‫الحـــل‬
Name: array [1..30] of char;
Address: array [1..40] of char;
Age: integer;
Salary: real;
Degree: array[1..20] of char;
End;
VAR
Lab: array[1..30] of Laborer;
‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬

‫* عدد مواقع تخزين مصفوفة السجلت فى الذاكرة‪:‬‬

‫عدد مواقع تخزين مصفوفة السجلت =‬


‫عدد مواقع السجل×عدد السجلت‬
‫بنائيات البيانات‬
23 ‫مصفوفة‬
‫السجلت‬
Type
Laborer = record;
‫عدد مواقع‬
Name: array [1..30] of char; -:‫السابق‬
‫للمثــالمصفوفة‬
‫تخزين‬
Address: array [1..40] of char;
Age: integer; = ‫السجلت‬
Salary: real;
Degree: array[1..20] of char; =92×30
End;
VAR ‫ مـوقـع‬2760
Lab: array[1..30] of Laborer;
‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬

‫مثـال (‪-:)2‬‬

‫لتكـن ـلدينـا ـالبنائيـة ـأدناهــ ـلعدد ـخمسـة ـمن‬


‫الموظفين فى منشأة ما‪.‬‬
‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬

‫العمـر المرتب الساسي العلوة المرتب الكلي‬ ‫السـم‬ ‫الرقـم‬


‫‪340‬‬ ‫‪40‬‬ ‫‪300‬‬ ‫‪30‬‬ ‫محمد أحمد‬ ‫‪1‬‬
‫‪405‬‬ ‫‪70‬‬ ‫‪335‬‬ ‫‪25‬‬ ‫خالد على‬ ‫‪2‬‬
‫‪275‬‬ ‫‪50‬‬ ‫‪225‬‬ ‫‪28‬‬ ‫عصام النور‬ ‫‪3‬‬
‫‪215‬‬ ‫‪35‬‬ ‫‪180‬‬ ‫‪29‬‬ ‫عمر على‬ ‫‪4‬‬
‫‪230‬‬ ‫‪55‬‬ ‫‪175‬‬ ‫‪35‬‬ ‫أبو بكرحسن‬ ‫‪5‬‬
‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬
‫‪ /1‬سمّ البنائية أدناهـ ؟‬
‫العمـر المرتب الساسي العلوة المرتب الكلي‬ ‫السـم‬ ‫الرقـم‬
‫‪340‬‬ ‫‪40‬‬ ‫‪300‬‬ ‫‪30‬‬ ‫محمد أحمد‬ ‫‪1‬‬
‫‪405‬‬ ‫‪70‬‬ ‫‪335‬‬ ‫‪25‬‬ ‫خالد على‬ ‫‪2‬‬
‫‪275‬‬ ‫‪50‬‬ ‫‪225‬‬ ‫‪28‬‬ ‫عصام النور‬ ‫‪3‬‬
‫‪215‬‬ ‫‪35‬‬ ‫‪180‬‬ ‫‪29‬‬ ‫عمر على‬ ‫‪4‬‬
‫‪230‬‬ ‫‪55‬‬ ‫‪175‬‬ ‫‪35‬‬ ‫أبو بكرحسن‬ ‫‪5‬‬

‫بنائية مصفوفة السجلت ‪.‬‬


‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬
‫العمـر المرتب الساسي العلوة المرتب الكلي‬ ‫السـم‬ ‫الرقـم‬
‫‪Type‬‬
‫ـلغة‬‫ـ‬ ‫ـتخدام‬
‫ـ‬ ‫ـبإس‬
‫ـ‬ ‫ـ‬ ‫ـأعلهـ‬
‫ـ‬ ‫ـة‬
‫ـ‬ ‫ـالبنائي‬
‫ـ‬ ‫ـن‬
‫ـ‬ ‫ـع‬
‫ـ‬ ‫ـن‬
‫ـ‬ ‫أعل‬ ‫‪/2‬‬
‫‪Employee= record.‬‬ ‫باسكال؟‬
‫;‪Name: array[1..50] of char‬‬
‫;‪Age: integer‬‬
‫;‪Basic-salary: integer‬‬
‫;‪Bonus: integer‬‬
‫;‪Total-salary: real‬‬
‫;‪End‬‬
‫‪VAR‬‬
‫;‪Emp: array[1..5] of Employee‬‬
‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬
‫‪Type‬‬
‫‪ /3‬جد عدد مواقع التخزين البنائية أعلهـ ‪-:‬‬
‫‪Employee= record.‬‬
‫;‪Name: array[1..50] of char‬‬
‫;‪Age: integer‬‬ ‫عدد المواقع فى الذاكرة =‬
‫عدد السجلت × عدد مواقع تخزين السجل الواحد‪.‬‬
‫;‪Basic-salary: integer‬‬
‫;‪Bonus: integer‬‬
‫;‪Total-salary: real‬‬
‫;‪End‬‬ ‫= ‪ 275 = 55 ×5‬موقع‪.‬‬
‫‪VAR‬‬
‫;‪Emp: array[1..5] of Employee‬‬
‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬
‫‪Type‬‬
‫‪Employee= record.‬‬
‫الكلي‬ ‫]‪array[1..50‬المرتب‬
‫الساسي العلوة‬ ‫العمـر المرتب‬ ‫السـم‬ ‫الرقـم‬
‫‪ /4‬ماذا يحتوى الموقع رقم ‪ 212‬إذا عُلم أن‬
‫‪Name:‬‬ ‫;‪of char‬‬
‫;‪340 integer‬‬
‫‪Age:‬‬ ‫‪40‬‬ ‫‪300‬‬ ‫‪30‬‬ ‫محمد أحمد‬ ‫‪1‬‬
‫‪Basic-salary:‬‬
‫‪405‬‬ ‫الموقع الساس بالذاكرة هو ‪.50‬‬
‫;‪70 integer‬‬
‫‪335‬‬ ‫‪25‬‬ ‫خالد على‬ ‫‪2‬‬
‫;‪Bonus: integer‬‬
‫‪275‬‬ ‫‪50‬‬ ‫‪225‬‬ ‫‪28‬‬ ‫عصام النور‬ ‫‪3‬‬
‫;‪Total-salary: real‬‬
‫‪215‬‬
‫;‪End‬‬ ‫‪35‬‬ ‫‪180‬‬ ‫‪29‬‬ ‫عمر على‬ ‫‪4‬‬
‫‪VAR‬‬
‫‪230‬‬ ‫‪55‬‬ ‫‪175‬‬ ‫‪35‬‬ ‫أبو بكرحسن‬ ‫‪5‬‬
‫;‪Emp: array[1..5] of Employee‬‬
‫يحتوى على المرتب الكلى للموظف عصام‪.‬‬
‫بنائيات البيانات‬
‫‪23‬‬ ‫مصفوفة‬
‫السجلت‬

‫نهاية الحصة رقم‬


‫(‪)23‬‬