اینترنت پنجره ها اندروید
بسط دادن

فرمان شعبه به طور کامل و نه. دستورالعمل ها و وظایف الگوریتم ها با مثال های انشعاب در بیسیک

موضوعات: “برنامه های انشعاب و حلقه در بیسیک، کار

با آرایه ها."

وظیفه شامل چندین بخش است:

- مطالب سخنرانی در مورد موضوع را بخوانید (ص 1-5) و نمونه ها را تجزیه و تحلیل کنید.

- اجرا کردنتمرین 1(ص 5)؛

- مطالب سخنرانی در مورد موضوع را بخوانید (ص 6-8) و نمونه ها را تجزیه و تحلیل کنید.

- اجرا کردنورزش2 (با.8-9 );

- مطالب سخنرانی در مورد موضوع را بخوانید (ص 9-14) و نمونه ها را تجزیه و تحلیل کنید.

- اجرا کردنوظیفه 3(ص 14)؛

- با مفهوم "ماتریس" و نمونه هایی از کار با ماتریس آشنا شوید (ص 15-17).

تکالیف حل شده را طی نامه ای به آدرس ایمیل مدرسه ارسال کنید

در بخش "موضوع"، "Kaverina N. E. computer Science" را مشخص کنید. در ابتدای متن

حروف نشان دهنده نام خانوادگی، کلاس، تاریخ تکمیل تکلیف و

شماره مشاغل (13 - 1 7 ). تکالیف را کپی کنید و سپس پاسخ ها را یادداشت کنید.

توجه! تکلیف باید تا 12 ژانویه ارسال شود.

انشعاب در الگوریتم ها و برنامه ها.

مطالب سخنرانی در مورد این موضوع را مرور کنید، نمونه ها را تجزیه و تحلیل کنید،

اگر سوالی دارید در نامه ای از آنها بپرسید.

الگوریتم انشعاب الگوریتمی است که در آن بسته به شرایط، یک یا آن توالی از اقدامات انجام می شود.

در بسیاری از موارد، لازم است که یک دنباله از اعمال تحت شرایط خاص و دیگری تحت شرایط دیگر انجام شود.

کل برنامه از دستورات (اپراتورها) تشکیل شده است. دستورات می توانند ساده یا مرکب باشند (دستورهایی که در آن دستورات دیگری رخ می دهند). دستورات مرکب اغلب ساختارهای کنترلی نامیده می شوند. این تأکید می کند که این اظهارات روند بعدی برنامه را کنترل می کند.

بیایید نوشتن یک دستور شرطی را در Basic در نظر بگیریم.

یک شکل ساده از اپراتور به شکل زیر است:

اگر<УСЛОВИЕ>سپس<ОПЕРАТОР>

اگر<УСЛОВИЕ>
<ОПЕРАТОР 1>
<ОПЕРАТОР 2>

<ОПЕРАТОР
ن> پایان اگر

اگر شرط درست است، سپس برنامه اجرا می کندعملگری که بعد از کلمه کلیدی می آید سپس(یا یک سری عبارات از کلمه کلیدی سپسقبل از END IF) و سپس روال معمول را دنبال می کند. اگر وضعیت اجرا نشده است ، سپس اپراتور بعد از سپس(یا یک سری اظهارات از سپسقبل از END IF) نهانجام، و برنامه بلافاصله به حالت عادی باز می گردد.
طرح اگر پس از آنبسته به اعتبار شرط اجازه می دهد تا یا دستور را اجرا کنید یا از این دستور صرف نظر کنید.
طرح اگر ... آنگاه ... پایان اگربسته به اعتبار شرط اجازه می دهد تا گروهی از عملگرها را اجرا کند یا از این گروه از عملگرها رد شود.

شرایط نوع دیگری از عبارت بولی است. آنها از موارد زیر استفاده می کنند عملگرهای مقایسه:

بیشتر یا مساوی

کمتر یا مساوی

در سمت راست و چپ علامت مقایسه باید مقادیر متعلق به همان نوع وجود داشته باشد. مقایسه منجر به یک مقدار منطقی می شود که دارای مقدار TRUE یا FALSE است.

مثال:
5<7 - ИСТИНА;
8=12 - FALSE (ما بررسی می کنیم که آیا 8 برابر با 12 است، ما بررسی می کنیم، نه ادعا می کنیم که 8=12 است);

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

اگر<УСЛОВИЕ>سپس
<ОПЕРАТОРЫ 1>
دیگر
<ОПЕРАТОРЫ 2>
END IF

اگر شرط درست است (TRUE)، پس<операторы 1>(ایستاده بین سپسو دیگر)، آ<операторы 2>(ایستاده بین دیگرو END IF) نادیده گرفته خواهد شد.
اگر شرط درست نیست (FALSE)، پس<операторы 1>نادیده گرفته می شوند و اعدام می شوند<операторы 2>.

اگر - اگر، سپس - سپس، ELSE - در غیر این صورت.

اگردر اتاق تاریک است، سپسنیاز به روشن کردن چراغ

اگرباران خواهد بارید، سپسمن باید یک چتر بردارم
در غیر این صورت، چتر نگیرید

مثال: بررسی کنید که عدد وارد شده برابر با مقدار مشخصی است یا خیر و در صورت مساوی بودن، پیامی در مورد برابری اعداد روی صفحه نمایش دهید.

REM یک عدد را با مقداری مقایسه می کند
INPUT "Enter a"، a
اگر a=7 باشد، «اعداد مساوی هستند» را چاپ کنید
پایان

پس از شروع برنامه بررسی می شود که آیا مقدار وارد شده برابر با هفت است یا خیر. در صورت مساوی، پیام "اعداد برابر هستند" روی صفحه نمایش داده می شود.

مثال: بزرگتر از دو عدد را تعیین کنید، آن را روی صفحه نمایش دهید، سپس آن را در دو ضرب کنید و نتیجه را روی صفحه نمایش دهید.


INPUT "Enter a"، a
INPUT "Enter b"، b
اگر a>b سپس
چاپ "تعداد بزرگتر: "، a
с=2*a
دیگر
PRINT "تعداد بزرگتر: "، b
с=2*ب
END IF
PRINT "نتیجه: "، ج
پایان

ابتدا برنامه هر دو عدد را می خواهد، سپس شرط a>b را بررسی می کند. اگر شرط درست باشد، عدد a روی صفحه نمایش داده می شود، سپس این عدد دو برابر می شود. در غیر این صورت عدد b روی صفحه نمایش داده می شود سپس عدد b دو برابر می شود. در نهایت دو برابر مقدار بزرگتر روی صفحه نمایش داده می شود.

لطفاً توجه داشته باشید: برنامه یک اشکال دارد - این مورد را در نظر نمی گیرد که اعداد وارد شده برابر هستند. بیایید این را با استفاده از تودرتوی یک شرط در شرایط دیگر برطرف کنیم.

REM دو عدد بزرگتر را تعیین می کند...
INPUT "Enter a"، a
INPUT "Enter b"، b
IF a=b TNEN
چاپ "اعداد برابر هستند"
с=2*a
دیگر
اگر a>b سپس
چاپ "تعداد بزرگتر: "، a
с=2*a
دیگر
PRINT "تعداد بزرگتر: "، b
с=2*b
END IF
END IF
PRINT "نتیجه: "، ج
پایان

در این برنامه دو عملگر شرطی وجود دارد که اولی شرط برابری اعداد را بررسی می کند و در صورت برآورده شدن پیغامی مبنی بر برابری اعداد نمایش داده می شود که در صورت مساوی نبودن اعداد شرط دوم بررسی می شود. ...

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

حل معادله درجه دوم REM
INPUT "ضریب a را وارد کنید: "، و
INPUT "ضریب b را وارد کنید: "، b
INPUT "ضریب c را وارد کنید: "، c
d=b*b-4*a*c
اگر د<0 THEN
چاپ "بدون ریشه"
دیگر
اگر d=0 باشد
x=-b/(2*a)
PRINT "ریشه معادله: "، x
دیگر
x1=(-b-SQR(d))/(2*a)
x2=(-b+SQR(d))/(2*a)
PRINT "ریشه های معادله: "، x1، x2
END IF
END IF
پایان

تمرین 1.

1. برنامه ای بنویسید تا دانش خود را در مورد جدول ضرب (یک ستون به انتخاب خود) آزمایش کنید. از نظرات برای توضیح مراحل بعدی پاسخ دهنده استفاده کنید.

2. 3 عدد داده می شود (آنها را از صفحه کلید با نظرات وارد کنید) a, b, c. برنامه ای بنویسید که عدد بزرگتر را انتخاب و چاپ کند.

3. برنامه ای بنویسید تا مقدار Y را محاسبه کنید اگر بدانید:

o" در متن ظاهر می شود، باید تمام حروف را مرور کرد. علیرغم سادگی این برنامه، اجرای آن برای شخص بسیار دشوار است، اما برای یک کامپیوتر این کار چند ثانیه طول می کشد.

الگوریتم دورگرد - شرح اقداماتی که باید چند بار مشخص یا تا زمانی که یک شرط مشخص شده تکرار شود.

لیستی از اقدامات تکراری بدن چرخه نامیده می شود.

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

چنین چرخه هایی نامیده می شوند - حلقه های مقابله شده.

در Basic آنها به صورت زیر نوشته می شوند:

FOR Counter=StartValue TO EndValue
بدنه حلقه
بعدی [شماره شمار]

پارامترهای نشان داده شده در پرانتز اختیاری هستند (آنها را می توان حذف کرد). به طور پیش فرض، مرحله حلقه یک است، یعنی هر بار پس از عبور از بدنه حلقه، شمارنده یک افزایش می یابد.

مثال: نمایش تمام اعداد از 1 تا 100. برای این کار می توانید برنامه زیر را بنویسید:

REM اعداد از 1 تا 100 را خروجی می کند
چاپ 1
چاپ 2
چاپ 3
چاپ 4
چاپ 5
چاپ 6
چاپ 7
...
چاپ 98
چاپ 99
چاپ 100
پایان

فقط 102 خط :-). اگرچه می توان همان برنامه را بسیار کوتاهتر نوشت:

REM اعداد از 1 تا 100 را خروجی می کند
برای I=1 تا 100
چاپ I
بعد
پایان

با کمی تصحیح برنامه می توانید کاری کنید که تمام اعداد از a تا b را چاپ کند.

REM اعداد a تا b را چاپ کنید
a=55
b=107
برای I=a TO ب
چاپ I
بعد
پایان

در این حالت شمارنده در اولین عبور از حلقه مقدار متغیر a را می گیرد و پس از آن عبارات تا کلمه کلیدی NEXT اجرا می شوند. پس از این، شمارنده یک افزایش یافته و با مقدار متغیر b مقایسه می شود، اگر شمارنده کمتر باشد، دوباره حلقه اجرا می شود.

به راحتی می توان اعداد برنامه را به ترتیب معکوس چاپ کرد. برای انجام این کار، مرحله حلقه باید برابر با -1 (منهای یک) باشد. در این حالت، با هر بار تکمیل حلقه، مقدار شمارنده یک عدد کاهش می یابد.

REM اعداد b تا a را چاپ کنید
a=55
b=107
برای I=b تا یک مرحله -1
چاپ I
بعد
پایان

مثال: مجموع اعداد طبیعی دو رقمی را محاسبه کنید.

REM مجموع اعداد طبیعی دو رقمی را محاسبه کنید
برای I=10 تا 99
s=s+I
بعد
چاپ "نتیجه = "،s
پایان

برنامه هر بار که اقدامات را انجام می دهد، از اعداد 10 تا 99 عبور می کند s=s+I. از نقطه نظر ریاضی، این یک ورودی کاملاً بی معنی است، اما بیایید با دقت بیشتری به آن نگاه کنیم.
فرآیند حل یک مسئله محاسباتی فرآیند تغییر متوالی مقادیر متغیرها است. در نتیجه در متغیرهای خاصی یک نتیجه به دست می آید. در نتیجه متغیر مقدار مشخصی را دریافت می کند تکالیف. به یاد داشته باشید که انتساب وارد کردن یک مقدار مشخص به سلولی است که در نتیجه اجرای یک دستور برای یک متغیر اختصاص داده شده است.
در نتیجه عملیات a=5متغیر آمقدار 5 را می گیرد.
در نتیجه عملیات с=a+bمتغیر بامقداری برابر با مجموع مقادیر متغیر بدست می آورد آو ب.
در نتیجه عملیات s=s+Iمتغیر سمقداری برابر با مجموع مقدار قبلی متغیر بدست می آورد سو مقادیر متغیر من. یعنی اگر قبل از عملیات انتساب مقدار سبرابر با 5 و متغیر بود من 3 است، سپس بعد از عملیات مقدار متغیر است سبرابر 8 (5+3، مقدار قدیمی) خواهد بود س+ ارزش من).
یعنی بعد از اجرای برنامه ما، متغیر s مجموع تمام اعداد دو رقمی از 10 تا 99 را ذخیره می کند.

REM محاسبه فاکتوریل یک عدد
a=5
f=1
برای I=1 تا a
f=f*I
بعد
PRINT f
پایان

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

وظیفه 2.

1. استفاده از اپراتور برای بعدی،برنامه ای برای محاسبه و چاپ مقدار تابع Y=5/X زمانی که آرگومان X از -5 به +5 با افزایش 0.5 تغییر می کند بنویسید.

2. استفاده از اپراتور برای بعدی،برنامه ای بنویسید که مجموع 10 عدد صحیح اول را محاسبه کرده و نتیجه را روی صفحه نمایش دهد.

3. نتیجه اجرای برنامه را بنویسید:

10 برای X=1.5 تا 0 مرحله -0.5

آرایه ها . آرایه های تک بعدی

هنگام کار با تعداد زیادی داده از همان نوع، استفاده از آرایه ها بسیار راحت است.

بنابراین، آرایه ها چیست ...
آرایه نوعی متغیر است. این به شما امکان می دهد هر مقدار که می خواهید با همان نام ذخیره کنید. هر مقدار آرایه خاص باید از طریق یک شاخص عددی قابل دسترسی باشد.

آرایه مجموعه ای از متغیرها است که نام (شناسه) یکسانی دارند، اما در شماره سریال (شاخص) متفاوت هستند.

به طور معمول، آرایه ها برای گروه بندی متغیرهایی استفاده می شوند که دارای ویژگی های مشترک زیادی هستند. به عنوان مثال، اگر در یک کلاس 30 دانش آموز وجود داشته باشد، نام هر دانش آموز می تواند در یک متغیر رشته جداگانه ذخیره شود: name1، name2، ... اما معرفی 30 متغیر جدید بسیار ناخوشایند است. این کار را می توان ساده تر انجام داد: یک نام آرایه () را با 30 عنصر اعلام کنید. هنگامی که لازم است به یک عنصر خاص اشاره شود، یک شاخص در پرانتز قرار می گیرد.

شمارش عناصر آرایه در بسیاری از زبان ها از صفر شروع می شود. بنابراین، نام دانش آموز اول (طبق ثبت نام کلاس) در متغیر name(0)، دومی - در متغیر name(1) و آخرین (سی ام) - در نام (29) ذخیره می شود. متغیر.

برای استفاده از یک آرایه ابتدا باید در برنامه اعلان شود. برای این کار از اپراتور استفاده کنید کم نور. به طور پیش فرض (اگر اپراتور وجود نداشته باشد کم نوردر برنامه) آرایه ای از 10 عنصر داده شده در نظر گرفته می شود.

DIM a(100) به عنوان عدد صحیح
این آرایه ای از صد عنصر است که هر کدام می تواند یک عدد صحیح باشد.
DIM name(30) AS STRING
DIM mas (20)
این آرایه ای از 20 عنصر است، نوع متغیر به صراحت مشخص نشده است.

DIM mas1(10) به عنوان عدد صحیح

دسترسی به عناصر آرایه:

الف (24)
نام (5)
mas (2)
mas (3)

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

همچنین می توانید یک آرایه را به این صورت اعلام کنید:

DIM mas2 (1 تا 10) به عنوان عدد صحیح

یا حتی مثل این:

DIM a2 (5 تا 10) به عنوان عدد صحیح

تفاوت در چیست؟ در این حالت، نمایه سازی عناصر آرایه از صفر شروع نمی شود، بلکه از شاخص مورد نیاز شما (در مثال، آرایه) شروع می شود. mas2دارای آرایه از 1 تا 10 ایندکس است a2- از 5 تا 10).

فرض کنید در یک کلاس 30 دانش آموز وجود دارد. فرض کنید یک آرایه برای ذخیره نمرات آنها در یک موضوع ایجاد شده است علامت DIM (30) به عنوان عدد صحیح. برنامه زیر به هر دانش آموز نمره تصادفی از 3 تا 5 می دهد. البته نمی توانید به این ترتیب نمره ها را تعیین کنید، اما این مثال نشان می دهد که اگر 30 دانش آموز در کلاس نباشند، بلکه صد نفر باشند، برنامه پیچیده تر نمی شود. و پنجاه میلیون ترکیب آرایه ها و حلقه ها سادگی شگفت انگیزی را به شما می دهد.

درجه بندی REM :)
علامت DIM (30) به عنوان عدد صحیح
برای I=0 تا 29
علامت(I)=3+INT(RND*3)
بعد
پایان

برای ایجاد اعداد تصادفی در زبان Basic از تابع استاندارد استفاده کنید RND. یک عدد تصادفی در محدوده 0 تا 1 ایجاد می کند. با ضرب آن در 3، یک عدد تصادفی از 0 تا 3 به دست می آید. و با گرفتن قسمت صحیح از آن (با استفاده از تابع INT)، یک عدد تصادفی صحیح در از 0 تا 2 متغیر است. با اضافه کردن عدد 3 به آن، تخمین تصادفی می دهیم که نه کمتر از 3 و نه بیشتر از 5 باشد.

مثال: برنامه ای ایجاد کنید تا آرایه ای متشکل از 15 عنصر را با اعداد تصادفی در محدوده 1 تا 10 پر کند. آرایه را روی صفحه نمایش دهید.


DIM mas(15) به عنوان عدد صحیح
برای I=0 تا 14
mas(I)=1+INT(RND*10)
بعد
CLS
چاپ "خروجی آرایه"
برای I=0 تا 14
PRINT mas(I);
بعد
پایان

CLS- تمیز کردن صفحه نمایش نقطه ویرگول (;) در بیانیه چاپبه شما امکان می دهد عناصر آرایه را به یک رشته خروجی دهید.

کار مشابه، اما در اعلان آرایه متفاوت است:

REM پر کردن و خروجی یک آرایه
DIM mas (1 تا 15) به عنوان عدد صحیح
برای I=1 تا 15
mas(I)=1+INT(RND*10)
بعد
CLS
چاپ "خروجی آرایه"
برای I=1 تا 15
PRINT mas(I);
بعد
پایان

همه چیز بسیار ساده است. اینکه از کدام گزینه استفاده کنید به شما بستگی دارد.

مثال: تعداد عناصر آرایه منفی را چاپ کنید.

REM تعداد عناصر منفی را چاپ کنید

DIM mas(n) به عنوان عدد صحیح
برای I=0 تا n-1

بعد
CLS
چاپ "خروجی آرایه"
برای I=0 تا n-1
PRINT mas(I);
بعد
برای I=0 تا n-1
IF mas(I)<0 THEN k=k+1
بعد
چاپ
PRINT "تعداد عناصر منفی: ",k
پایان

تعداد عناصر آرایه منفی در یک حلقه شمارش می شود:
برای I=0 تا n-1
IF mas(I)<0 THEN k=k+1
بعد

مثال: برنامه ای بنویسید تا بزرگترین عنصر یک آرایه و تعداد آن را محاسبه کند.

REM محاسبه بزرگترین عنصر آرایه و تعداد آن
INPUT "تعداد عناصر آرایه را وارد کنید"، n
DIM mas(n) به عنوان عدد صحیح
برای I=0 تا n-1
INPUT "یک عنصر آرایه را وارد کنید"، mas(I)
بعد
CLS
چاپ "خروجی آرایه"
برای I=0 تا n-1
PRINT mas(I);
بعد
max=mas(0)
عدد=1
برای I=0 تا n-1
IF mas(I)> max THEN
حداکثر=mas(I)
عدد=I+1
END IF
بعد
چاپ
PRINT "حداکثر عنصر: "، حداکثر، "با عدد"، نام
پایان

کار در خطوط انجام می شود:
max=mas(0)
عدد=1
برای I=0 تا n-1
IF mas(I)> max THEN
حداکثر=mas(I)
عدد=I+1
END IF
NEXT ابتدا، اجازه دهید بزرگترین عنصر را اولین عنصر آرایه در نظر بگیریم mas (0). سپس تمام عناصر را یکی یکی مرور می کنیم، آنها را با مقدار مقایسه می کنیم حداکثرو اگر mas(I)> حداکثر، سپس این عنصر را به عنوان بزرگترین در نظر می گیریم.

مثال: برنامه ای برای مرتب کردن آرایه به ترتیب صعودی ایجاد کنید.

مرتب سازی آرایه REM
INPUT "تعداد عناصر آرایه را وارد کنید"، n
DIM mas(n) به عنوان عدد صحیح
برای I=0 تا n-1
mas(I)=1+INT(RND*10)
بعد
CLS
چاپ "خروجی آرایه"
برای I=0 تا n-1
PRINT mas(I);
بعد
مرتب سازی آرایه REM
برای I=0 تا n-2
برای J=I+1 تا n-1
اگر mas(I)>mas(J) سپس
REM اگر عنصر کوچکتری پیدا کردیم، آنها را عوض کنید
a=mas(I)
mas(I)=mas(J)
mas(J)=a
END IF
بعدی جی
بعدی منم
REM پایان مرتب سازی آرایه
چاپ
چاپ "آرایه مرتب شده خروجی"
برای I=0 تا n-1
PRINT mas(I);
بعد
پایان

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

ثابت های DATA
متغیرها را بخوانید

مثال: وارد کردن یک آرایه با استفاده از عملگر DATA.

REM ورود داده از DATA
DIM mas(5) به عنوان عدد صحیح
DATA 2، -4، 1، 5، 9
ورودی آرایه REM
برای I=0 تا 4
Mas(I) را بخوانید
بعد
خروجی آرایه REM
برای I=0 تا 4
PRINT mas(I);
بعد
پایان

وظیفه 3.

1. برنامه ای بنویسید تا مجموع و حاصل ضرب عناصر آرایه بزرگتر از 4 را محاسبه کند. آرایه A از 15 عنصر تشکیل شده است.

2. برنامه ای بنویسید تا حداقل عنصر آرایه B، متشکل از 20 عنصر را پیدا کند.

3. آرایه های A و B، متشکل از 20 عنصر داده شده است. الف) برنامه ای بنویسید تا یک آرایه X جدید متشکل از 20 عنصر به دست آورید، در صورتی که مشخص شود x(I)=2*a(i)-b(i). ب) برنامه ای بنویسید تا یک آرایه جدید Y متشکل از 15 عنصر را به دست آورید، اگر معلوم باشد که y(I)=a(i)+3*b(i).

آرایه ها آرایه های دو بعدی

آرایه های دو بعدی را می توان به عنوان جداولی در نظر گرفت که سلول های آنها مقادیر عناصر آرایه را ذخیره می کند و شاخص های عناصر آرایه اعداد سطر و ستون هستند.

آرایه های دو بعدی مانند متغیرها و آرایه های یک بعدی اعلام می شوند. به عنوان مثال، یک آرایه عددی صحیح شامل 3 سطر و 4 ستون به صورت زیر اعلام می شود:

DIM tabl(3،4) به عنوان عدد صحیح

DIM tabl1 (1 تا 3، 1 تا 4) به عنوان عدد صحیح

با استفاده از یک آرایه دو بعدی 9x9 و دو حلقه تو در تو، می توانید به راحتی برنامه ای ایجاد کنید که جدول ضرب را پیاده سازی کند. فاکتورها مقادیر شاخص های سطر و ستون و محصولات آنها مقادیر عناصر آرایه خواهد بود.

DIM tablum (1 تا 9، 1 تا 9) به عنوان عدد صحیح

جدول ضرب REM
تبوم DIM (1 تا 9، 1 تا 9) به عنوان عدد صحیح
REM پر کردن آرایه - ایجاد جدول ضرب
برای I=1 تا 9
برای J=1 تا 9
tabum(I, J)=I*J
بعدی جی
بعدی منم

برای I=1 تا 9
برای J=1 تا 9
PRINT tabum (I, J);
بعدی جی
چاپ
بعدی منم
پایان

مثال: در یک جدول 3×4، تعداد عناصر منفی، مجموع عناصر زوج و حاصلضرب عناصر ردیف دوم را محاسبه کنید.

REM محاسبه مقدار ...
جدول DIM (1 تا 3، 1 تا 4) به عنوان عدد صحیح
پر کردن آرایه REM
برای I=1 تا 3
برای J=1 تا 4
INPUT "ورود عنصر آرایه:"، tabl(I, J)
بعدی جی
بعدی منم
REM نمایش یک آرایه روی صفحه به صورت جدول
CLS
برای I=1 تا 3
برای J=1 تا 4
جدول چاپ (I, J);
بعدی جی
چاپ
بعدی منم
REM محاسبات مورد نیاز است
k=0
s=0
p=1
برای I=1 تا 3
برای J=1 تا 4
جدول IF (I, J)<0 THEN k=k+1
IF tabl(I, J) MOD 2 = 0 سپس s=s+tabl(I, J)
اگر I=2 باشد، p=p*tabl(I, J)
بعدی جی
بعدی منم
چاپ
چاپ "نتیجه:"
PRINT "عناصر منفی: "، k
PRINT "مجموع عناصر زوج: "، s
PRINT "محصول عناصر خط دوم: "، ص
پایان

درس 3

انشعاب در الگوریتم ها و برنامه ها.

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

در بسیاری از موارد، لازم است که یک دنباله از اعمال تحت شرایط خاص و دیگری تحت شرایط دیگر انجام شود.

کل برنامه از دستورات (اپراتورها) تشکیل شده است. دستورات می توانند ساده یا مرکب باشند (دستورهایی که در آن دستورات دیگری رخ می دهند). دستورات مرکب اغلب ساختارهای کنترلی نامیده می شوند. این تأکید می کند که این اظهارات روند بعدی برنامه را کنترل می کند.

بیایید نوشتن یک دستور شرطی را در Basic در نظر بگیریم.

یک شکل ساده از اپراتور به شکل زیر است:

اگر<УСЛОВИЕ>سپس<ОПЕРАТОР>

اگر<УСЛОВИЕ> <ОПЕРАТОР 1>[:<ОПЕРАТОР 2>:…:<ОПЕРАТОР N>]

اگر شرط درست است، سپس برنامه اجرا می کندعملگری که بعد از کلمه کلیدی می آید سپس(یا یک سری عبارات از کلمه کلیدی سپسقبل از پایان) و سپس روال معمول را دنبال می کند. اگر گرفتننه نمایشگاه، سپس اپراتور بعد از سپس(یا یک سری اظهارات از سپس) نه انجام، و برنامه بلافاصله به حالت عادی باز می گردد.
طرح اگر پس از آنبسته به اعتبار شرط اجازه می دهد تا دستور را اجرا کند یا از این دستور صرف نظر کند اگر پس از آن...بسته به اعتبار شرط اجازه می دهد تا گروهی از عملگرها را اجرا کند یا از این گروه از عملگرها رد شود.

شرایط نوع دیگری از عبارت بولی است. آنها از موارد زیر استفاده می کنند عملگرهای مقایسه:

بیشتر یا مساوی

کمتر یا مساوی

در سمت راست و چپ علامت مقایسه باید مقادیر متعلق به همان نوع وجود داشته باشد. مقایسه منجر به یک مقدار منطقی می شود که دارای مقدار TRUE یا FALSE است.

5<7 - ИСТИНА;

8=12 -FALSE (ما بررسی می کنیم که آیا 8 برابر با 12 است، ما بررسی می کنیم، نه ادعا می کنیم که 8=12 است);

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

اگر<УСЛОВИЕ>سپس<ОПЕРАТОРЫ 1>دیگر<ОПЕРАТОРЫ 2>
اگر شرط درست است (TRUE)، پس<операторы 1>(ایستاده بین سپسو دیگر)، آ<операторы 2>( بعد از دیگر) نادیده گرفته خواهد شد.
اگر شرط درست نیست (FALSE)، پس<операторы 1>نادیده گرفته می شوند و اعدام می شوند<операторы 2>.

اگر - اگر، سپس - سپس، ELSE - در غیر این صورت.

اگردر اتاق تاریک است، سپسنیاز به روشن کردن چراغ

اگرباران خواهد بارید، سپسمن باید یک چتر بردارم در غیر این صورت، چتر نگیرید

مثال: بررسی کنید که عدد وارد شده برابر با مقدار مشخصی است یا خیر و در صورت مساوی بودن، پیامی در مورد برابری اعداد روی صفحه نمایش دهید.

REM یک عدد را با مقداری مقایسه می کند
INPUT "Enter a"، a
اگر a=7 باشد، «اعداد مساوی هستند» را چاپ کنید
پایان

پس از شروع برنامه بررسی می شود که آیا مقدار وارد شده برابر با هفت است یا خیر. در صورت مساوی، پیام "اعداد برابر هستند" روی صفحه نمایش داده می شود.

مثال: بزرگتر از دو عدد را تعیین کنید، آن را روی صفحه نمایش دهید، سپس آن را در دو ضرب کنید و نتیجه را روی صفحه نمایش دهید.


INPUT "Enter a"، a
INPUT "Enter b"، b
اگر a>b سپس "عدد بزرگتر: "، a:с=2*a را چاپ کنید
ELSE PRINT "تعداد بزرگتر: "، b:с=2*b
PRINT "نتیجه: "، ج
پایان

ابتدا برنامه هر دو عدد را می خواهد، سپس شرط a>b را بررسی می کند. اگر شرط درست باشد، عدد a روی صفحه نمایش داده می شود، سپس این عدد دو برابر می شود. در غیر این صورت عدد b روی صفحه نمایش داده می شود سپس عدد b دو برابر می شود. در نهایت دو برابر مقدار بزرگتر روی صفحه نمایش داده می شود.

لطفاً توجه داشته باشید: برنامه یک اشکال دارد - این مورد را در نظر نمی گیرد که اعداد وارد شده برابر هستند. بیایید این را با استفاده از تودرتوی یک شرط در شرایط دیگر برطرف کنیم.

REM دو عدد بزرگتر را تعیین می کند...
INPUT "Enter a"، a
INPUT "Enter b"، b
IF a=b TNEN PRINT "اعداد مساوی هستند":с=2*a
ELSE IF a>b سپس "عدد بزرگتر:" را چاپ کنید، a: с=2*a
ELSE PRINT "تعداد بزرگتر: "، b: с=2*b
PRINT "نتیجه: "، ج
پایان

در این برنامه دو عملگر شرطی وجود دارد که اولی شرط برابری اعداد را بررسی می کند و در صورت برآورده شدن پیغامی مبنی بر برابری اعداد نمایش داده می شود که در صورت مساوی نبودن اعداد شرط دوم بررسی می شود. ...

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

حل معادله درجه دوم REM
INPUT "ضریب a را وارد کنید: "، و
INPUT "ضریب b را وارد کنید: "، b
INPUT "ضریب c را وارد کنید: "، c
d=b*b-4*a*c
اگر د<0 THEN PRINT "Корней нет"
ELSE IF d=0 سپس x=-b/(2*a): "ریشه معادله:" را چاپ کنید، x
ELSE x1=(-b-SQR(d))/(2*a): x2=(-b+SQR(d))/(2*a): PRINT "ریشه های معادله: ", x1, x2
پایان

شرایط منطقینامیده می شوند ساده، اگر شعبه دو شاخه باشد و مجتمع، اگر بیش از دو شعبه باشد.

و و

یا یا

نه نه

محاسبه

وظیفه 1.

تعریف مثلثی است با اضلاع A، B، C متساوی الساقین.

INPUT "ابعاد اضلاع مثلث A، B، C را وارد کنید"؛ A، B، C

یک خط کد در یک برنامه ویژوال بیسیک عبارت برنامه نامیده می شود. دستور برنامه ترکیبی از کلمات کلیدی ویژوال بیسیک، ویژگی ها، توابع، عملگرهای حسابی یا منطقی و نمادها است که با هم یک عبارت معتبر را تشکیل می دهند که توسط کامپایلر ویژوال بیسیک شناسایی می شود.

93. آرایه ها و عملیات حلقه

درس 22. عملگرهای حلقه For...Next و For Every

حلقه ها در VB.NET شبیه حلقه ها در سایر زبان های برنامه نویسی هستند. در این درس به دو نوع حلقه نگاه خواهیم کرد - حلقه های For...Next و For Every. برای... حلقه های بعدی تعداد معینی بار اجرا می شوند. یعنی اگر از قبل می دانید که حلقه شما چند بار باید اجرا شود، از حلقه For...Next استفاده می کنیم. حلقه For Every برای تکرار روی عناصر مجموعه ها و آرایه ها استفاده می شود. به عنوان مثال، با استفاده از For Every می توانید تمام عناصر یک فرم را لیست کنید (پیمایش) کنید یا تمام ردیف های یک پایگاه داده را پردازش کنید.

در اینجا یک مثال برای عملگر For...Next آورده شده است:

Dim A(10) به عنوان عدد صحیح

Dim i به عنوان عدد صحیح

"آرایه را با مربع های اعداد پر کنید

"بازیابی عناصر آرایه

Console.WriteLine(A(i))

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

می توانید بنویسید

در حلقه های For...Next، شمارنده حلقه (در این مورد i) به طور خودکار تغییر می کند.

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

برای i = 0 تا 9 مرحله 2

"ما داریم کاری می کنیم

این حلقه 5 بار اجرا می شود.

حالا بیایید به مثالی با استفاده از حلقه For Every نگاه کنیم:

کم نور z به عنوان عدد صحیح

Dim A(10) به عنوان عدد صحیح

آرایه A را پر کنید

برای هر z در A

اگر z > 10 سپس

Console.WriteLine(z)

همانطور که می بینید، در حلقه ما از تمام عناصر آرایه A عبور می کنیم (این را می توان از ساختار In A مشاهده کرد). اگر عنصر آرایه بزرگتر از 10 باشد، آن را روی صفحه نمایش می دهیم.

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

استفاده از مجموعه داده ها هنگام حل مسائل. آرایه ها در VB متغیرهای نمایه شده شرح آرایه ها ترتیب تخصیص مرزهای پایین و بالایی شاخص های آرایه. آرایه های کنترل ترتیب ایجاد آرایه های کنترل. یک آرایه می تواند مجموعه ای از سلول های حافظه باشد که برای ذخیره یک متغیر نمایه شده اختصاص داده شده اند. X1,Y2, Zt+1, Mi,j+1 – متغیرهای شاخص. => X(1)، Y(2)، Z(i+1)، M(I، f+1) – در YAPVU، طراحی شده برای کار با سری اعداد. dlina (1)، dlina (2)، dlina (3) - یک آرایه یک بعدی. Dim dlina (1 تا 3) به عنوان عدد صحیح - شرح آرایه در برنامه، با 1 که کران پایین آرایه، 3 کران بالای آرایه است. نمایه سازی آرایه لزوماً از 0 یا 1 شروع نمی شود. آرایه ای از کنترل ها با استفاده از ویژگی Index ایجاد می شود، با اختصاص دادن ویژگی Index، به رایانه می گوییم که این شی به عنوان عنصری از آرایه در نظر گرفته می شود. آرایه کنترلی مجموعه ای از اشیاء شماره گذاری شده است. روش ایجاد: 1) اختصاص ویژگی Index در مرحله طراحی. 2) با کپی کردن در Win (کپی/پیست). 3) به صورت برنامه ای (بارگذاری متن 1(1) - روش). Load یک شی به نام Text1(1) را روی فرم بارگذاری می کند. آرایه های دو بعدی آنها به طور مشابه با موارد یک بعدی مشخص می شوند: Dim dlina (1 تا 3، 1 تا 4) به عنوان عدد صحیح، که در آن مرزها در دو جهت در پرانتز لیست شده اند که با کاما از هم جدا شده اند، مرزهای اول (1 تا 3) عمودی هستند و دوم افقی هستند (1 تا 4). دسترسی به یک عنصر از یک آرایه دو بعدی: dlina(1،3) - عنصر در ردیف اول، ستون سوم.

آرایه های داده برای ذخیره چندین مقدار متغیر استفاده می شود:

استاتیک x(2) به عنوان عدد صحیح (x=0,1,2).

اگر اندازه آرایه را نمی توان از قبل تعیین کرد، از یک آرایه پویا استفاده می شود:

Dim Y() به عنوان عدد صحیح.

کلمه کلیدی برای تعریف ثابت ها استفاده می شود:

Const Pi = 3.142.

آرایه به عنوان پارامتر رویه

Rem Program_2.5 – آرایه به عنوان پارامتر رویه

Dim n به عنوان عدد صحیح

دیم به عنوان مجرد

کم نور x(2) به عنوان تک

x(1) = 5: x(2) = 15: s = 0

sumir(x()، n, s) را فراخوانی کنید. روال جمع کردن عناصر آرایه را فراخوانی کنید

MsgBox "s = " & Str(s)

Sub sumir (x() به عنوان تک، n به عنوان عدد صحیح، s به عنوان تک)

Dim i به عنوان عدد صحیح

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

توابع تعریف شده توسط کاربر (نه توابع کتابخانه ای که توسط کاربر ایجاد شده اند) با وارد کردن در پنجره ویرایش کد سرصفحه ای متشکل از کلمه کلیدی Function و به دنبال آن نام تابع با آرگومان های مورد نیاز در پرانتز اعلام می شوند. پس از این، قالب زیر به طور خودکار ظاهر می شود:

تابع FUNCTION_NAME

عبارات لازم در فضای بین نام تابع و کلمات کلیدی End Function درج می شوند.

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

سینتکس کلی برای تعریف یک تابع به صورت زیر است:

تابع FUNCTION_NAME(PARAMETER_1[، PARAMETER_2]...)

OPERATOR_1

[OPERATOR_2]

FUNCTION_NAME = EXPRESSION

که در آن PARAMETER یک عنصر داده ای است که هنگام فراخوانی تابع به آن ارسال می شود. Static – اگر این کلمه کلیدی در یک اعلان تابع وجود داشته باشد، متغیرهای محلی اعلام شده در بدنه تابع مقادیر خود را بین فراخوانی های این تابع حفظ می کنند.

روش‌های فراخوانی توابع: X = fun1(Y)، یا Call fun1 Y.

اگر یک تابع باید یک مقدار کاراکتر (رشته) برگرداند، آخرین کاراکتر در نام آن باید علامت $ باشد.

هر تابع همیشه فقط یک مقدار را برمی گرداند.

نمونه هایی از توابع:

1. ارسال یک پارامتر از یک تابع

Rem Program_2.6 – ارسال یک پارامتر از یک تابع

Dim x به عنوان مجرد، y به عنوان مجرد، s به عنوان مجرد

s = sumir(x, y) ' تابع جمع دو عدد را صدا بزنید

MsgBox "s = " & Str(s)

مجموع تابع! (x!, y!) ' تعریف تابع جمع دو عدد

سومیر! = x! +y!

علاوه بر متغیرهای ساده، می توانید از آرایه ها برای ذخیره مقادیر استفاده کنید. آرایه مجموعه ای از متغیرها با نام یکسان و شاخص های مختلف است. هر یک از این متغیرها یک عنصر آرایه نامیده می شود. تعداد عناصر ذخیره شده در یک آرایه را اندازه آرایه می گویند. اندازه آرایه با مقدار RAM و نوع داده عناصر آرایه محدود می شود. همه عناصر آرایه دارای یک نوع هستند. با این حال، اگر آرایه از نوع نوع باشد، عناصر منفرد ممکن است حاوی داده هایی از انواع مختلف باشند. به عنوان مثال، برخی از عناصر می توانند اعداد باشند، برخی دیگر می توانند رشته یا اشیا باشند. در ویژوال بیسیک، آرایه های با اندازه ثابت و آرایه های پویا وجود دارد. یک آرایه با اندازه ثابت دارای اندازه ثابتی است که هنگام اعلام آن مشخص می شود. آرایه های پویا می توانند در حین اجرا تغییر اندازه دهند. آرایه دو بعدی چیست؟ این مجموعه ای از داده ها از همان نوع است که مکان هر عنصر آن نه با یک شاخص، بلکه توسط دو شاخص تعیین می شود. به عنوان مثال، برای کسانی که از دوران کودکی "نبرد دریایی" را بازی کرده اند، کشف نمی شود که هر سلول زمین بازی با دو علامت - یک حرف و یک عدد، به عنوان مثال، A5 - "از دست رفته"، I10 مشخص شده است. - "ضربه"، Z7 - "کشته" ". فقط در BASIC مرسوم است که از اعداد صحیح به عنوان شاخص استفاده شود. یک مثال واقعی از استفاده از آرایه‌های دو بعدی، بلیت‌های سینما یا تئاتر است که برای هر بیننده دو مختصات دارد - یک ردیف و یک صندلی.

آرایه های مشابه در BASIC با استفاده از همان عملگر کم نور توصیف می شوند، پس از آن دو بعد آرایه در پرانتز نشان داده می شوند - تعداد ردیف ها و تعداد ستون ها.

زبان برنامه نویسی ویژوال بیسیک. شعبه های برنامه نویسی

انشعاب در ویژوال بیسیک با استفاده از:

  • عبارت IF شرطی؛
  • تابع IIF داخلی؛
  • اپراتور انتخاب CASE.

برای آزمایش یک شرط و اجرای یک دستور یا بلوک از دستورات، از استفاده کنید عبارت شرطی IF...THEN. این عملگر را می توان با سینتکس های مختلف استفاده کرد: تک خطی (خطی) و چند خطی (بلوک).

عملگر خطی دستور زیر را دارد:

اگر<условие>سپس<операторы!>

عملگر بلوک دارای نحو زیر است:

اگر<условие>سپس
<блок операторов 1>
پایان اگر

اگر شرط داده شده True باشد، بلوک دستور اجرا می شود، در غیر این صورت دستور block2 اجرا می شود. اگر بند Else مشخص نشده باشد، ifهنگامی که شرط برآورده شد، کنترل بلافاصله پس از If به اپراتور بعدی منتقل می شود.

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

اگر<условие 1>سپس
<блок операторов 1>
دیگر<условие 2>سپس
<блок операторов 2>
دیگر<условие n>سپس
<блок операторов n>
پایان اگر

برای انتخاب یکی از مقادیر بسته به رضایت یا عدم موفقیت برخی شرایط، از تابع شرطی IIF استفاده کنید که دارای نحو زیر است:

IIF(<условие>, <значение1>, <значение2>)

این تابع اگر شرط درست باشد مقدار 1 و اگر شرط نادرست باشد مقدار 2 را برمی‌گرداند.

می توانید از یک عبارت Boolean به عنوان شرطی استفاده کنید که True یا را برمی گرداند

False یا هر عبارت حسابی (مقدار صفر معادل False و مقدار غیر صفر معادل True است).

عبارت SELECT CASEبرای آزمایش یک شرط و اجرای یکی از چندین بلوک دستور استفاده می شود.

فرمت رکورد اپراتور:

انتخاب مورد<проверяемое выражение>
مورد<список выражений 1>
<операторы 1>مورد<список выражений 2>
<операторы 2>مورد<список выражений 3>
<операторы 3>
مورد دیگر
<операторы группы Else>
پایان انتخاب کنید

عبارت مورد آزمایش در ابتدای عبارت Select Case ارزیابی می شود. این عبارت می تواند مقداری از هر نوع (بولی، عددی، رشته ای) را برگرداند.

فهرست عبارات یک یا چند عبارت است که با یک کاراکتر جداکننده استاندارد (نقطه ویرگول) از هم جدا شده اند.

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

این عبارت لیست نفقه ممکن است یکی از اشکال زیر باشد:

  • <выражение>- مطابقت یک عبارت داده شده را با یکی از عبارات - عناصر لیست بررسی می کند.
  • <выражение 1>که<выражение 2>- بررسی می کند که آیا عبارت داده شده در محدوده مشخص شده قرار می گیرد یا خیر.
  • < Is <логический оператор> < выражение>- تحقق شرط مشخص شده را برای یک عبارت مشخص بررسی می کند.