Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Slide deck byDr. Greg Reese
Miami University
MATLAB An Introduction With Applications, 6th EditionDr. Amos GilatThe Ohio State University
MATLABبرنامه نویسی در
6.0
در این فصل خواهیم دید که چطور یک قسمتی از کد را اجرا MATLABبرنامه
کندچیزي درست باشد) if(اگر •چیزي درست باشد) while(زمانی که •دفعات مشخص) for(براي •
2
6.0
همچنین خواهیم دید که چطور قسمتهاي مختلف کد اجرا شود بسته به این که
مقدار یک متغیر چقدر است•کدام شرط مشخص برقرار است•کدام ترکیب از شرطها برقرار است•
اگر این و)and (آن درست باشد اگر این یا)or (آن درست باشد
چه رابطه اي میان دو چیز برقرار است•ي با مثال چیزي کمتر از، بیشتر از، مساوي با یا نامساو
دیگري است3
6.1 RELATIONAL AND LOGICAL OPERATORS
:عملگرهاي رابطه اي
رار دادبین عملگرهایی که دو کاراکتر دارند نمیتوان فاصله ق•عالمت مساوي نوشتهدومساوي براي مقایسه دو عدد با •
.، نه یکی(==)میشود یعنی قرار بده یا اختصاص بده "="میدانیم که
4
6.1 RELATIONAL AND LOGICAL OPERATORS
نتیجه مقایسه با یک عملگر رابطه اي همیشه •است) false(یا غلط ) true(درست
،اگر درست باشدMATLAB را 1به مقایسه مقدارنسبت می دهد
،اگر غلط باشدMATLAB را نسبت 0به مقایسه مقداردهدمی
5
6.1 RELATIONAL AND LOGICAL OPERATORS
در مقایسه آرایه هاباید داراي ابعاد برابر باشند•مقایسه به صورت درایه به درایه انجام خواهد•
شده نتیجه آرایه اي با ابعاد دو آرایه مورد مقایس•
است1و 0خواهد بود که تنها حاوي
6
6.1 RELATIONAL AND LOGICAL OPERATORS
در مقایسه آرایه ها با اعدادعدد با همه درایه هاي آرایه مقایسه خواهد •
شده آرایه مورد مقایسابعاد نتیجه آرایه اي با •
است1و 0خواهد بود که تنها حاوي
7
6.1 RELATIONAL AND LOGICAL OPERATORS
مثال>> x=8:12x = 8 9 10 11 12>> x>10ans = 0 0 0 1 1>> x==11ans = 0 0 0 1 0>> x>=7ans = 1 1 1 1 1
8
6.1 RELATIONAL AND LOGICAL OPERATORS
در واقع نتیجه یک مقایسه منطقییک بردار است1.در آن وجود دارد1یا 0نظیر هر درایه بردار اصلی 2.
>> x=8:12
x = 8 9 10 11 12
>> x>10
ans = 0 0 0 1 1
9
T I P
6.1 RELATIONAL AND LOGICAL OPERATORS
اگر نتیجه یک مقایسه رابطه اي در یک بردارذخیره شود، تعداد درایه هایی که در مقایسه تور نتیجه درست دارند را به راحتی میتوان با دس
sum که جمع درایه هاي یک بردار را میدهد بهدست آورد
این به آن علت است که درایه هایی که مقدار •هستند0و غلطها برابر 1درست دارند برابر
10
T I P
6.1 RELATIONAL AND LOGICAL OPERATORS
مثالاول هستند؟20تا 1چه تعداد از اعداد
استفاده کنید که براي اعداد isprimeاز دستور •میدهد0و در غیر این صورت 1اول
>> numbers = 1:20;
>> sum( isprime(numbers) )
ans =
8
11
T I P
6.1 RELATIONAL AND LOGICAL OPERATORS
میتوان عملگرهاي رابطه اي و حسابی را در یکعبارت ترکیب کرد
عملگرهاي حسابی از اولویتهاي معمول پیروي •میکنند ونسبت به عملگرهاي رابطه اي داراي
اولویت هستندعملگرهاي رابطه اي داراي اولویت یکسان هستند و•
از چپ به راست ارزیابی میشوند
12
T I P
6.1 RELATIONAL AND LOGICAL OPERATORS
0آرایه اي است که تنها حاوي منطقییک آرایه منطقی باشد1و هاي ناشی از عملیات ریاضی منطقی محسوب 1و 0•
نمی شوندهاي ناشی از مقایسه، منطقی هستند1و 0تنها •ت، به محض استفاده از یک آرایه منطقی در محاسبا•
MATLABدآن را به یک آرایه عددي تبدیل می کن
13
6.1 RELATIONAL AND LOGICAL OPERATORS
ري میتوان از بردارهاي منطقی براي بررسی مقادیط که به ازاي آنها رابطه اي درست است، و نه فق
ل به این عم. درستی کلی رابطه استفاده کرد.میگوینداندیس گذاري منطقی
شانی این کار را با استفاده از بردار منطقی به عنوان ن•نتیجه مقادیري . درایه هاي بردار مقادیر انجام دهید
ه است که در رابطه صدق میکنند، یعنی مقادیري ک.است1اندیس آنها
14
6.1 RELATIONAL AND LOGICAL OPERATORS
مثالهستند؟3مضرب 10تا 1کدام اعداد از
>> numbers = 1:10
numbers = 1 2 3 4 5 6 7 8 9 10
>> multiples = rem( numbers, 3 ) == 0
multiples = 0 0 1 0 0 1 0 0 1 0
>> multiplesOf3 = numbers(multiples)
multiplesOf3 =
3 6 9
15
6.1 RELATIONAL AND LOGICAL OPERATORS
مثالnumbers(multiples) را به عنوان بیرون
که درایه نظیر آنها در numbersکشیدن درایه هایی از multiples1 است در نظر بگیرید
numbers = 1 2 3 4 5 6 7 8 9 10
multiples = 0 0 1 0 0 1 0 0 1 0
numbers(multiples) = 3 6 9
16
6.1 RELATIONAL AND LOGICAL OPERATORS
مثالاول هستند؟20تا 1کدام یک از اعداد
>> numbers = 1:20;>> numbers( isprime(numbers) )ans =
2 3 5 7 11 13 17 19
اندیس گذاري منطقی به خصوص وقتی مفیدخواهد بود که با عملگرهاي منطقی استفاده
در ادامه در مورد آن صحبت میشود. شود
17
6.1 RELATIONAL AND LOGICAL OPERATORS
:عملگرهاي منطقی
باراتی منطق بولی سیستمی است براي ترکیب عکه درست یا غلط هستند
•MATLABعملگرها و دستورهایی براي انجامبسیاري از عملیات بولی دارد
ه اي عملیات بولی در ترکیب با دستورات رابط•امکان انجام انواع خاصی از محاسبات را به
آسانی و روشنی میدهند
18
6.1 RELATIONAL AND LOGICAL OPERATORS
جدول صحت سنجی قوانین منطق بولی را این جدول نتیجه عملیات . تعریف میکند
منطقی را براي هر ترکیب ممکن از ورودي ها جدول صحت سنجی مرتبط با . میدهد
MATLABبه این صورت است
19
6.1 RELATIONAL AND LOGICAL OPERATORS
جدول صحت سنجی به صورت تشریحی یعنی•AND ،درست است اگر هر دو ورودي درست باشند
وگرنه غلط است•OR درست است اگر حداقل یک ورودي درست
باشد، وگرنه غلط است•XOR (exclusive OR) درست است اگر تنها یک
ورودي درست باشد، وگرنه غلط است•NOT ط درست است اگر وروردي غلط باشد، وگرنه غل
است
20
6.1 RELATIONAL AND LOGICAL OPERATORS
ه نمادي است ک–یا + یک عملگر حسابی مثل یک محاسبه با اعداد MATLABباعث میشود
یا عبارات دو طرف آن انجام دهد
کاراکتريعملگر منطقی به طور مشابه، یک یک MATLABاست که باعث میشود
عملیات منطقی روي یک یا دو عدد یا عبارت انجام دهد
21
6.1 RELATIONAL AND LOGICAL OPERATORS
MATLAB سه عملگر منطقی دارد :&, |, ~•a&b عمل و)AND ( منطقی را رويaوb انجام میدهد•a|b عمل یا)OR ( منطقی را رويaوbانجام میدهد•~a عمل نقیض)NOT ( را رويaانجام میدهدورودي هاي همه عملگرهاي منطقی عدد هستند•
صفر غلط)false (است هر عدد به جز صفر درست)true (است
منطقی است0یا 1نتیجه یا خروجی یک عملگر منطقی •
22
6.1 RELATIONAL AND LOGICAL OPERATORS
زمانی که عملگرهاي منطقی براي آرایه ها استفاده میشوند
باید داراي ابعاد برابر باشند••MATLAB ارزیابی عملگر را درایه به درایه انجام
میدهد1و 0نتیجه آرایه اي با همان ابعاد ولی تنها حاوي •
خواهد بود•not)تنها روي یک آرایه کار میکند) نقیض
23
6.1 RELATIONAL AND LOGICAL OPERATORS
زمانی که از عدد و آرایه استفاده شود•MATLAB عملیات را با هر درایه آرایه و عدد
انجام میدهد ها ولی تنبا ابعاد آرایه اولیه نتیجه آرایه اي •
خواهد بود1و 0حاوي
24
6.1 RELATIONAL AND LOGICAL OPERATORS
را میتوان عملگرهاي حسابی، رابطه اي و منطقیاولویتها به این صورت هستند. ترکیب کرد
25
6.1 RELATIONAL AND LOGICAL OPERATORS
مثالسال یا کمتر12–کودك
سال20و کمتر از 12بیش از –نوجوان سال20بیش از –بزرگسال
>> age=[45 47 15 13 11]
age = 45 47 15 13 11
26
6.1 RELATIONAL AND LOGICAL OPERATORS
مثالنوجوانها کدامها هستند؟
>> age=[45 47 15 13 11];
>> age>=13
ans = 1 1 1 1 0
>> age<=19
ans = 0 0 1 1 1
>> age>=13 & age<=19
ans = 0 0 1 1 0
دو نوجوان اینجا مشخص میشوند27
6.1 RELATIONAL AND LOGICAL OPERATORS
مثال>> age=[45 47 15 13 11]
age = 45 47 15 13 11
چه کسی نوجوان نیست؟>> ~(age>=13 & age<=19)
ans = 1 1 0 0 1
چه کسی بزرگسال یا کودك است؟>> age>19 | age<13
ans = 1 1 0 0 1
28
6.1 RELATIONAL AND LOGICAL OPERATORS
:توابع منطقی داخلی
MATLAB داراي چند تابع داخلی یا دستورطه براي انجام عملیات منطقی و محاسبات مربو
سه تاي آنها معادل عملگرهاي منطقی . استهستند
• and(A,B) – A&Bمعادل• or(A,B) – A|Bمعادل• not(A) – A~معادل
29
6.1 RELATIONAL AND LOGICAL OPERATORS
MATLAB توابع بولی دیگري نیز دارد
30
6.2 CONDITIONAL STATEMENTS
دستوري است که به جمله شرطی یک MATLAB امکان تصمیم گیري براي اجرا یا
عدم اجراي دستوراتی که پس از آن می آید را می دهد
د جمالت شرطی تقریبا در تمام کدها یا توابع وجو•دارند
:این جمالت داراي سه صورت کلی هستند• if-end
if-else-end
if-elseif-else-end
31
6.2.1 The if-end Structure
نموداري است که روند اجراي کد را نشانفلوچارتبه خصوص براي نشان دادن نحوه عملکرد. میدهد
ایج برخی از عالئم ر. دستورات شرطی مناسب است:در فلوچارتها عبارتند از
• نشان دهنده اجراي دستورات به ترتیب است• است if نشان دهنده یک جمله• مسیر اجراي کد را نشان میدهد
32
6.2.1 The if-end Structure
MATLABاگر عبارت شرطی درست باشد، و خط ifخطوطی از کد که بین خط حاوي جمله
سپس روند کد . است را اجرا میکندendحاوي با اجراي دستورات قرار گرفته پس از خط حاوي
endدنبال می شود.
33
6.2.1 The if-end Structure
MATLABاگر عبارت شرطی غلط باشد، و خط حاوي ifخطوطی از کد که بین خط حاوي
end ا سپس روند کد ب. میگیرداست را ندیدهاجراي دستورات قرار گرفته پس از خط حاوي
endدنبال می شود.
34
6.2.1 The if-end Structure
عبارت شرطی زمانی درست است که حاصل آن عبارت . منطقی یا یک عدد غیر صفر باشد1
منطقی 0شرطی زمانی غلط است که حاصل آن یا صفر عددي باشد
35
6.2.2 The if-else-end Structure
این امکان را میدهد که if-else-endساختارقسمتی از کد زمانی که شرط درست است اجرا شود و
.قسمت دیگري از آن زمانی که شرط غلط استجواب دادن تلفن–مثال
if تماس گیرنده دوست شماستمدت زمان طوالنی صحبت کن
elseمدت زمان کوتاه صحبت کن
end
36
6.2.2 The if-else-end Structure
کد و فلوچارت ساختار 6-2تصویر if-else-endرا نشان میدهد.
37
6.2.3 The if-elseif-else-end Structure
امکان انتخاب if-elseif-else-endساختار قسمت از کد را براي اجرا می دهد) یا چند(بین سه
جواب دادن تلفن–مثال if تماس گیرنده دوست شماست
مدت زمان طوالنی صحبت کنelseif تماس گیرنده هم گروه درسی شماست
تا زمانی که پاسخ اشکالها را بفهمی صحبت کنelse
بگو بعدا تماس میگیريend
38
6.2.3 The if-elseif-else-end Structure
داشته باشید elseifمیتوانید به تعداد دلخواه جمله مثال
if تماس گیرنده دوست شماستمدت زمان طوالنی صحبت کن
elseif تماس گیرنده دوست صمیمی شماستکمی صحبت کن و قرار مالقات بگذار
elseif تماس گیرنده هم گروه درسی شماستتا زمانی که پاسخ اشکالها را بفهمی صحبت کن
elseبگو بعدا تماس میگیري
end
39
6.2.3 The if-elseif-else-end Structure
کد و فلوچارت مربوط به ساختار 6-3تصویر if-elseif-else-endرا نشان میدهد
40
6.2.3 The if-elseif-else-end Structure
را حذف کردelseمیتوان جمله یا ifدر این حالت، اگر شرایط جمالت •
elseifبرقرار نباشد، کدي اجرا نخواهد شد
41
6.3 THE switch-case STATEMENT
در if-elseif-else-endساختارelseifصورت استفاده از تعداد زیادي
از یک راه حل بهتر استفاده. نامفهوم خواهد شداستswitch-caseساختار
قدري متفاوت switch-caseساختار•ر است زیرا در این حالت انتخاب کد براي اجرا ب
اساس مقدار یک عدد یا رشته است، نه درستیا غلط
42
6.3 THE switch-case STATEMENT
اساس کار به این صورت استswitch namecase 'Bobby'
مدت زمان طوالنی صحبت کنcase 'Susan'
تا زمانی که پاسخ اشکالها را بفهمی صحبت کنcase 'Hubert'
کمی صحبت کن و قرار مالقات بگذار case ‘David'
صحبت کنکوتاه مدت زمان otherwise
بگو بعدا تماس میگیريend
43
6.3 THE switch-case STATEMENT
44
6.3 THE switch-case STATEMENT
switch عبارت سوییچرا بررسی میکند
اگر مقدار آن برابرValue1 باشد، همه
endیا case ،otherwiseدستورات را تا سپس . 1بعدي اجرا میکند، یعنی دستورات گروه
اجرا میشودendکد بعد از اگر مقدار آن برابرvalue2 باشد دستورات
را اجرا میکند2گروه و به همین ترتیب
45
6.3 THE switch-case STATEMENT
اگر عبارت سوییچ برابر با هیچ•کدام از مقادیر مشخص شده در
نباشد، دستوراتcaseجمالت .اجرا میشودotherwiseبعد از
وجود نداشتهotherwiseاگر باشد، دستوري اجرا نخواهد شد
باشد، caseاگر عبارت سوییچ برابر با بیش از یک مقدار •اجرا خواهد شدcaseتنها اولین
46
6.3 THE switch-case STATEMENT
در بررسی رشته هاي متنی، حروف کوچک و بزرگupperو lowerاز دستورات .مهم هستند
میتوانید براي بزرگ یا کوچک کردن حروف یکعبارت استفاده کنید
caller = lower( name );
switch caller
case 'bobby'
some codecase 'susan'
some codecase 'mom'
some codeend
47
T I P
6.4 LOOPS
روش دیگري براي کنترل روند اجراي کد حلقهم حلقه گروهی از دستورات را پشت سر ه. است
دو روش براي کنترل MATLAB. اجرا میکندتعداد دفعات اجراي دستورات توسط حلقه دارد
حلقه دستورات را به تعداد دفعات –1روش •مشخصی اجرا میکند
حلقه دستورات را تا زمانی که شرط –2روش •مشخصی برقرار باشد اجرا میکند
48
6.4.1 for-end Loops
forکه اغلب حلقه (for-endیک حلقه گروهی از دستورات را به ) میشودنامیده
گروه . تعداد دفعات مشخص اجرا میکندحلقه نامیده میشود بدنهدستورات
49
6.4.1 for-end Loops
د متغیر اندیس حلقه میتواند هر نامی داشته باش•)استفاده میشودi,j,k,m,nمعموال از (
زمانی که با اعداد مختلط کار میکنید ازi وj استفاده)جایگزینهاي مناسبی هستندjjو ii. (نکنید
50
6.4.1 for-end Loops
قرار دادهfرا برابر kحلقه 1.و forو دستورات بین
end یعنی بدنه حلقه را ،اجرا میکند
قرار داده و بدنه را اجرا میکندf+sرا برابر kحلقه 2.
اجرا میشودk > tروند تا زمانی که 3.ادامه endسپس برنامه با اجراي دستورات پس از 4.
می یابد•f وtمعموال اعداد صحیح هستند•s1ام در این حالت حلقه با گ. معموال استفاده نمیشود
تکرار میشود51
6.4.1 for-end Loops
میتواند منفی باشدsگام • ،مثالk=25:-5:10 چهار بار با مقادیر
k=25,20,15,10تکرار میشودحلقه یک بار اجرا میشودf=tاگر •، حلقه اجرا s<0و f<t، یا اگر s>0و f>tاگر •
نمیشود
52
6.4.1 for-end Loops
نتواند kبه گونه اي باشند که k,s,tاگر مقادیر •باشد، آنگاهtبرابر اگرs مثبت باشد، آخرین تکرار زمانی است کهk
را داشته باشدtبزرگترین مقدار کمتر از مثالk=8:10:50 پنج تکرار باk=8,18,28,38,48
ایجاد میکند اگرs منفی باشد، آخرین تکرار زمانی است کهk
را داشته باشدtکمترین مقدار بزرگتر از
53
6.4.1 for-end Loops
k، میتوان مقادیر مشخصی را به forدر دستور •)که به صورت یک بردار وارد میشوند(اختصاص داد
مثال:for k = [7 9 –1 3 3 5]
را تغییر دهدkدر حالت کلی، بدنه حلقه نباید مقدار •endدر یک برنامه باید حتما یک دستور forهر دستور •
داشته باشد
54
6.4.1 for-end Loops
به طور خودکار ) k(مقدار متغیر اندیس حلقه •نمایش داده نمیشود
مقدارk را در هر تکرار میتوان با نوشتنk به عنوانیکی از دستورات حلقه نمایش داد
قه زمانی که حلقه پایان می یابد، متغیر اندیس حل•)k ( برابر آخرین مقدار تخصیص داده شده به آن
است
55
6.4.1 for-end Loops
مثالScriptfor k=1:3:10
k
x = k^2
end
fprintf('After loop k = %d\n', k);
56
Outputk = 1
x = 1
k = 4
x = 16
k = 7
x = 49
k = 10
x = 100
After loop k = 10
6.4.1 for-end Loops
اغلب براي محاسبات میتوان از یکی از دو روشردیا عملیات درایه به درایه استفاده کforحلقه
:عملیات درایه به درایهاغلب سریع تر است•اغلب خواناتر است•مناسب تر استMATLABبراي •
از عملیات درایه به درایه هر –پیشنهاد کلی تنها forحلقه . زمان که میتوانید استفاده کنید
.براي زمانی است که مجبور باشید57
T I P
6.4.2 while-end Loops
زمانی استفاده میشود کهwhile-endحلقهتعداد تکرار حلقه را نمی دانید•شرطی دارید که میتوانید آن را امتحان کنید و هر زمان •
مثال. غلط بود اجراي حلقه را متوقف کنید داده ها را از یک فایل بخوانید تا زمانی که به انتهاي فایل
برسیدجمله جمالتی را به یک جمع اضافه کنید تا زمانی که تفاضل دو
انتهایی کمتر از مقدار مشخصی شود
58
6.4.2 while-end Loops
حلقه عبارت1.شرطی را ارزیابی
میکنداگر عبارت شرطی درست باشد، کد بدنه را اجرا 2.
باز میگردد1میکند، سپس به گام رده اگر عبارت شرطی غلط باشد، از کد بدنه عبور ک3.
می رودendو به کد بعد از جمله
59
6.4.2 while-end Loops
while-endجمله شرطی یک حلقهداراي یک متغیر است•
بدنه حلقه باید مقدار آن متغیر را تغییر دهدها باید مقادیري از متغیر وجود داشته باشد که به ازاي آن
جمله شرطی غلط باشد
60
6.4.2 while-end Loops
مثالاین کدx = 1
while x <= 15
x = 2*x
end
61
این خروجی را میدهدx =
1
x =
2
x =
4
x =
8
x =
16
6.4.2 while-end Loops
ه اگر عبارت شرطی هیچ گاه غلط نباشد، حلقاین نوع حلقه! براي همیشه تکرار خواهد شد
لی نامیده شده است، وحلقه نامعین در کتاب ه برنام. می نامندحلقه بینهایت اغلب آن را
شما همچنان اجرا خواهد شد، و اگر حلقه ، )که اغلب اینطور است(خروجی نداشته باشد
هنگ MATLABاین گونه به نظر میرسد که کرده است
62
6.4.2 while-end Loops
:علل شایع ایجاد حلقه هاي نامعینمتغیري در جمله شرطی وجود نداشته باشد•
distance1 = 1;
distance2 = 10;
distance3 = 0;
while distance1 < distance2
fprintf('Distance = %d\n',distance3);
end
63
distance1 وdistance2هیچگاه تغییر نمیکنند
6.4.2 while-end Loops
:علل شایع ایجاد حلقه هاي نامعینمتغیر جمله شرطی هیچ گاه تغییر نمیکند•
minDistance = 42;
distanceIncrement = 0;
distance = 0;
while distance < minDistance
distance = distance+distanceIncrement;
end
64
باشد10باید –غلط تایپی
6.4.2 while-end Loops
:علل شایع ایجاد حلقه هاي نامعینمتغیر اشتباهی در جمله شرطی تغییر کند•
minDistance = 42;
delta = 10;
distance = 0;
while distance < minDistance
minDistance = minDistance + delta;
end
65
باشدdistanceباید -غلط تایپی
6.4.2 while-end Loops
:علل شایع ایجاد حلقه هاي نامعینجمله شرطی هیچ گاه غلط نشود•
minDistance = 42;
x = 0;
y = 0;
while -sqrt( x^2+y^2 ) < minDistance
x = x + 1;
y = y + x;
end
66
عالمت منفی -غلط تایپینباید وجود داشته باشد
6.4.2 while-end Loops
اگر برنامه در یک حلقه نامعین گیر افتاد،
نشانگر را در پنجره فرمان قرار دهید••CTRL+Cرا بزنید
67
T I P
6.5 NESTED LOOPS AND NESTED CONDITIONAL STATEMENTS
ا اگر یک حلقه یا جمله شرطی درون یک حلقه یجمله شرطی دیگر قرار گیرد، به آن حالت
گفته میشودتو در توحلقه هاي تو در تو رایج تر هستند•
اغلب در مسائل دوبعدي به کار می روندداراي یک بایدهر کدام از حلقه ها و جمالت شرطی •
باشندendجمله
68
6.5 NESTED LOOPS AND NESTED CONDITIONAL STATEMENTS
مثال
69
6.6 THE break AND continue COMMANDS
:breakدستور
دستور ) whileیا for(در داخل یک حلقه •breakاجراي حلقه را متوقف میکند
MATLAB ازbreak به دستورend ،حلقه میرودبه (ند سپس اجراي برنامه با دستور بعدي ادامه پیدا میک
)آن حلقه باز نمیگرددwhileیا forدستور breakر کل اجراي حلقه را متوقف میکند، نه فقط دو
.جاري را اگرbreakلی در یک حلقه تو در تو باشد، فقط حلقه داخ
)نه حلقه هاي بیرونی(متوقف میشود
70
6.6 THE break AND continue COMMANDS
اگر دستورbreak در یک کد یا تابع و نه داخلیک حلقه باشد، اجراي فایل را متوقف میکند
دستورbreak معموال همراه با یک دستورشرطی استفاده میشود
این حالت در حلقه ها راهی براي توقف اجراي حلقه درصورت برقراري یک شرط خاص است
71
6.6 THE break AND continue COMMANDS
مثالکدwhile( 1 )
name = input( 'Type name or q to quit: ', 's' );
if length( name ) == 1 && name(1) == 'q'
break;
else
fprintf( 'Your name is %s\n', name );
end
end
72
"Greg", "quentin", "q"خروجی براي ورودي هاي Type name or q to quit: Greg
Your name is Greg
Type name or q to quit: quentin
Your name is quentin
Type name or q to quit: q
>>
ر شودهمیشه درست است بنابراین باعث میشود حلقه همیشه تکرا1–نکته
و اگر کاربر تنها یک حرف وارد کرداست، از حلقه خارج شوqآن
را چاپ کنnameوگرنه
!تنها راه خروج از حلقه
6.6 THE break AND continue COMMANDS
:continueدستور
) whileو for(داخل یک حلقه continueاز براي متوقف کردن تکرار جاري و رفتن به دور بعدي
تکرار استفاده کنیدcontinue معموال قسمتی از یک جمله شرطی
به آن میرسد، بقیه MATLABزمانی که . استحلقه رفته و یک endدستورات حلقه را اجرا نمیکند، به
دور تکرار جدید را آغاز میکند
73
6.6 THE break AND continue COMMANDS
مثالfor ii=1:100
if rem( ii, 8 ) == 0
count = 0;
fprintf('ii=%d\n',ii);
continue;
end
% code
% more code
end
74
را صفر countهر هشت تکرار ز کن، شماره تکرار را بنویس، و ا
بقیه دستورات حلقه رد شو
شماره تمرین هاي منتخب•23•24•26•27•28•30•31•32•33•34•35
•7•9•11•12•14•15•17•18•19•21•22