كنترل جريان محاسبات
MATLAB داراي چندين تركيب كنترل جريان محاسبات است كه به برنامه امكان مي دهد كه در حين اجرا تصميمات لازم را اتخاذ كرده و ترتيب اجراي دستورات را كنترل كند. اين دستورها در زير شرح داده مي شوند.
دستور if برنامه را قادر مي سازد كه تصميم بگيرد كه چه دستورهايي بايد اجرا گردند. مثال:
x = input(‘ x = ‘);
if x >= 0
y=x^2
end
عبارتي كه به دنبال كلمه if مي آيد بايد يك عبارت منطقي باشد. در صورت درست بودن اين عبارت منطقي، دستورهايي كه در سطرهاي بين end و if قرار دارند بترتيب اجرا مي گردند و در صورت نادرست بودن اين عبارت منطقي، دستورهاي گفته شده ناديده گرفته مي شوند.
شما همچنين مي توانيد از دستور else استفاده كنيد. مثال:
x = input(‘ x = ‘);
if x >= 0
y=x^2
else
y=-x^2
end
در اين حالت اگر عبارت منطقي مورد نظر درست باشد، مجموعه دستورهاي بين else و if اجرا مي گردند و در غير اين صورت دستورهاي بين end و else قابل اجرا مي باشند.
دستور for به برنامه اجازه مي دهد كه دستورهاي درج شده بين end و for را به دفعات معيني تكرار نمايد. مثال:
k = 0;
for x = 0:0.2:1
k = k + 1
y = exp(-x)
end
در مواردي كه لازم باشد كه در حين اجراي برنامه مجموعه اي از دستورات تكرار گردند ولي تعداد دفعات تكرار معلوم نباشد بلكه اين عمليات تا ارضا شدن شرط يا شروط معيني ادامه يابند، مي توان از دستور while استفاده نمود. مثال:
x = 0;
while x < 1
y = sin(x)
x = x + 0.1;
end
همانند آنچه در مورد دستور if گفته شد، عبارتي كه به دنبال كلمه while مي آيد بايد يك عبارت منطقي باشد كه در واقع همان شرط مورد نظر است. در صورت صادق بودن اين عبارت منطقي، دستورهايي كه در سطرهاي بين end و while قرار دارند بترتيب اجرا مي گردند تا آنجايي كه شرط مورد نظر ديگر برقرار نباشد.
وقتي كه لازم باشد كه برنامه بر حسب مقادير مختلف يك متغير، متناظرا” دستورهاي متفاوتي را اجرا كند، بكار بردن تركيب switch-case راحت تر از بكار بردن چندين دستور if متداخل است. مثال:
a = input(‘a =’);
switch a
case 1
disp(‘One’)
case 2
disp(‘Two’)
case 3
disp(‘Three’)
end
شما مي توانيد در صورت لزوم قبل از كامل شدن حلقه به كمك دستور break از آن خارج شويد.
هنگامي كه برنامه در حين اجرا به دستور pause برسد متوقف مي ماند ا اينكه شما كليدي را روي صفحه كليد فشار دهيد و سپس اجراي برنامه از دستور بعد از pause ادامه مي يابد. مثال:
k = 0;
for x = 0:0.2:1
if k > 5
disp(‘k > 5’)
break
end
k = k + 1;
y = exp(-x);
disp([‘ k = ‘,num2str(k),’ y = ‘,num2str(y)])
pause
end
در مثال فوق، برنامه هر بار پس از نشان دادن مقادير y و k متوقف مي ماند تا اينكه كليدي روي صفحه كليد فشرده شود. سپس حلقه for بار ديگر تكرار مي گردد و اين عمل آنقدر ادامه مي يابد تا اينكه مقدار k از ٥ بيشتر شود.
در اين موقع دستور break باعث خروج برنامه از حلقه for ( و در اين مثال پايان اجراي برنامه) مي شود.