ربات کنترل مجری در سیستم کومیر

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

ربات دقیقاً یک سلول از میدان را اشغال می کند.

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

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

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

O
خطاها: 1 نحوی. 2. منطقی

توضیحات محیط ها در فایل های متنی با فرمت خاص (فرمت fil.) ذخیره می شوند.

جاری- محیطی که ربات در حال حاضر در آن قرار دارد (از جمله اطلاعات مربوط به موقعیت ربات).

صفحه اصلی- محیطی که ربات به اجبار در ابتدای اجرای برنامه با استفاده از Robot در آن قرار می گیرد.

رویه عملیاتی:


  1. پرسیدن محیط شروعبا توجه به وظیفه:
ابزارهای منو ← تغییر محیط شروع ربات (محیط را با توجه به شرایط کار رسم کنید، نام بگذارید، در پوشه Personal ذخیره کنید)

2. پیمانکار را مشخص کنید:

درج منو → استفاده از ربات

3. الگوریتمی برای حل مسئله بنویسید.

4. الگوریتم را اجرا کنید (منو اجرا → اجرای مداوم / F9)

سیستم دستورات ربات مجری در سیستم KUMIR


تیم

عمل

بالا

ربات 1 سلول به بالا حرکت می کند

راه پایین

ربات 1 سلول به پایین حرکت می کند

به سمت چپ

ربات 1 سلول را به سمت چپ حرکت می دهد

درست

ربات 1 سلول را به سمت راست حرکت می دهد

رنگ کردن

ربات سلولی را که در آن قرار دارد رنگ می کند

حق رایگان

ربات اجرای مربوطه را بررسی می کند سادهمقررات

آزاد گذاشت



بالا شل



پایین شل



سلول سایه دار است



قفس تمیز



الگوریتم های چرخه ای

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

بدنه حلقه -مجموعه ای از اقدامات قابل تکرار

وضعیت -عبارت بولی (ساده یا پیچیده (ترکیب))
انواع چرخه:

1.حلقه "تکرار n بار" 2. حلقه "بای"
nc n بار nts خداحافظ
. . بدنه حلقه. . بدنه حلقه
kts kts

مثال: nts خداحافظحق رایگان


نمای کلی چرخه "تکرار n بار:

تکرار n بار

پایان
kts

نمای کلی حلقه while:

در حالی که برای انجام

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


وضعیت مرکب الف و ب(که در آن A، B شرایط ساده هستند) زمانی ارضا می شود که هر یک از دو شرط ساده موجود در آن برآورده شود.

اجازه دهید A - رایگان در بالا AT - رایگان در سمت راستسپس شرط مرکب الف و ب- رایگان در بالا و رایگان در سمت راست.


وضعیت مرکب A OR B زمانی ارضا می شود که حداقل یکی از دو شرط ساده موجود در آن برآورده شود: بالا رایگان یا حق رایگان
وضعیت مرکب نه A- زمانی که شرط الف برآورده نشده باشد برآورده می شود.

مثال:بگذارید A یک سلول سایه دار باشد (شرایط ساده).

پ بررسی شرایط ترکیبی NOT A:

الف) A - انجام شده، نه A (نه سایه دار) - انجام نشده است.

ب) A - انجام نشده، NOT A (NOT shaded) - انجام شده است.


فرمان شعبه

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

نمای کلی دستور IF:

اگر سپس در غیر این صورت

پایان

به زبان کومیر:

انشعاب کامل: انشعاب جزئی:
اگر سپس اگر سپس

در غیر این صورت

همه همه

الگوریتم کمکی- الگوریتمی که برخی از مسائل فرعی مسئله اصلی را حل می کند.

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

AT نظرسنجی و تکالیف

1. تمام الگوریتم های سه دستوری را که ربات را از موقعیت اصلی خود به سلول B منتقل می کند، ارائه دهید.

آیا الگوریتمی برای این کار وجود دارد که در طی آن ربات انجام دهد:

الف) دو مرحله ب) چهار مرحله؛ ج) پنج مرحله؛ د) هفت قدم؟


  1. پتیا الگوریتمی ساخت که ربات را از سلول A به سلول B با چند سلول رنگ آمیزی شده منتقل می کند. برای بدست آوردن الگوریتمی که ربات را از B به A می برد و همان خانه ها را پر می کند، کولیا باید با این الگوریتم چه کار کند؟


7. دو الگوریتم ربات کمکی شناخته شده است

ترسیم کنید که وقتی ربات الگوریتم های اساسی زیر را انجام می دهد چه اتفاقی می افتد:


آ)

nc 5 بار


الگوی_1

درست؛ درست؛


ب)

nc 7 بار


الگوی_2

درست؛ درست


که در)
درست؛ درست؛ درست

بالا بالا

درست؛ درست؛ درست

راه پایین؛ راه پایین


ز)
درست؛ درست
درست؛ درست

8. الگوریتم هایی ایجاد کنید که تحت آن ربات روی سلول های مشخص شده نقاشی می کند:



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

10. مشخص است که جایی در سمت راست ربات یک سلول سایه دار وجود دارد.

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

11. مشخص است که ربات در نزدیکی ورودی سمت چپ به راهرو افقی قرار دارد.

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

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


13. در یک ردیف ده سلولی در سمت راست ربات، برخی از سلول ها سایه دار هستند.

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

الف) زیر هر سلول سایه دار؛

ب) بالا و پایین هر سلول سایه دار.


14. در مورد درستی قطعه زیر از الگوریتم چه می توان گفت؟

nts خداحافظسلول سایه دار است

اگرحق رایگان سپس

درست؛ رنگ کردن

به
ج

15. برنامه ای بنویسید که با آن ربات بتواند در هر سه پیچ و خم به سلول B برسد.


16. برنامه ای بنویسید که به دنبال آن ربات می تواند در امتداد راهرو از گوشه سمت چپ پایین میدان به سمت راست بالا حرکت کند. راهرو دارای عرض یک سلول است و در جهت از چپ - پایین - راست - بالا کشیده شده است. نمونه ای از یک راهروی ممکن در شکل نشان داده شده است.

دبلیو

adachi GIA


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

  1. به
    ضروری است

    داده شده
    راهرو 2. این ربات در سلول بالایی یک راهرو عمودی باریک قرار دارد. عرض راهرو یک سلول است، طول راهرو می تواند دلخواه باشد.

یک نوع احتمالی از مکان اولیه ربات در شکل نشان داده شده است (ربات با حرف "P" مشخص شده است)

الگوریتمی برای ربات بنویسید که تمام سلول های داخل راهرو را پر کرده و ربات را به موقعیت اصلی خود برگرداند. به عنوان مثال، برای تصویر بالا، ربات باید روی سلول های زیر نقاشی کند (تصویر را ببینید):


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


ضروری است

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

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



  1. یک دیوار عمودی طولانی در میدان بی پایان وجود دارد. طول دیوار مشخص نیست. ربات در یکی از قفس هایی است که مستقیماً در سمت راست دیوار قرار دارد. موقعیت اولیه ربات نیز مشخص نیست. یکی از موقعیت های احتمالی ربات در شکل نشان داده شده است (روبات با حرف "P" مشخص شده است): یک الگوریتم برای کار بنویسید که تمام سلول های مجاور دیوار را رنگ می کند: در سمت چپ، از بالا شروع کنید. بدون رنگ و از طریق یکی; در سمت راست، شروع از پایین سایه دار و از طریق یکی. ربات باید فقط سلول هایی را رنگ کند که این شرایط را دارند. به عنوان مثال، برای شکل بالا، ربات باید خانه های زیر را پر کند (شکل را ببینید): مکان نهایی ربات می تواند دلخواه باشد. الگوریتم باید مشکل را برای اندازه دیوار دلخواه و هر موقعیت اولیه معتبر ربات حل کند. هنگام اجرای الگوریتم، ربات نباید سقوط کند.


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


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

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



آر

  1. یک دیوار عمودی طولانی در میدان بی نهایت وجود دارد. طول دیوار مشخص نیست. ربات در یکی از قفس هایی است که مستقیماً در سمت چپ دیوار قرار دارد. موقعیت اولیه ربات نیز مشخص نیست. یکی از موقعیت های احتمالی ربات در شکل نشان داده شده است (روبات با حرف "P" مشخص شده است):
الگوریتمی را برای کار بنویسید که تمام سلول های مجاور دیوار را نقاشی می کند:

  • همه در سمت چپ؛

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

ب
1102_GIA2011

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

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


AT
1103_GIA_2011


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

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

خریانوف تیموفی فدوروویچ

اگر-پس-دیگر-همه

نمای کلی تیم:

اگر شرط
سپس سری 1
سری 2 مستعار
همه

سری 2همراه با کلمه رسمی در غیر این صورتممکن است گم شده باشد در این مورد، دستور به نظر می رسد:

اگر شرط
سپس سری 1
همه

هنگام اجرای دستور اگرکومیر ابتدا چک می کند وضعیتثبت شده بین اگرو سپس. اگر این شرط رعایت شود، سری 1، در غیر این صورت - سری 2(در صورت وجود)، پس از آن کومیر دستورات ضبط شده بعد از کلمه را اجرا می کند همه.
اگر شرط برآورده نشد و سری 2 به همراه موارد دیگر وجود نداشت، KuMir بلافاصله دستورات نوشته شده بعد از کلمه all را اجرا می کند.

مثال 1

اگر یک سپس
b:=b-a
p:=p+q
در غیر این صورت
a:=a-b
q:=q+p
همه

مثال 2

اگر x > m
سپس
m:=x
n:= n+1
همه

مثال 3 (روبات اجرا کننده)

اگر حق آزاد باشد
سپس
درست
همه

انتخاب-اگر-در غیر این صورت-همه

نمای کلی تیم:

انتخاب
تحت شرایط 1: سری 1
تحت شرایط 2: سری 2

شرط n: سری n
در غیر این صورت سری n+1
همه

کلمه کلیدی در غیر این صورتممکن است به همراه یک سری دستورات مربوطه وجود نداشته باشد:

انتخاب
تحت شرایط 1: سری 1
تحت شرایط 2: سری 2

شرط n: سری n
همه

کومیر ابتدا چک می کند شرط 1. اگر مشاهده شود، KuMir دستورات را از آن اجرا می کند سری 1، پس از آن دستورات نوشته شده بعد از کلمه را اجرا می کند همه. در غیر این صورت KuMir همین کار را با شرط 2و تیم هایی از سری 2و غیره.
دستوراتی که بعد از کلمه نوشته می شود در غیر این صورتدر صورت عدم رعایت هیچ یک از شرایط اجرا می شوند.
در یک دستور Select، همیشه بیش از یک سری دستور اجرا نمی شود، حتی اگر بیش از یک شرط درست باشد. اجرای دستور select پس از یافتن اولین شرط (به ترتیب) با مقدار yes (و اجرای سری دستورات مربوطه) به پایان می رسد.

مثال 1

انتخاب
برای a > 1: i:= i + 1
برای یک< 0: j:= j - 1
در غیر این صورت t:= i; i:= j; j:= t
همه

الگوریتم رسم مارپیچ:

از کشو استفاده کنید
alg
زود
. حرکت به یک نقطه(3,3)
. قلم را پایین بیاور
. سیم پیچ (1); سیم پیچ (3); سیم پیچ (5); سیم پیچ (7); سیم پیچ (9)
. قلم را بلند کن
باهم
alg turn (arg w)
زود
. تغییر بر اساس(a, 0)
. تغییر بر اساس(0, -a)
. تغییر بر اساس(-a-1.0)
. تغییر بر اساس(0، a+1)
باهم

به بلوک فرمان توجه کنید:

کویل (1); سیم پیچ (3); سیم پیچ (5); سیم پیچ (7); سیم پیچ (9)

الگوریتم کمکی "کویل (چیزی arg)" 5 بار فراخوانی می شود، اما نمی توان آن را در حلقه "N بار" فراخوانی کرد، زیرا هر بار با مقادیر آرگومان متفاوت فراخوانی می شود.

اما می بینید که مقادیر آرگومان از 1 به 9 تغییر می کند و هر بار 2 افزایش می یابد. بنابراین، ما می توانیم کمک کنیم. حلقه با شمارنده. همچنین، چنین چرخه ای چرخه "برای" نامیده می شود.

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

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

نمای کلی چرخه با شمارنده:

nc برای<счетчик>از جانب<нач. знач.>قبل از<кон. знач.>[گام<знач.>]
<тело цикла (последовательность команд)>
kts

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

اکنون می توانیم الگوریتم "مارپیچ" را به این ترتیب بازنویسی کنیم:

از کشو استفاده کنید
alg
زود
. حرکت به یک نقطه(3,3)
. قلم را پایین بیاور
. اندازه کامل
. nc برای سایز 1 تا 9 مرحله 2
. . سیم پیچ (اندازه)
. kts
. قلم را بلند کن
باهم
alg turn (arg w)
زود
. تغییر بر اساس(a, 0)
. تغییر بر اساس(0, -a)
. تغییر بر اساس(-a-1.0)
. تغییر بر اساس(0، a+1)
باهم

در این مثال، متغیر شمارنده "size" مقادیر 1، 3، 5، 7، 9 را دریافت می کند. حلقه 5 بار اجرا می شود. برای هر مقدار از متغیر "size"، بدنه حلقه یک بار اجرا می شود، در مثال ما، این فراخوانی به الگوریتم کمکی "کویل (چیز arg)" است.

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

بلوک دیاگرام چنین الگوریتمی به صورت زیر است:

بیایید به مثال دیگری نگاه کنیم:

بیایید ابتدا الگوریتم کمکی را به خاطر بسپاریم و بنویسیم که یک مربع در نقطه (x, y) رسم کند. برای تغییر در طراحی، از دستور استفاده می کنیم تغییر بر اساس(در مثال های قبلی به نقطه ای منتقل شدند).

الگوریتم می تواند به صورت زیر باشد:

مربع alg (arg x, y, side)
زود
. حرکت به یک نقطه(x، y)
. تغییر بر اساس(-side/2, side/2)
. قلم را پایین بیاور
. تغییر بر اساس(سمت، 0)
. تغییر بر اساس(0، -سمت)
. تغییر بر اساس(سمت، 0)
. تغییر بر اساس(0، سمت)
. قلم را بلند کن
باهم

با استفاده از چنین الگوریتم کمکی، شکل زیر را ترسیم می کنیم:

برای این کار از حلقه "for" استفاده می کنیم. مطالعه نمونه برنامه:

از کشو استفاده کنید
alg شکل 1
زود
. عدد صحیح z
. nc برای z از 2 تا 10 مرحله 2
. . مربع (0، 0، z)
. kts
باهم
مربع alg (arg x, y, side)
زود
. حرکت به یک نقطه(x، y)
. تغییر بر اساس(-side/2, side/2)
. قلم را پایین بیاور
. تغییر بر اساس(سمت، 0)
. تغییر بر اساس(0، -سمت)
. تغییر بر اساس(سمت، 0)
. تغییر بر اساس(0، سمت)
. قلم را بلند کن
باهم

در این مثال، متغیر "z" مقادیر 2، 4، 6، 8، 10 را دریافت می کند. حلقه 5 بار اجرا می شود. برای هر مقدار "z"، بدنه حلقه یک بار اجرا می شود، در مثال ما، این یک فراخوانی به الگوریتم مربع کمکی است.

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

همانطور که متوجه شدید، الگوریتم نه تنها از اعداد، بلکه از اعداد نیز استفاده می کرد عبارات جبری، فرمول ها، به عنوان مثال "-side/2". در علوم کامپیوتر به این عبارات می گویند حسابی. قواعد زبان اجازه می دهد، هنگام نوشتن الگوریتم، هر جا که می توانید عددی بنویسید، یک عبارت حسابی دلخواه بنویسید.

1. مقدمه

سیستم "KuMir" (نام از کلمات "مجموعه جهان های آموزشی" گرفته شده است) که این نسخه الکترونیکی کتاب درسی را با آن به شما معرفی می کند.
توسعه دهندگان زبان "KuMir" هدف ایجاد یک زبان ساده برای دوره اولیه علوم کامپیوتر را دنبال کردند که با فناوری برنامه نویسی مدرن مطابقت داشته باشد و امکان استفاده از تولید را فراهم کند. زبان الگوریتم مدرسه به عنوان پایه در نظر گرفته شد. این زبان با ویژگی هایی تکمیل شد که آن را از آموزشی به تولیدی تبدیل می کند. زبان دارای:
انواع کل، چیز، روشن; مجموعه ای سنتی از عملیات روی داده های این نوع (شامل عملیات روی رشته ها و مجموعه استانداردی از توابع ریاضی)؛
آرایه ها ( برگه) انواع مشخص شده؛ سازه های کنترل سازه سیکل ها، انشعاب ها و غیره
Kumir باز است - اتصال مجری های خارجی زبان را با ویژگی های جدید غنی می کند: از مدیریت پایگاه داده و کار با اشیاء هندسی تا گسترش مجموعه انواع عددی معتبر (در این مورد، زبان اجازه می دهد تا انواع جدید را با انواع عددی موجود در عبارات مخلوط کنید).
فناوری برنامه نویسی مدرن به ما می آموزد که یک برنامه را نه تنها به زیربرنامه، بلکه به واحدهای بزرگتر نیز تقسیم کنیم: مجموعه برنامه هایی که روی داده های رایج کار می کنند. در زبان های برنامه نویسی مختلف، چنین واحدهایی به طور متفاوت نامیده می شوند، در KuMir چنین واحدی "Executor" نامیده می شود. مفهوم مجری در کار عملی بسیار مهم است و باید در اولین مراحل ممکن آموزش معرفی شود.
تجربه استفاده از KuMir در آموزش و توسعه نرم افزارهای آموزشی نشان داده است که یادگیری زبان آسان است و در عین حال به اندازه کافی قدرتمند است که می تواند کلاس گسترده ای از وظایف تولید را گسترش دهد.
مانند E-practice، KuMir یک سیستم یکپارچه است که شامل یک ویرایشگر متن، یک کامپایلر افزایشی با زمان پاسخ صفر، و همچنین یک دیباگر ساده و راحت است. یک نام خوب برای چنین سیستمی "Editor-Compiler" است: در حالی که شما در حال تایپ برنامه خود هستید، کامپایلر در حال پردازش آن است و هر لحظه برنامه بدون کوچکترین تاخیری آماده اجرا می شود.

2. نام ها و انواع ارزش ها. عملیات کومیر

از هر کاراکتر الفبای روسی و لاتین و همچنین اعداد می توان در نوشتن نام متغیرها استفاده کرد. نام نباید با عدد شروع شود. در سیستم KuMir هیچ محدودیت سختی برای طول نام ها وجود ندارد، اما برای سهولت در ویرایش و جلوگیری از پر شدن خطوط، متغیرها و الگوریتم ها نباید نام های طولانی داشته باشند. معمولاً نام به گونه ای انتخاب می شود که بتوانید درک کنید که الگوریتم برای چه چیزی در نظر گرفته شده است. هنگام ویرایش برنامه ها، همچنین باید به خاطر داشت که حروف روسی و لاتین، از نظر املای مشابه، توسط رایانه ها متمایز می شوند. به عنوان مثال، اگر کاربر هنگام توصیف متغیری به نام A، "A" را با الفبای لاتین تایپ کند و در متن الگوریتم سعی کند با تایپ نام آن به الفبای روسی به این متغیر دسترسی پیدا کند، سپس در این خط " نام تعریف نشده است" پیام در "فیلدها" ظاهر می شود.
زبان الگوریتمی سیستم برنامه نویسی KuMir از سه نوع کمیت استفاده می کند: اعداد صحیح ( کل), واقعی ( چیز) و با حروف ( لیتاس).
نوع ارزش- مجموعه مقادیری را که یک مقدار می تواند انجام دهد و مجموعه اقداماتی که می تواند با این مقدار انجام شود را تعریف می کند.
ارزشیک شی اطلاعات واحد است که دارای نام، مقدار و نوع است.

یک مقدار ثابت (ثابت) در طول اجرای الگوریتم مقدار خود را تغییر نمی دهد.
یک متغیر می تواند مقدار خود را در طول اجرای الگوریتم تغییر دهد.
اصطلاح- رکوردی که دنباله ای از اقدامات روی مقادیر را مشخص می کند. یک عبارت می تواند شامل ثابت ها، متغیرها، علائم عملیات، توابع باشد.
برای نوشتن عبارات در Kumir از نمادهای زیر استفاده می شود:

از نمادهای زیر برای تعیین نشانه های عملیات منطقی استفاده می شود:
= برابر
< >نا برابر؛
< меньше;
> بیشتر؛
< = меньше или равно;
> = بزرگتر یا مساوی؛
برای نوشتن شرایط پیچیده، از عملیات زیر استفاده می شود: و, یا نه.
و -
تحقق همزمان شرایط فوق (Х > 0 و Х< = 2);
یا- تحقق حداقل یکی از شرایط (X > 0 یا Y > 0)؛
نه- انکار

3. توابع داخلی زبان KuMir

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

درخواست

عملکرد

انواع

بحث و جدل

کارکرد

SIN(ایکس) cos(ایکس) تی جی (ایکس) EXP(ایکس) لوگاریتم (ایکس) ABS (ایکس) SQRT(ایکس) MOD(آ،ب) int(ایکس) PI

سینوس x کسینوس x مماس x
توان x (سابق) طبیعت لگاریتم x
ماژول x
جذر x
باقیمانده تقسیم (الف تا ب)
قسمت صحیح عدد
شماره "pi" - 3.14159

چیز
چیز
چیز
چیز
چیز
چیز
چیز
چیز، هدف
چیز
چیز

چیز
چیز
چیز
چیز
چیز
چیز
چیز
کل
کل
بدون استدلال

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

4. دستورات INPUT / OUTPUT

اغلب لازم است که تبادل اطلاعات ("گفتگو") بین یک شخص و یک کامپیوتر در فرآیند اجرای یک الگوریتم سازماندهی شود. برای انجام این کار، زبان الگوریتمی دستورات خاصی برای اطلاعات OUTPUT از حافظه کامپیوتر به صفحه نمایش و اطلاعات INPUT از صفحه کلید (از یک شخص) به حافظه کامپیوتر دارد.
دستور ENTER -دستوری که توسط آن مقادیر متغیرها از طریق دستگاه های ورودی (صفحه کلید) تنظیم می شود.
دستور OUTPUT- فرمانی که توسط آن مقدار مقدار بر روی دستگاه خروجی کامپیوتر (صفحه نمایش) منعکس می شود.
از آنجایی که مقادیر در زبان الگوریتمی برای ذخیره اطلاعات استفاده می شود، دستورات ورودی/خروجی نام مقادیری را نشان می دهد که مقادیر آنها باید نمایش داده شوند (روی صفحه نمایش داده شوند) یا وارد شوند (در حافظه رایانه به خاطر سپرده شوند). ).
مثال:

حرف رسمی NA (خط جدید) به رایانه نشان می دهد که اطلاعات باید در یک خط جدید خروجی شود.

5. دستور انتساب. ایجاد و ویرایش برنامه های ساختار خطی

برای به خاطر سپردن یا تغییر مقدار یک کمیت، دستور خاصی در زبان الگوریتمی وجود دارد - دستورالعمل تکلیف, که به صورت زیر نوشته شده است:

VALUE NAME: = EXPRESSION

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

الگوریتم هایی که دنباله ای ساده از اقدامات هستند، الگوریتم ساختار خطی نامیده می شوند.
فرآیند ایجاد یک الگوریتم خطی را با استفاده از مثال محاسبه عبارت در نظر بگیرید:
1. مجموع دو عدد را محاسبه کنید
2-برنامه ای برای یافتن ضایعات یک مثلث قائم الزاویه با دو پایه بنویسید
3. حجم یک مکعب را در صورتی که ضلع آن مشخص باشد، بیابید

6. ایجاد و ویرایش برنامه های ساختار شاخه ای

حل مسئله را نمی توان همیشه به صورت یک الگوریتم خطی نشان داد. وظایفی وجود دارد که در آنها لازم است بسته به هر شرایطی انتخاب انجام یک سری اقدامات سازماندهی شود. چنین الگوریتم هایی نامیده می شوند الگوریتم های ساختار شاخه ایدر سیستم برنامه نویسی KuMir، برای ایجاد الگوریتم برای ساختار انشعاب، ساختارهای "IF - THEN - ELSE - ALL" و "CHOICE - IF - ALL" ارائه شده است.

فرمان شعبه: IF - سپس - ELSE - ALL

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

طرح گرافیکی ساخت و ساز " اگر"

کلمات خدماتی " اگر", "سپس", "در غیر این صورت"معنای معمولی دارند. کلمه" همه"به معنی پایان ساخت و ساز است. بین" سپس"و" در غیر این صورت" - در یک یا چند خط - دنباله ای از دستورات زبان الگوریتمی نوشته شده است (سری 1). بین " در غیر این صورت"و" همه"توالی دیگری از دستورات ضبط می شود (سری 2). سری 2 همراه با کلمه سرویس" در غیر این صورت"ممکن است وجود نداشته باشد. هنگام اجرای " اگر"کامپیوتر ابتدا شرایط نوشته شده بین" را بررسی می کند. اگر"و" سپس". در نتیجه چک، یا آره، یا نهدر صورت امکان آره،سپس SERIES 1 اجرا می شود و اگر نه، -سپس سری 2 (در صورت وجود) .
اگر شرط برآورده نشود (معلوم می شود نه) و سری 2 به همراه " در غیر این صورت"غایب است، سپس کامپیوتر بلافاصله دستورات نوشته شده پس از کلمه را اجرا می کند" همه".

7. انواع چرخه در سیستم برنامه نویسی KuMir

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

حلقه با پیش شرط (حلقه در حالی که)

یک حلقه با پیش شرط (حلقه while) حلقه ای است که اجرای آن در حالی که شرط حلقه درست است تکرار می شود. کلمات خدماتی NC(آغاز چرخه) و KC(پایان چرخه) به شدت یکی زیر دیگری نوشته شده و با یک خط عمودی به هم متصل می شوند. در سمت راست این خط، یک دنباله تکراری از دستورات (بدنه حلقه) نوشته شده است.

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

با یک عدد صحیح مثبت ن. فاکتوریل این عدد را محاسبه کنید: ن! = 1 * 2 * 3 * ... * ن.

حلقه با پارامتر (حلقه برای)

حلقه با پارامتر(حلقه برای) - اجرای مکرر بدنه حلقه در حالی که پارامتر عدد صحیح از مجموعه تمام مقادیر از اولیه (i1) تا نهایی (in) عبور می کند:

در اینجا i یک متغیر از نوع عدد صحیح است که پارامتر حلقه نامیده می شود: i1، مقادیر اولیه و نهایی پارامتر حلقه هستند که می توانند با اعداد صحیح دلخواه یا عباراتی با مقادیر صحیح مشخص شوند. h - مرحله تغییر مقدار پارامتر سیکل، مقدار گام می تواند هر عدد صحیح (اعم از مثبت و منفی) باشد. ورودی "step h" در خط اول ممکن است به طور کلی وجود نداشته باشد، در حالی که مقدار پیش فرض مرحله 1 است.
هنگام اجرای یک حلقه برای،بدنه آن برای i = i1، i = i1 + h، i = i1 + 2*h، اجرا می شود. . . ، من = در. قوانین زبان الگوریتمی امکان تعیین هر عدد صحیح i1, in, h را می دهد. به طور خاص، ممکن است در کمتر از i1 باشد. اگر علاوه بر این مقدار h< 0, то цикл выполняется нужное количество раз, а если h имеет положительное значение, то этот случай не считается ошибочным - просто тело цикла не будет выполнено ни разу, а ЭВМ сразу перейдет к выполнению команд, записанных после KC. برای h = 0، حلقه گذاری رخ می دهد.

مثال: با یک عدد صحیح مثبت N. فاکتوریل این عدد را محاسبه کنید: N! = 1 * 2 * 3 * ... * N.

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

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

ai =ai-1+د

در دنباله 1، 1، 2، 3، 5، 8، 13، ... ( به آن دنباله فیبوناچی می گویند) هر جمله بعدی برابر است با مجموع دو جمله قبلی. برای این سکانس

ai = ai-1 + ai-2، a1 = a2 =1

فرمول هایی که عضو بعدی یک دنباله را بر حسب یک یا چند عضو قبلی بیان می کنند نامیده می شوند روابط مکرر.

9. مقادیر جدول و کار با آنها

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

کار با جداول خطی (آرایه های یک بعدی)

مثل هر ارزشی جدول خطیجایی در حافظه رایانه اشغال می کند، دارای نام، مقدار و نوع است. KuMir از جداول انواع عدد صحیح (celtab) و واقعی (vehtab) استفاده می کند. مثلا:

رکورد celtab A [ 1: 5 ] به این معنی است که مقدار A یک جدول (tab) متشکل از اعداد صحیح (اعداد صحیح) است، عناصر این جدول دارای شاخص هایی از 1 (حد پایین) تا 5 (حد بالایی) هستند. مقدار A پنج عدد صحیح است: 3، 15، 0، -10.101.
عناصر جدول نام جداگانه ای ندارند. برای تعیین عنصر i در جدول A، از رکورد A [i] استفاده می شود. به عنوان مثال، هنگام اجرای دستور A [ 3 ] : = A [ 2 ] + A [ 4 ] کامپیوتر به جای A [ 2 ] و A [ 4 ] مقادیر عناصر دوم و چهارم جدول A را جایگزین می کند. یعنی اعداد 15 و 10- آنها را با هم جمع کرده و مقدار حاصل را به عنصر سوم اختصاص دهید، بنابراین به جای 0، مقدار 5 به جای 0 در جای عنصر سوم جدول ظاهر می شود.
هر اعداد صحیح (هم مثبت و هم منفی) و همچنین 0 را می توان به عنوان مقادیر حاشیه جدول استفاده کرد.مقدار حاشیه پایین باید کمتر از مقدار حاشیه بالایی باشد، در صورت مساوی بودن جدول متشکل در نظر گرفته می شود. از یک عنصر اگر در توضیحات جدول، به دلیل اشتباه تایپی، کران پایینی بزرگتر از کران بالا باشد، به عنوان مثال، celtab [3: 1]، در این صورت این خطا در نظر گرفته نمی شود و هنگام وارد کردن الگوریتم ، هیچ پیامی در "فیلدها" ظاهر نمی شود. در این صورت فرض بر این خواهد بود که این جدول دارای یک عنصر واحد نیست و در اولین باری که به این جدول دسترسی پیدا می کند، پیام بد نمایان می شود.

یک وظیفه.

کار با جداول مستطیلی (ماتریس)

مانند یک جدول خطی، یک ماتریس فضایی در حافظه کامپیوتر اشغال می کند، یک نام، یک مقدار و یک نوع دارد. KuMir از جداول انواع عدد صحیح (celtab) و واقعی (vehtab) استفاده می کند.

علامت celtab A [ 1: 5, 1: 2 ] به این معنی است که مقدار A یک جدول (tab) متشکل از اعداد صحیح (صحیح) است، عناصر این جدول دارای شاخص هایی از (ستون اول، ردیف اول) تا (آخرین) هستند. ستون، خط آخر). مقدار A ده عدد صحیح است: 3، 15، 0، -10، 101، 200، -45، 50، 10، 222.
عناصر جدول نام جداگانه ای ندارند. برای تعیین عنصر i در جدول A، از رکورد A [i, j] استفاده می شود. برای مثال، هنگام اجرای دستور A [ 3, 1 ] : = A [ 2, 1 ] + A [ 4, 1 ] کامپیوتر به جای A [ 2, 1 ] و A [ 4, 1 ] مقادیر را جایگزین می کند. از عناصر 2 و 4 ستون اول جدول A، یعنی اعداد 15 و 10- آنها را جمع کرده و مقدار حاصل را به عنصر سوم ردیف اول اختصاص می دهد، به طوری که به جای 0، مقدار 5 می شود. به جای 0 به جای عنصر 3 ردیف اول در جدول ظاهر می شود.
هر اعداد صحیح (هم مثبت و هم منفی) و همچنین 0 را می توان به عنوان مقادیر حاشیه جدول استفاده کرد.مقدار حاشیه پایین باید کمتر از مقدار حاشیه بالایی باشد، در صورت مساوی بودن جدول متشکل در نظر گرفته می شود. از یک عنصر اگر در توضیحات جدول، به دلیل اشتباه تایپی، کران پایینی بزرگتر از کران بالا باشد، مثلاً celtab [3: 1، 5: 2]، این خطا تلقی نمی شود، و هنگام ورود به الگوریتم هیچ پیامی در "فیلدها" ظاهر نمی شود. در این صورت فرض بر این خواهد بود که این جدول دارای یک عنصر واحد نیست و در اولین باری که به این جدول دسترسی پیدا می کند، پیام بد نمایان می شود.

یک وظیفه.در جدول B، شاخص و مقدار حداکثر عنصر را تعیین کنید.

ضمیمه: وظایف

الگوریتم های خطی

وظیفه شماره 1

مجموع دو عدد a و b را پیدا کنید
راه حل:

alg مجموع
زود چیز الف، ب، ج
نتیجه "مقدار 2 عدد را وارد کنید"
ورودی الف، ب
c:= a + b
نتیجه ns ، "مجموع اعداد"، "a"، "و"، "b" برابر با"، c
باهم

وظیفه شماره 2

تفاوت دو عدد را پیدا کنید
راه حل:

alg تفاوت
زود چیز الف، ب، ج
نتیجه "مقادیر متغیر را وارد کنید"
ورودی الف، ب
ج:= الف - ب
خروجی ns "تفاوت اعداد"، a" و"، "b" برابر است، c
باهم

وظیفه شماره 3

حاصل ضرب هر دو عدد طبیعی را پیدا کنید
راه حل:

کل الف، ب، ج

alg کار کردن
زود
نتیجه
" دو عدد وارد کنید"
ورودی
آ،بج:=یک +ب
خروجی ns
"
حاصل ضرب اعداد"a"و"b"برابر"،c
باهم

وظیفه شماره 4

ضریب دو عدد طبیعی را پیدا کنید
راه حل:

چیز الف، ب، ج

alg خصوصی
زود
نتیجه "
سود سهام و تقسیم کننده را وارد کنید"
ورودی
الف، ب
ج:= a/b
خروجی ns
"ضریب"، "a"، "و"، "ب" برابر با"، c
باهم

وظیفه شماره 5

میانگین حسابی پنج عدد دلخواه را پیدا کنید
راه حل:

چیز الف، ب، ج، د، ه، ف

alg حسابی
شروع کردن کارها الف، ب، ج، د، ه، ف
نتیجه "هر 5 عدد را وارد کنید"
ورودی الف، ب، ج، د، ه
f:=(a + b + c + d + e)/ 5
نتیجه گیری ns "میانگین حسابی 5 عدد است"، f
باهم

شاخه

وظیفه شماره 1

بزرگترین را از بین 3 عدد صحیح بیابید (اعداد دلخواه هستند)

alg بیشترین
هدف اولیه a B C
نتیجه "سه عدد تصادفی وارد کنید"
ورودی a B C
اگر a>b>c
سپس نتیجه ns است "حداکثر عدد است" و
همه
اگر آ<б>با
سپس نتیجه ns است "حداکثر عدد است"، ب
همه
اگر آ<б<с
سپس نتیجه ns است "حداکثر عدد است" با
همه
باهم

وظیفه شماره 2

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

alg وضعیت
شروع کردن کارها الف، ب
نتیجه "دو عدد را وارد کنید"
ورودی الف، ب
اگر a > b
سپس a:= a + b
b := a * b
در غیر این صورت a:= a * b
b := a + b
نتیجه گیری ns ، الف، ب
باهم

وظیفه شماره 3:

از بین 4 عدد دلخواه حداقل را پیدا کنید
راه حل:

alg کمترین
شروع کردن کارها الف، ب، ج، ه
نتیجه "4 عدد تصادفی را وارد کنید"
ورودی الف، ب، س ه
اگر a>b>c>e
سپس نتیجه ns است "حداکثر تعداد-"، و
همه
اگر آ<б>c>e
سپس نتیجه ns است "حداکثر تعداد -"، ب
همه
اگر
آ<б<с>ه
سپس نتیجه ns است "حداکثر تعداد -"، s
همه
اگر
آ<б<с<е
سپس نتیجه ns است ، "حداکثر تعداد -"، e
همه
باهم

وظیفه شماره 4

با توجه به 2 پایه (2 سانتی متر و 2 سانتی متر) از مثلث متساوی الساقین و قاعده آن (2.82 سانتی متر). مشخص کنید که مثلث قائم الزاویه است یا خیر.
راه حل:

alg مثلث
شروع کردن کارها من، ساعت، س
i:= 2
h:= 2
c: = 2.82
اگر c**2= (i**2)+(h**2)
سپس خروجی "حقیقت"
در غیر این صورت خروجی "کاذب"
همه
باهم

وظیفه شماره 5

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

alg منفی
شروع کردن کارها i، h، s، m
نتیجه "دو عدد منفی وارد کنید"
ورودی من ساعت
c:=0
m := i*h
اگر m>s
سپس نتیجه ns است ، "درست است، واقعی"
در غیر این صورت خروجی ns "کاذب"
همه
باهم

حلقه "برای"

وظیفه شماره 1

پیدا کردن فاکتوریلعدد طبیعیn ( فاکتوریل یک عدد طبیعی n حاصلضرب تمام اعداد طبیعی بین 1 و n ) راه حل:

alg فاکتوریل
شروع کردن کارها
آ. ب
کل
n، و
نتیجه

ورودی
n
a:= 1
nc برای
و از جانب 1 قبل از n
نتیجه گیری ns,
"شماره را وارد کنید"
ورودی
ب
a:= a * b
kts
نتیجه گیری ns
,
"فاکتوری"، n"از اعداد صحیح است" و
باهم

وظیفه شماره 2

حداکثر مقدار را در میان بیابیدn - اعداد صحیح
راه حل:

alg بیشترین
شروع کردن کارها
الف، ب
کل
که در
نتیجه
"تعداد اعداد صحیح را برای مقایسه وارد کنید"
ورودی
n
a:=0
nc برای
و از جانب 1 قبل از n
نتیجه گیری ns,
"شماره را وارد کنید"
ورودی
ب
اگر
b>a
سپس
a:=b
همه
kts
نتیجه گیری ns,
"حداکثر تعداد در میان داده ها یک عدد است" و
باهم

وظیفه شماره 3

پیدا کردن در میانn-اعداد صحیح تعداد منفی
راه حل:

alg اتفاقی
شروع کردن کارها
الف، ب، ج
کل
n، من، s
نتیجه "
تعداد اعداد طبیعی را وارد کنید"
ورودی
n
نتیجه گیری ns,
"شماره را وارد کنید"
ورودی
ب
n:= n - 1
h: = 0
nc برای
و از جانب 1 قبل از n
نتیجه گیری ns,"
شماره را وارد کنید"
ورودی
با
اگر
c = b
سپس
s:= s + 1
همه
kts
نتیجه گیری ns
,

باهم

وظیفه شماره 4

به ترتیب n عدد صحیح وارد می شود. تعداد موارد منطبق با عدد اول را پیدا کنید
راه حل:

شروع کردن کارها الف، ب، ج
کل
n، من، s
نتیجه
"تعداد اعداد طبیعی را وارد کنید"
ورودی
n
نتیجه گیری ns,
"شماره را وارد کنید"
ورودی
ب
n:= n - 1
h: = 0
nc برای
و از جانب 1 قبل از n
نتیجه گیری ns,
"شماره را وارد کنید"
ورودی
با
اگر
c = b
سپس s:= s + 1
همه
kts
نتیجه گیری ns
,
"تعداد منطبق با عدد اول است"، z
باهم

وظیفه شماره 5

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

alg تفاوت
شروع کردن کارها
آ. ب، س، د
کل
n، و
نتیجه
"تعداد اعداد را وارد کنید"
ورودی
n
a:= 0
c:=0
nc برای
و از جانب 1 قبل از n
نتیجه گیری ns,
"شماره را وارد کنید"
ورودی
د
اگر
e>s
سپس
ج:=د
همه
اگر
د<а
سپس
الف:= د
همه
kts
b:= c - a
نتیجه گیری ns,
"تفاوت بین مقادیر حداقل و حداکثر برابر است"، ب
باهم

حلقه while

وظیفه شماره 1

مجموع اعداد بین 1 تا 5 را پیدا کنید
راه حل:

alg شماره
شروع کردن کارها الف، ب
نتیجه "دو عدد را طوری وارد کنید که عدد دوم بزرگتر از عدد اول باشد"
ورودی الف، ب
nts خداحافظ آ<б
a:= a + 1
kts
نتیجه گیری ns
، آ
باهم

وظیفه شماره 2

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

alg مجموع
شروع کردن کارها الف، ب، ج
نتیجه "فاصله جمع بندی را وارد کنید"
ورودی الف، ب
ج:= الف
nts خداحافظ آ< б
a:= a + 1
c:= c + a
kts
نتیجه گیری ns
"مجموع اعداد در بازه داده شده است" با
باهم

وظیفه شماره 3

دو عدد دلخواه به شما داده می شود. تا زمانی که محصول آنها کمتر از 100 باشد، هر عدد را 2 عدد افزایش دهید و اعداد نهایی را روی مانیتور نمایش دهید.
راه حل:

alg کار کردن
شروع کردن کارها الف، ب، ج
نتیجه "دو عدد تصادفی وارد کنید"
ورودی الف، ب
c: = 100
nts خداحافظ الف*ب< с
a:= a + 2
b := b + 2
kts
نتیجه گیری ns
، الف، ب
باهم

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

وظیفه شماره 1

یک آرایه را با اعداد تصادفی پر کنید و عناصر آن را خروجی بگیرید راه حل:

alg آرایه 2
هدف اولیه
n,i
چیز
ب، حداکثر
میز لباس
a [1:n]
نتیجه
"پر کردن آرایه"
ورودی
n
حداکثر: = 0
nc برای
من از جانب 1 قبل از n
نتیجه گیری ns,
"ورود عنصر آرایه"
ورودی
ب
اگر
b > حداکثر
سپس حداکثر: = ب
همه
kts
نتیجه گیری ns
,

باهم

وظیفه شماره 2

حداکثر عنصر آرایه را پیدا کنید و آن را در مانیتور نمایش دهید راه حل:

alg آرایه 2
زود
کل n,i
چیز
ب، حداکثر
میز لباس a [1:n]
نتیجه
"پر کردن آرایه"
ورودی
n
حداکثر: = 0
nc برای
من از جانب 1 قبل از n
نتیجه گیری ns,
"ورود عنصر آرایه"
ورودی
ب
اگر
b > حداکثر
سپس حداکثر: = ب
همه
kts
نتیجه گیری ns
,
"حداکثر عنصر این آرایه است"، حداکثر
باهم

وظیفه شماره 3

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

alg مجموع
زود کل
n,i
میز لباس
a [1:n]
چیز
b، z
نتیجه
"تعداد عناصر آرایه را وارد کنید"
ورودی
n
z:= 0
nc برای من از جانب 1 قبل از n
نتیجه گیری ns,
"ورود عنصر آرایه"
ورودی
ب
z:= z + b
kts
نتیجه گیری ns
,
"جمع"، n" عناصر آرایه برابر است، z
باهم

وظیفه شماره 4

حاصل ضرب عناصر یک آرایه یک بعدی را پیدا کنید.

alg کار کردن
هدف اولیه
که در
چیز
SD
میز لباس
a [1:n]
نتیجه
"تعداد عناصر آرایه را وارد کنید"
ورودی
n
d: = 1
nc برای
من از جانب 1 قبل از n
نتیجه گیری ns,
"شماره را وارد کنید"
ورودی
س
d:= d*s
kts
نتیجه گیری ns
,"
محصول»، n، «عناصر برابر است»، d
باهم

آرایه ها

وظیفه شماره 1


ماتریس را با اعداد تصادفی پر کنید راه حل:

alg آرایه دو بعدی است
کل
n، j، h، v
نوار لباس را شروع کنید
آ
نتیجه
"تعداد عناصر را در جدول وارد کنید"
ورودی
n
h: = 0
v: = 0
نتیجه گیری ns,
"پر کردن آرایه"
ورودی
آ
nc برای
j از جانب 1 قبل از n
اگر a > 0
سپس
h:= h + 1
در غیر این صورت
v:= v + 1
kts
نتیجه گیری ns,
آ
باهم


وظیفه شماره 2


تعداد عناصر مثبت و منفی ردیف اول ماتریس را محاسبه کنید.

alg آرایه 2
زود
چیز b، x، z
کل
که در
نتیجه

ورودی
n x:=0
z:= 0
nc برای
من از جانب 1 قبل از n
نتیجه
ns"شماره را وارد کنید"
ورودی
ب
اگر
b > 0
سپس
x:= x + 1
در غیر این صورت
z:= z + 1
همه
kts
نتیجه گیری ns
,

نتیجه گیری ns,

باهم


وظیفه شماره 3


مجموع عناصر هر ردیف را محاسبه کنید راه حل:

alg آرایه 3
شروع کردن کارها
b، x، z، y
کل
که در
میز لباس
a[1:n، 1:n]
نتیجه
"تعداد ستون ها را وارد کنید"
ورودی
n x:=0
z:= 0
nc برای
من از جانب 1 قبل از n
نتیجه گیری ns,
"پر کردن آرایه"
ورودی
a[1:n، 1:n]
b:= a[ 1,i ]+a[ n, i ]
kts
نتیجه گیری ns
,
"تعداد اعداد مثبت" است، x
نتیجه گیری ns,
"تعداد اعداد منفی است"، z
باهم


وظیفه شماره 4


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

alg ماتریس
زود کل
که در
میز لباس a [1:3، 1:3]
نتیجه "پر کردن آرایه"
ورودی a [1:3، 1:3]
n:=0
nc برای من از جانب 1 قبل از 3
n:= n + a[ 2,i]
kts
نتیجه ns,
"مجموع اعداد در ردیف دوم آرایه است"، n
باهم

کارت های وظیفه

    از بین اعداد صحیح وارد شده از صفحه کلید تعداد منفی را بیابید

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

    به ترتیب n - عدد صحیح وارد می شود. تعداد پنج ها را در یک دنباله بیابید

    به ترتیب n - عدد صحیح وارد می شود. تفاوت بین مقادیر حداکثر و حداقل اعداد داده شده را پیدا کنید

    از بین اعداد صحیح وارد شده از صفحه کلید تعداد منفی را بیابید

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

    به ترتیب n - عدد صحیح وارد می شود. تعداد پنج ها را در یک دنباله بیابید

    به ترتیب n - عدد صحیح وارد می شود. تفاوت بین مقادیر حداکثر و حداقل اعداد داده شده را پیدا کنید

    از بین اعداد صحیح وارد شده از صفحه کلید تعداد منفی را بیابید

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

    به ترتیب n - عدد صحیح وارد می شود. تعداد پنج ها را در یک دنباله بیابید

    به ترتیب n - عدد صحیح وارد می شود. تفاوت بین مقادیر حداکثر و حداقل اعداد داده شده را پیدا کنید

    از بین اعداد صحیح وارد شده از صفحه کلید تعداد منفی را بیابید

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

    به ترتیب n - عدد صحیح وارد می شود. تعداد پنج ها را در یک دنباله بیابید

    به ترتیب n - عدد صحیح وارد می شود. تفاوت بین مقادیر حداکثر و حداقل اعداد داده شده را پیدا کنید