الـتـوابـع


عند كتابة أي برنامج يمكن أن تكون طريقة البرمجة بطريقتين وهما إما أن يكتب البرنامج بشكل مباشر وهذه الطريقة تسمى (script) أو أن ننشئ تابع ونضع ضمنه التعليمات البرمجية اللازمة لتنفيذ البرنامج وهذه الطريقة (function) وهناك عدة فروق بين هاتين الطريقتين نذكر منها :
1-    الـ function يبدأ بكلمة function بينما الـ script يبدأ بالبرنامج مباشرة.
2-    الشكل الافتراضي للكتابة بعد كلمة function هو أن تضع وسطاء الخرج ومن ثم اسم الـ function وبعدها وسطاء الدخل بينما الـ scripts لا يحتاج إلى كل هذا.
3-    يمكنك التابع (function) عند تنفيذه من تغيير وسطاء الدخل بينما لا يكون هذا ممكن في الـscripts .
4-    المتغيرات التي تحسب في داخل الـ function لا تحفظ في الـworkspace  بينما في الـ scripts تحفظ في الـ workspace (أي في لوحة الدخل والخرج الرئيسية لبرنامج الماتلاب).


أمثلة :


مثال 1:
function vals1(a,b,c)
delta = b^2-4*a*c
if delta>0
x1=(-b+sqrt(delta))/(2*a)
x2=(-b-sqrt(delta))/(2*a)
elseif delta<0
disp('the roots are complex')
else
x1_2=(-b/(2*a))
end
برنامج حل معادلة من الدرجة الثانية بشرط أن تكون حلول هذه المعادلة لا تحوي أي عدد
عقدي , نلاحظ أننا انشأنا تابع لحل المعادلة.
إن اسم التابع vals1 هو اختياري للمستخدم ويمكن أن يختار أي اسم يريد , ولكن يجب ملاحظة أنه عند حفظ البرنامج يجب حفظه بنفس اسم التابع , وما بين قوسين هي الدخل اي القيم التي سيقوم المستخدم بإدخالها ولاستدعاء هذا التابع نكتب في ال workspace 
vals1(4,6,2 )
فيعطي :
dalta= 4              x1= - 0.5            x2= - 1
أو بطريقة ثانية نكتب :
a=6    b=8     c=3
vals1(a,b,c)
delta = -8
the roots are complex

_________________________

مثال 2:
function g=sort1(a)
s=length(a);
for i=1:s-1
for j=i+1:s
if a(i)<a(j)
x=a(i);
a(i)=a(j);
a(j)=x;
end
end

end
a
يقوم هذا البرنامج بترتيب عناصر مصفوفة )شعاعية( أي مكونة من سطر واحد ترتيباً تنازلياً
, حيث يقارن هذاالتابع قيمة كل عنصر من المصفوفة مع قيمةالعنصر التالي وبناءً على هذا
الترتيب يقوم بترتيب عناصر من المصفوفة من جديد.
__________________________