انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة

تطبيقات عملي المحاضرة الخامسة :كيفية التعامل مع القيود في ماتلاب

الكلية كلية العلوم للبنات     القسم قسم الحاسبات     المرحلة 4
أستاذ المادة نور كاظم ايوب مهدي المهدي       05/12/2015 18:31:20
5 القيود (Records)

تمتاز قيود ماتلاب بأمكانية اضافة حقول في أي وقت وبسهولة فقط استخدم الصيغة الآتية عند الحاجة الى تكوين قيد جديد او اضافة حقل جديد الى قيد موجود مسبقا:
Record_name .field_name = value

كما تلاحظ فان هذه الصيغة تتكون من 3 اجزاء اساسية :
Record_name- : و يمثل اسم القيد.
- field_name : و يمثل اسم الحقل.
-value : يمثل قيمة ذلك الحقل و يمكن ان تكون قيمة او متغير و يمكن ان تستبدل بأيعاز input لقراءة قيمة الحقل. ويمكن للحقل ان يكون مصفوفة او قيد اخر:

توضيح مثال
تخصيص قيمة ثابتة من نوع (string) Student .name= ALI
تخصيص قيمة ثابتة من نوع (integer) Student.stage= 4
تخصيص قيمة عن طريق القراءة Student .age= input( ادخل عمر الطالب : );
تخصيص مصفوفة الى حقل Student .degree=[100 80 91];
تخصيص قيمة من خلال عملية حسابية Student.no= no+1;

اما اذا كنت بحاجة الى استخدام قيم الحقول فاعتمد على الصيغة الآتية :
Record_name.record_field
مثال:
Student.av= sum(student.degree) / length(student.degree)

1.5 مصفوفة القيود

مصفوفة القيود هي مصفوفة كل موقع فيها يكون قيد و لذلك فان اسم القيد سيرافقه عداد يخبرنا اي القيود سنتعامل معه حاليا , اما الجزء الخاص باسم الحقل و طريقة تخصيص قيمة له و كيفية التعامل معه ستظل دون تغيير امّا اذا كان الحقل هو متجه مثلاً فهذا يستلزم استخدام عداد ثاني للحقل كما في الصيغة:

Record_array(i).record_field(j)
حيث i عداد مصفوفة القيود
J عداد الحقل الذي هو مصفوفة بدوره

2.5 قاعدة بيانات الطلاب في مادة التطبيقات الذكية

لنفرض ان المرحلة تتكون من n من الطلاب ولكل طالب نريد ادخال المعاومات الاتية:
الاسم , التسلسل , المرحلة , ثلاث درجات
هذه المعلومات ستمثل حقول في مصفوفة قيد اسمها r :
for i=1:n
r(i).name=input ( ادخل اسم الطالب , s );
r(i).stage=4;
r(i).No=i;
for j=1:3
r(i).mark(j)=input ( ادخل الدرجة = );
end
disp(char(13));
end
بالتاكيد لابد من قراءة عدد الطلاب (n) قبل الشروع بتطبيق الخطوات اعلاه.

لاحظ ان العبارة disp(char(13)) تعادل enter و تستخدم للنزول الى سطر جديد اثناء الطباعة و ذلك باستخدام شفرة الاسكي لرمز enter و هي 13 من قبل الدالة char التي تحول هذه الشفرة الى رمز enter.

احد اهم المعلومات التي تتعلق بدرجات الطلاب هي معدل الطلاب في المادة (السعي) و الذي يحسب من خلال المعادلة الاتية :

سعي الطالب(AV) =

مجموع الدرجات (s) يمكن ان نحصل عليه من خلال جمع عناصر الحقل mark في مصفوفة القيود r و ذلك من باستخدام الدالة المكتبية sum , اما عدد الدرجات فهو يساوي 3 حيث لدينا ثلاث درجات لكل طالب. و بهذا سوف يتم استحداث حقل جديد لكل طالب و هو حقل المعدل (AV):
for i=1:n
s=sum(r(i).mark);
r(i).av=s/3;
end

يمكن عرض المعلومات المخزونة في المصفوفة r و كذلك عرض أي تغيير يمكن ان يطرأ عليها من خلال طباعة مصفوفة القيود :
for i=1:n
disp( r(i))
end
و باعادة صياغة الاكواد السابقة بشكل دوال سوف نحصل على البرنامج الاتي:

الدالة الرئيسية :



دالة تكوين مصفوفة القيود create) )





دالة حساب معدل الطالب (AV_calculation) :


دالة عرض المصفوفة (show) :


جرّب !!!
ما ناتج استخدام العبارة الاتية disp (r) بدلا من الدوارة المستخدمة في الدالة show؟

3.5 تمارين
بالاضافة الى تنفيذ البرنامج السابق على كل طالب تنفيذ التحديثات التالية على البرنامج:-

1- استحداث الدالة (append) التي تقوم باضافة معلومات طالب جديد.

2- الدالة (modify) التي تقوم بتعديل درجات الطالب و معالجة التغيير الذي يطرأ على معدل الطالب اثر هذا التعديل.

3- اضافة درجتان على السعي لكل طالب.

4- البرنامج السابق يقوم بادراج ثلاث درجات لكل طالب,اعتبر ان هذه الدرجات هي درجات الجزء النظري,قم بتعديل البرنامج لاضافة 3 درجات اخرى تمثل درجات الطالب في الجزء العملي من المادة, ثم اجمع الدرجتين (النظري و العملي) لكل شهر ثم جد سعي الطالب وفق هذه التعديلات.

5- رتب درجات كل طالب ترتيبا تصاعديا

6- عرض معلومات الطالب الذي يمتلك اعلى معدل

7- حساب عدد الناجحين في السعي و كذلك عدد الراسبين .

8- حساب عدد الراسبين و الناجحين في شهر معين .

9- عرض اسماء الطلاب الذي تتخطى معدلاتهم 80.

10- عرض اسماء الطلاب الذين تقل معدلاتهم عن 50.

11- استحداث حقل للغيابات لك طالب يتم تحديثه عند كل غياب جديد لذلك الطالب ليتم خصم درجة عن كل غياب من المعدل .

12- اضافة درجة للطالب الذي امتحن شهرا اضافيا ليصبح عدد الدرجات في حقل mark اربع درجات بدلا من ثلاثة مع معالجة التغيير الذي سوف يطرأ على حقل المعدل لذلك الطالب

13- قم بتعديل دالة السعي بحيث يتم اختيار اعلى درجتين لكل طالب و حساب السعي على هذا الاساس.

14- حذف بيانات طالب انتقل الى جامعة اخرى. لاحظ ان تسلسل الطلاب (حقل No)سوف يتأثر بهذا الاجراء.

15- اضافة 5 درحات على المعدل للطلاب الراسبين في السعي .


المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .