آکادمی سیم پاور

گام نهم: حلقه ها در برنامه نویسی متلب

گام نهم: حلقه ها در برنامه نویسی متلب

ممکن است این موقعیت هنگامی وجود داشته باشد که شما نیاز به اجرای یک بلاک  از تعدادی کد  در زمان دارید. عموماً ، عبارات  به ترتیب اجرا می شوند. اولن عبارت در یک تابع نخست لرا می شود، به دنبال آن دومی، زبان های برنامه نویسی ساختار کنترلی متفاوتی فراهم می کنند که اجازه روش های اجرایی پیچیده را می دهد.

یک عبارت حلقه به ما برای اجرا یک عبارت یا گروه از عبارات چند زمانی اجازه می دهد و در ادامه شکل عمومی  از یک عبارت حلقه است که در اکثر زبان های برنامه نویسی وجود دارد.

396

متلب  انواع حلقه های زیر که رسیدگی به تجهیزات حلقه را دارد را فراهم می کند.

لینک های زیر  جزئیات آن ها را بررسی میکند:

توصیف نوع حلقه
تکرار یک عبارت یا گروهی از عبارات هنگامی که شرط ها درست است.این شرط ها را قبل از اجرای بدنه حلقه اجرا می کند. while loop
اجرای دنباله ای از چندین بار یک  عبارت و  کدهای مدیریت متغیر حلقه را خلاصه می کند. for loop
شما می توانید از یک یا حلقه های بیشتری درون یک حلقه دیگری استفاده نمایید. nested loops

حلقه while

حلقه while loop  اجرای عبارات را زمانی که شرط درست است. اجرا می کند .

نحوه اجرا در متلب:

نحوه اجرا در متلبی از یک حلقه while در متلب است:

397

while loop   تکراری عبارات برنامه را تا زمانیکه عبارات باقی مانده درست است اجرا می کند.

عبارات درست است زمانی که نتیجه خالی نیست و همه عناصر غیر صفر را دربر دارد (اعداد حقیقی و منطقی).در غیر اینصورت عبارات نادرست هستند.

مثال

یک فایل اسکریپت ایجاد نمایید و کد زیر را تایپ کنید:

a = 10;

% while loop execution

while( a < 20 )

  fprintf(‘value of a: %d\n‘, a);

  a = a + 1;

end

زمانی که شما فایل را اجرا نمایید، نتیجه زیر نمایش داده می شود:

398

گام دهم: حلقه تو در تو

متلب  اجازه به استفاده از یک حلقه در یک حلقه دیگر می دهد. در ادامه بخش  تعداد کمی مثال  از این مفهوم را شرح می دهیم.

نحوه اجرا در متلب:

نحوه اجرا در متلب زیر برای عبارت حلقه تودرتو  در زیر آمده است:

402

مثال

به ما اجازه دهید با استفاده از یک حلقه for تو در تو اعداد اول از 1 تا 100 را نمایش دهیم .یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

for i=2:1oo

    for j=2:1oo

       if )~ m<>d)i,j((

           break; % if factor found, not prime

      end

     end

      if (j > (i/j ( )

        fprintf(‘%d is prime\n‘, i);

      end

end

زمانی که شما فایل را اجرا می کنید ، نتایج زیر را نمایش می دهد:

403

عبارت های کنترل حلقه

عبارات کنترل حلقه  اجرا را از ترتیب معمولی تغییر می دهند. هنگامی که اجرا یک حوزه را ترک می کند، متلب کلیه شی ء های خودکار که در آن حوزه ایجاد شده بودند را از بین می برد.

متلب  عبارات کنترلی زیر را پشتیبانی می کند.بر روی لینک های زیر کلیک نمایید و جزئیات آن ها را بررسی نمایید.

توصیف عبارات کنترل
دستورات حلقه را خاتمه دهید و اجرا را سریعاً به ادامه حلقه انتقال دهید. عبارت شکسته
باعث می شود حلقه باقی مانده از بدنه پرش کند و سریعاً مجدد شرایط قبلی را تکرار کند. عبارت متصل

دستورات شکستن برنامه

دستور شکست اجرا را از for  یا  while  پایان می دهد .عبارات در حلقه پس از دستورات شکست اجرا نمی شوند.

در حلقه تو در تو ، شکست تنها از حلقه ای که در آن (شکست) رخ دادهاست ایجاد می شود.

فلوچارت:

404

مثال دستورات شکستن برنامه:

یک فایل اسکریپت ایجاد نمایید و کد زیر را تایپ کنید:

a = 10;

% while loop execution

 while (a < 20 )

     fprintf(‘value of a: %d\n‘, a);

     a = a+1;

     if( a > 15)

         % texminate the loop using break statement

         break;

       end

  end

زمانیکه شما فایل را ایجاد کنید، نتیجه زیر نمایش می یابد:

407

دستورات ادامه دادن برنامه

دستورات ادامه برای عبور کنترل به مرحله بعد از for  یا  while loop  استغاده می شود.

دستورات ادامه در متلب تا حدی مانند دستورات شکست کار می کنند. بجای خاتمه اجباری، اگرچه، ‘continue’ اجباراً   رفتن به مرحله بعد  صورت می گیرد،از هر کد میانی پرش می کند.

فلوچارت:

406

مثال دستورات ادامه دادن برنامه

یک فایل اسکریپت ایجاد نمایید و کد زیر را در آن تایپ کنید:

a = 10;

%while loop execution

while a < 20

   if a == 15

   % skip the iteration

   a = a + 1;

   continue;

  end

  fpxintf(‘value of a: %d\n‘, a);

  a = a + 1;

end

زمانی که شما فایل را اجرا کنید، نتیجه زیر نمایش می یابد:

407

خرید کتاب 28 گام موثر در فتح متلب

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *