انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
حلقه for

حلقه for

#2
سلام.
من کدهاتون رو به صورت زیر تغییر دادم :

کد:
clear all
close all
clc

Nusers=input('Nusers=');
B=randi([4,80],1,Nusers);
L=Nusers;
for i=1:Nusers;
    sigma=sum(B(1:i));
    if (sigma>840)
        L=i-1;
        break
    end
end
C=B(1:L)
C_length=length(C)

سه خط اول برنامه، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد.
C همان بردار نهایی است که شما می خواهید داشته باشید. درون حلقه for ، با دستور if چک می کنیم که در چندمین عنصر بردار B ، مجموع عناصر از شماره 1 تا آن عنصر، بیش از عدد 840 می شود. هر وقت این اتفاق بیفتد، شماره یک عنصر قبل از آن (یعنی i-1) را در L ذخیره می کنیم و با دستور break از اجرای ادامه حلقه for جلوگیری می کنیم (برنامه از حلقه بیرون می آید).

با اجرای برنامه متلب بالا و دادن مقدار 50 به Nusers ، نتایج زیر در خروجی متلب نمایش داده شد :

کد:
C =

  Columns 1 through 15

    46    41    72    65    60     7     9    10    65    76    56    14    59    12    13

  Columns 16 through 19

    53    29    54    61


C_length =

    19

مشاهده می کنید که طول بردار C برابر 19 می باشد و مجموع عناصر آن نیز کمتر از عدد 840 است.
موفق باشید. Iran
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ


پیام‌های این موضوع
حلقه for - توسط ghazal75 - ۱۳۹۲/۰۵/۰۳, ۰۳:۳۸ ب.ظ
RE: حلقه for - توسط admin - ۱۳۹۲/۰۵/۰۴, ۰۵:۱۶ ق.ظ
RE: حلقه for - توسط ghazal75 - ۱۳۹۲/۰۵/۰۴, ۰۲:۵۴ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان