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

ايعازات الادخال و الاخراج في ماتلاب

الكلية كلية العلوم للبنات     القسم قسم الحاسبات     المرحلة 4
أستاذ المادة نور كاظم ايوب مهدي المهدي       08/01/2016 19:19:33
ايعازات الأدخال و الأخراج في MATLAB
?نّ أي لغة لابد أن توفر عدد من طرق لقراءة و طباعة البيانات و فيما يلي أهم طرق الأدخال و الأخراج في ماتلاب:

1- الأيعاز input : ويستخدم لادخال البيانات عن طرق شاشة الاوامر له صيغتان :

الصيغة الأولى تستخدم لقراءة المتغيّرات العددية:

var_name = input ( text )

حيث أنّ :-
-Var_name يمثل اسم المتغيّر المقروء :
- Text يمثل رسالة لتوضيح ماهية البيانات المقروءة .
:-
X= input ( enter the first number );
?نّ هذا الايعاز يتسبب في قطع تنفيذ البرنامج لل?نتقال الى شاشة الاوامر حيث تظهر هناك الرسالة التوضيحية و نلاحظ ظهور المؤشر في نهايتها ينتظر من المستخدم أن يدخل القيمة المطلوبة , و عندما يضغط المستخدم على مفتاح (enter) يتم ?حلال هذه القيمة في المتغيّر المقروء (X).

الصيغة الثانية تستخدم لقراءة الحروف و السلاسل و الحرف sالوارد في الصيغة يوعز الى ماتلاب بأنّ المتغيّر المقروء من نوع السلاسل او الحروف.

var_name = input ( text , s ) ;

2- الأيعاز disp: و يستخدم لطباعة النتائج و النصوص علة شاشة الاوامر ويكتب بأحدى الصيغ الآتية:-
- الصيغة العامة الآتية تستخدم لطباعة قيمة المتغيّر في الـ command :

Disp (var_name)
:- disp (x)

- الصيغة العامة الآتية تستخدم لطباعة رسالة توضيحية في الـ command :

Disp (‘text’)

:- disp ( hello everybody )
- الصيغة العامة الآتية تستخدم لطباعة قيمة متغيّرمع رسالة توضيحية في آن واحد في شاشة command :

disp ( [ text var_name] )

:- disp ([ my message is h])




?نّ هذه الصيغة من disp غير قادرة على طباعة متغيّر عددي فهي تطبع فقط المتغيّرات من نوع char أو string .

- الصيغة العامة الآتية تحل المشكلة السابقة و تستخدم لطباعة قيمة متغيّر عددي مع رسالة توضيحية في آن واحد في نافذة command :

disp ( [ text num2str ( var_name ) ] )
:-
disp ([ the summation = num2str(s)])



?نّ وضع الفارزة المنقوطة في نهاية الأيعاز disp لا يمنع الطباعة لأنّ تأثير الفارزة المنقوطة يقتصر فقط على عبارات ال?حلال.

?نّ disp يطبع قيمة المتغيّر دون ذكر اسمه,فمثلاً لو قام المستخدم بطباعة الأمر الآتي في شاشة command:

disp(x)
التنفيذ 5

الجدير بالذكر ان هناك طرق اخرى للطباعة بدون استخدام ايعاز disp منها كتابة ايعاز يحوي اسم المتغيّر فقط كما ان عدم وضع فارزة منقوطة بعد عبارة الأحلال كفيل بطباعة نتيجة هذه العبارة .
برنامج جمع عددين !!
هذا البرنامج يقوم بقراءة العددين (x) و (y) ثم يقوم بجمعهما و طباعة النتيجة على نافذةالاوامر :

ويمكن ال?ستغناء عن العبارة الأخيرة و رفع الفارزة المنقوطة في نهاية الأيعاز رقم (3) كما يمكن ال?ستعاضة عن العبارة الأخيرة ب?يعاز يحوي فقط المتغير(z).

تمرين : ما ناتج تنفيذ البرنامج الآتي ؟




الايعازات الشرطية
1- جملة (if) الشرطية
الصيغة العامة :
if exp
Statement1
else
Statement2
end
كما في بقية اللغات ف?نّ جزء else يكون اختياري.
برنامج لقراءة عدد فاذا كان زوجي يطبع كلمة (even) و الا فانه يطبع كلمة (odd)

البرنامج مع التنفيذ موضح في الشكل الاتي :

في هذا التنفيذ ادخل المستخدم العدد (3) و بالتالي قام البرنامج بطباعة كلمة (odd) للدلالة على ان العدد المدخل كان عددا ً فرديا ً . جرّب ادخال العدد 4 ماذا سيكون اخراج البرنامج؟
برنامج يقرا معدل الطالب و يطبع تقديره


2Switch –case
ان الاستخدام المتداخل لجملة (if ) قد يكون مربكا ً في معظم الاحيان لذا فان لغة ماتلاب تطرح بديلا ًعندما يتطلب الامر اختبارات متعددة على متغير واحد كما حدث في البرنامج السابق .. هذا الحل يتمثل في جملة (Switch -case) .


الصيغة العامة :
switch exp
case value1
statement1
case value2
statement2

Case valuen
statementn
otherwise
Statementm
end

حيث أنّ :
exp :متغيّر او تعبير.
Value1..n :القيمة التي يتم مقارنتها مع exp.

تبحث switch عن تتطابق بين exp و value1..n فان وجد تقوم بتنفيذ أيعازات case التي حدث التطابق معها.اذا لم يحدث تطابق بين exp وبين أي case سيتم تطبيق ما بعد otherwise(و ?لا).



برنامج يقرأ رقم الشهر و يطبع عدد ايامه


الان , لو ادخل المستخدم رقم الشهر (2) فسيكون اخراج البرنامج كالاتي :


اما لو ادخل المستخدم رقم الشهر 22 فسيكون رد فعل البرنامج كما مبين في الشكل ادناه:


لاحظ انّ الرسالة هنا طبعت باللون الأحمر و بنفس طريقة طباعة ماتلاب لرسائل الأخطاء و ذلك بتأثير الأيعاز error الذي ظهر في السطر العاشر في البرنامج .

تمرين : اعد حل البرنامج الرابع باستخدام ايعاز (switch) بدلا من (if) المتداخلة.

ايعازات التكرار
1-ايعاز التكرار (While)
الصيغة العامة :
while exp
statements
end
الشرط (Exp) يتحكّم ب?ستمرارية الدوارة فطالما كان الشرط متحقق يتم تنفيذ الايعازات (statements) الموجودة بين while و end.

برنامج ايجاد القاسم المشترك الاعظم بين عددين .


التنفيذ




2-ايعاز التكرار (For)
الصيغة العامة :
For counter=first;step:last
statements
end

حيث أنّ :
Counter : العداد المسيطر على الدوّارة.
First :القيمة ال?بتدائية للعداد.
Step : مقدار الزيادة أو النقصان في قيمة العداد في كل دورة.
Last : القيمة النهائية للعداد.

كيف يعمل ايعاز For ؟!
في البداية , العداد يأخذ القيمة ال?بتدائية First و يقوم MATLAB بتنفيذ الأيعازات الواقعة بين for و end (statements) و في الدورة الثانية يتم مقارنة العداد مع قيمة last للتأكد من توقف الدوّارة او استمراريتها , ف?ذا كان counter ? last فأنّ الدوّارة يجب ان تستمر فيقوم ب?ضافة step الى العداد (counter=counter+step) لل?ستعداد الى الدورة القادمة.
أمّا ?ذا كان counter > last فأنّ الدوّارة يجب ان تتوقف.
في الواقع أنّ ماتلاب يشبه لغة c++ في التعامل مع القيم و نتائج المقارنات المنطقية حيث يعبّر عن false بــ0 و عن true بــ 1.

:-
s=0;
for r=1:3
s=s+r;
end
s

هنا تم الأستغناء عن جزء step في مثل هذه الحالة يفهم ماتلاب أنّ زيادة العداد تكون بمقدار (1), أي أنّ قيم r ستكون 1 ثمّ 2 ثمّ 3 على التوالي اذن ها الكود يقوم بجمع الاعداد من 1 الى 3.
مثال اخر :
s=0;
for r=1:2:9
s=s+r;
end
s

في هذا المثال يتم جمع العداد الفردية من 1 الى 9 بال?ستفادة من العداد الذي تزداد قيمته بمقدار 2 في كل مرة ليعطي العدد الفردي التالي. أنّ قيم r ستكون 1 ثم 3 و 5 و7 و أخيراً 9.
برنامج لايجاد مفكوك عدد و ليكن (n)
ان المفهوم الرياضي للمفكوك n يعني ضرب الاعداد ابتداءً من ى الى 1 و كما يلي:

N!= N × N-1×× N-2 … 1
اي ان العملية عملية ضرب متكررة

تنفيذ البرنامج:

برنامج ايجاد حاصل رفع عدد و ليكن ( (xلقوة مقدارها (n)


التنفيذ


هل العدد x عدد اولي ام لا ؟







التنفيذ




?نّ ماتلاب يستخدم قيماً خاصة للتعبير عن حالات خاصة
مثل :

Inf :قيمة خاصة تشير الى ما لا نهاية.
Nan : قيمة خاصة تشير الى النتائج غير المعروفة.


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