از سری آموزش های برنامه نویسی در متلب، این قسمت به آموزش حلقه ها در متلب پرداخته می شود.
ممکن است یک وضعیت وجود داشته باشد که شما نیاز دارید یک کد را چند بار اجرا کنید. به طور کلی، عبارات(معادلات یا هر چیز دیگه ای) به صورت پیوسته اجرا می شوند. اولین عبارت در تابع اول ، به دنبال آن دوم، و به همین ترتیب تا آخر اجرا می گردد. زبان برنامه نویسی ساختارهای مختلف کنترل را فراهم می کند که مسیرهای پیچیده تر را اجرا می کنند. عبارت حلقه اجازه می دهد تا ما یک دستور یا اظهار نظر یا گروهی از اظهارات را چند بار اجرا کنیم. فرم کلی یک عبارت حلقه در بیشتر زبان های برنامه نویسی به صورت زیر است:
MATLAB حالت های مختلف حلقه ارائه می کند. که در ادامه به بررسی تک تک آن ها پرداخته می شود
آموزش برنامه نویسی در متلب: حلقه while در متلب (The while Loop)
حلقه while بارها و بارها بیانیه برنامه (ها) اجرا می کند. تا زمانی که عبارت درست برسد.
یک عبارت درست است وقتی که نتیجه خالی نیست و شامل همه عناصر غیر صفر (منطقی یا عدد واقعی) است. در غیر این صورت، عبارت نادرست است.
مثال:
یک فایل اسکریپتی ایجاد کنید و کد زیر را تایپ کنید:
a = 10; % while loop execution while( a < 20 ) fprintf('value of a: %d\n', a); a = a + 1; end
زمانی که فایل را اجرا کنید نتایج زیر را نشان خواهد داد:
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19
آموزش برنامه نویسی در متلب: حلقه for در متلب (The for Loop)
یک حلقه for یک ساختار کنترل تکرار است که به شما اجازه می دهد تا به صورت صحیح یک حلقه را بنویسید که نیاز به اجرای تعداد خاصی دارید
حالت کلی یک حلقه for loop در متلب به صورت زیر است:
for index = values program statements ... end
مثال ۱:
یک فایل اسکریپتی ایجاد کنید و کد زیر را تایپ کنید
for a = 10:20 fprintf('value of a: %d\n', a); end
پس از اجرای فایل نتیجه زیر را نمایش خواهد داد
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19 value of a: 20
مثال ۲:
یک فایل اسکریپتی ایجاد کنید و کد متلب زیر را تایپ کنید
for a = 1.0: -0.1: 0.0 disp(a) end
پس از اجرای فایل کد متلب، نتیجه زیر به نمایش درخواهد آمد
۱ ۰.۹۰۰۰۰ ۰.۸۰۰۰۰ ۰.۷۰۰۰۰ ۰.۶۰۰۰۰ ۰.۵۰۰۰۰ ۰.۴۰۰۰۰ ۰.۳۰۰۰۰ ۰.۲۰۰۰۰ ۰.۱۰۰۰۰ ۰
مثال ۳:
یک فایل اسکریپتی ایجاد کنید و کد متلب زیر را تایپ کنید
for a = [24,18,17,23,28] disp(a) end
پس از اجرای فایل متلب خواهید دید
۲۴ ۱۸ ۱۷ ۲۳ ۲۸
آموزش برنامه نویسی در متلب: حلقه های تو در تو در متلب (The Nested Loops)
متلب MATLAB اجازه می دهد تا از یک حلقه درون حلقه دیگر استفاده کنید. در بخش های بعد چند نمونه برای نشان دادن مفهوم ارائه خواهد شد.
ترکیب کلی برای یک عبارت loop در متلب MATLAB به صورت زیر است
for m = 1:j for n = 1:k statements; end end
ترکیب دستور برای حلقه while تو در تو به شرح زیر می باشد
while expression1 while expression2 statements end end
مثال۴:
از حلقه تو در تو استفاده کنیم تا تمام اعداد اول را از ۱ تا ۱۰۰ نمایش دهیم. یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ کنید
for i=2:100 for j=2:100 if(~mod(i,j)) break; % if factor found, not prime end end if(j > (i/j)) fprintf('%d is prime\n', i); end end
پس از اجرای فایل متلب، نتیجه زیر به نمایش در خواهد آمد
۲ is prime ۳ is prime ۵ is prime ۷ is prime ۱۱ is prime ۱۳ is prime ۱۷ is prime ۱۹ is prime ۲۳ is prime ۲۹ is prime ۳۱ is prime ۳۷ is prime ۴۱ is prime ۴۳ is prime ۴۷ is prime ۵۳ is prime ۵۹ is prime ۶۱ is prime ۶۷ is prime ۷۱ is prime ۷۳ is prime ۷۹ is prime ۸۳ is prime ۸۹ is prime ۹۷ is prime
آموزش برنامه نویسی در متلب:حالت های کنترل حلقه (Loop Control Statements)
حالت های کنترل حلقه باعث تغییر برنامه از حالت عادی می گردند. هنگامی که اجرا را از یک حوزه خارج می کند، تمام اشتیا (اعداد، رشته ها و…) که در این حوزه تولید می شدند از بین می روند.
متلب از حالت های کنترل به صورت زیر پشتیبانی می کند که در ادامه به توضیح آن ها می پردازیم
-
حالت شکست یا قطع (The break Statement)
حالت شکست یا قطع برای خاتمه دادن به اجرای حلقه های for یا while استفاده می شود. دستورات یا هر هدفی در حلقه بعد از دستور break قرار دارند اجرا نمی شوند.
در حلقه تو در تو، شکستن خروجی تنها از حلقه که در آن رخ می دهد. اتفاق می افتد. و در ادامه حلقه های دیگر خللی ایجاد نمی کند و آن ها مثل حالت بدون break به کار خود ادامه می دهند.
دیاگرام
مثال ۵:
یک فایل اسکریپتی ایجاد کنید و کد متلب زیر را تایپ کنید
a = 10; % while loop execution while (a < 20 ) fprintf('value of a: %d\n', a); a = a+1; if( a > 15) % terminate the loop using break statement break; end end
پس از اجرای فایل
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15
-
حالت ادامه (continue Statement)
حالت ادامه برای انتقال کنترل به تکرار بعدی حلقه for یا while استفاده می شود.
حالت ادامه در متلب MATLAB تا حدودی مانند دستور break کار می کند. با این حال، به جای اینکه مجبور به خاتمه دادن شود، «ادامه»، تکرار حلقه بعدی را انجام می دهد و از هر کد یا دستوری که در در این بین باشد عبور می کند( می پرد).
دیاگرام continue
مثال ۶:
یک فایل اسکریپتی ایجاد کنید و کد متلب زیر را تایپ کنید
a = 9; %while loop execution while a < 20 a = a + 1; if a == 15 % skip the iteration continue; end fprintf('value of a: %d\n', a); end
وقتی برنامه متلب را اجرا کنید نتیجه زیر را نشان خواهد داد
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 16 value of a: 17 value of a: 18 value of a: 19 value of a: 20
4 نظرات
برای شروع برنامه نویسی سایت کدام زبان رو پیشنهاد می کنید
با سلام
با توجه به اینکه حوزه تخصصی ما برنامه نویسی سایت و نرم افزار نیست از جواب دادن به سوال شما معذوریم
سلام، سعی کنید مثالهای متفاوت اضافه کنید، این مثالها عینا در همه منابع ذکر شده و بخاطر سادگی بیش از حد عملا به درد نمیخورد.
سلام
در ادامه و پس از پایان آموزش مقدماتی، مساله های بهتری را حل خواهیم کرد.