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

کلید واژه ها:

  • الگوریتم
  • ویژگی های الگوریتم
    • گسستگی
    • وضوح
    • یقین - اطمینان - قطعیت
    • اثربخشی
    • شخصیت توده ای
  • مجری
  • ویژگی های مجری
    • محدوده وظایفی که باید حل شوند
    • چهار شنبه
    • حالت عملیاتی
    • سیستم فرماندهی
  • اجرای رسمی الگوریتم

3.1.1. مفهوم الگوریتم

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

مثال 1. مسئله "یافتن میانگین حسابی دو عدد" در سه مرحله حل می شود:

  • به دو عدد فکر کنید
  • دو عدد را در ذهن اضافه کنید.
  • مقدار حاصل را بر 2 تقسیم کنید.

مثال 2. وظیفه "واریز پول به حساب تلفن خود" به مراحل زیر تقسیم می شود:

  • به پایانه پرداخت بروید؛
  • اپراتور مخابراتی را انتخاب کنید؛
  • یک شماره تلفن وارد کنید؛
  • بررسی کنید که عدد وارد شده صحیح است.
  • درج اسکناس در پذیرنده قبض؛
  • منتظر پیامی در مورد واریز پول به حساب خود باشید.
  • چک دریافت کنید

مثال 3. مراحل حل مسئله "رسم جوجه تیغی خنده دار" به صورت گرافیکی ارائه شده است:

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

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

به طور کلی، نمودار عملکرد الگوریتم را می توان به صورت زیر نشان داد (شکل 3.1):

برنج. 3.1.
طرح کلی الگوریتم

الگوریتم ها قواعد جمع، تفریق، ضرب و تقسیم اعداد، قواعد دستوری، قواعد ساختارهای هندسی و غیره هستند که در مدرسه مورد مطالعه قرار می گیرند.

انیمیشن های "کار با یک الگوریتم"، "بزرگترین مقسوم علیه مشترک"، "کمترین مضرب مشترک" (http://school-collection.edu.ru/) به شما کمک می کند برخی از الگوریتم های مطالعه شده در درس های زبان روسی و ریاضیات را به خاطر بسپارید.

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

  1. طول (به کاراکتر) رشته منبع کاراکترها محاسبه می شود.
  2. اگر طول زنجیره اصلی فرد باشد، عدد 1 به زنجیره اصلی در سمت راست اضافه می شود، در غیر این صورت زنجیره تغییر نمی کند.
  3. نمادها به صورت جفت (اول با دوم، سوم با چهارم، پنجم با ششم و غیره) تعویض می شوند.
  4. عدد 2 در سمت راست زنجیره حاصل اضافه می شود.

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

بنابراین، اگر زنجیره اولیه A#B بود، نتیجه الگوریتم زنجیره #A1B2 و اگر زنجیره اولیه ABC@ بود، نتیجه الگوریتم زنجیره BA@B2 خواهد بود.

3.1.2. مجری الگوریتم

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

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

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

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

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

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

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

بیایید به نمونه هایی از مجریان نگاه کنیم.

مثال 5. مجری لاک پشت روی صفحه کامپیوتر حرکت می کند و ردی به شکل یک خط از خود بر جای می گذارد. سیستم فرمان لاک پشت از دو دستور تشکیل شده است:

    جلو n (که در آن n یک عدد صحیح است) - باعث می شود لاک پشت n گام را در جهت حرکت حرکت دهد - در جهتی که سر و بدنش رو به رو است.

    راست m (که m یک عدد صحیح است) - باعث می شود جهت حرکت لاک پشت در جهت عقربه های ساعت m درجه تغییر کند.

ضبط تکرار k [<Команда1> <Команда2> ... <Командаn>] به این معنی است که توالی دستورات داخل پرانتز k بار تکرار می شود.

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

    12 را تکرار کنید [راست 4 5 جلو 20 راست 45]

مثال 6. سیستم دستورات مجری کامپیوتر از دو دستور تشکیل شده است که به آنها اعداد اختصاص داده شده است:

    1 - تفریق 1
    2 - ضرب در 3

اولی عدد را 1 کاهش می دهد، دومی عدد را 3 برابر افزایش می دهد. هنگام نوشتن الگوریتم ها، برای اختصار، فقط اعداد دستور نشان داده می شوند. به عنوان مثال، الگوریتم 21212 به معنای دنباله دستورات زیر است:

    ضرب در 3
    تفریق 1
    ضرب در 3
    تفریق 1
    ضرب در 3

با استفاده از این الگوریتم، عدد 1 به 15 تبدیل می شود: ((1-3-1)-3-1)-3 = 15.

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

    1 - بالا
    2 - پایین
    3 - درسته
    4 تا باقی مانده

هنگام اجرای هر دستوری، ربات به سلول مجاور در جهت مشخص شده حرکت می کند. اگر دیواری در این جهت بین سلول ها وجود داشته باشد، ربات از بین می رود. اگر ربات دنباله ای از دستورات 32323 را اجرا کند (در اینجا اعداد نشان دهنده اعداد فرمان هستند)، با شروع حرکت از سلول A، چه اتفاقی برای ربات می افتد؟ ربات چه دنباله ای از دستورات را باید اجرا کند تا از سلول A به سلول B بدون فرو ریختن در هنگام برخورد با دیوارها حرکت کند؟

هنگام توسعه یک الگوریتم:

  1. اشیایی که در مشکل ظاهر می شوند شناسایی می شوند، ویژگی های اشیاء، روابط بین اشیاء و اقدامات ممکنبا اشیاء؛
  2. داده های اولیه و نتیجه مورد نیاز تعیین می شود.
  3. توالی اقدامات مجری تعیین می شود و از انتقال از داده های اولیه به نتیجه اطمینان حاصل می شود.
  4. توالی اقدامات با استفاده از دستورات موجود در سیستم فرمان مجری ثبت می شود.

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

3.1.3. ویژگی های الگوریتم

هر دستورالعمل، دنباله ای از دستورالعمل ها یا برنامه عملیاتی را نمی توان یک الگوریتم در نظر گرفت. هر الگوریتم لزوماً دارای ویژگی های زیر است: گسسته بودن، قابل درک بودن، قطعیت، اثربخشی و ویژگی انبوه.

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

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

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

ویژگی کارایی به این معنی است که الگوریتم باید بتواند نتیجه ای را پس از تعداد مراحل محدود و احتمالاً بسیار زیاد به دست آورد. در این صورت، نتیجه نه تنها پاسخ تعیین شده توسط بیان مسئله، بلکه نتیجه گیری در مورد عدم امکان ادامه حل این مشکل به هر دلیلی در نظر گرفته می شود.

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

مثال 8. بیایید یکی از روش‌های یافتن تمام اعداد اول که بیشتر از n نباشد را در نظر بگیریم. این روش "الک اراتوستن" نامیده می شود، که به نام دانشمند یونان باستان اراتوستن که آن را پیشنهاد کرده است، نامگذاری شده است.

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

  1. تمام اعداد صحیح از 2 تا n را پشت سر هم بنویسید (2، 3، 4، ...، n).
  2. قاب 2 - اولین عدد اول؛
  3. تمام اعداد قابل تقسیم بر آخرین عدد اول یافت شده را از لیست خط بزنید.
  4. اولین عدد بدون علامت را پیدا کنید (اعداد علامت گذاری شده اعداد خط خورده یا اعداد محصور در یک قاب هستند) و آن را در یک قاب محصور کنید - این عدد اول دیگری خواهد بود.
  5. مراحل 3 و 4 را تکرار کنید تا جایی که اعداد بدون علامت باقی نماند.

می توانید با استفاده از انیمیشن "غربال اراتوستن" (http://school-collection.edu.ru/) ایده بصری تری از روش یافتن اعداد اول بدست آورید.

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

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

ویژگی های در نظر گرفته شده الگوریتم به ما اجازه می دهد تا تعریف دقیق تری از الگوریتم ارائه دهیم.

3.1.4. امکان اتوماسیون فعالیت های انسانی

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

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

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

بیایید الگوریتمی را در نظر بگیریم که به دنبال آن بازیکن اول مطمئناً برنده شدن را تضمین می کند.

  1. اگر تعداد اشیاء موجود در توده مضرب 3 باشد، جای خود را به حریف بدهید، در غیر این صورت بازی را شروع کنید.
  2. با حرکت بعدی خود، هر بار تعداد اشیاء گرفته شده توسط حریف را به 3 اضافه کنید (تعداد اشیاء باقی مانده باید مضرب 3 باشد).

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

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

مهم ترین

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

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

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

سوالات و وظایف

  1. الگوریتم چیست؟
  2. مترادف کلمه "نسخه" را پیدا کنید.
  3. الگوریتم هایی را که در مدرسه مطالعه کرده اید مثال بزنید.
  4. چه کسی می تواند مجری الگوریتم باشد؟
  5. مثالی از یک مجری رسمی بزنید. زمانی که شخصی به عنوان یک مجری رسمی عمل می کند مثال بزنید.
  6. ربات چه دستوراتی باید وظایف زیر را انجام دهد: الف) صندوقدار در فروشگاه. ب) سرایدار؛ ج) نگهبان؟
  7. چه چیزی محدوده وظایف انجام شده توسط "رایانه" را تعیین می کند؟
  8. به عنوان یک مجری در نظر بگیرید واژه پرداز، در رایانه شما موجود است. طیف وسیعی از وظایف حل شده توسط این مجری و محیط او را شرح دهید.
  9. یک تیم، یک سیستم از دستورات اجرا کننده چیست؟
  10. ویژگی های اصلی الگوریتم را فهرست کنید.
  11. عدم وجود ویژگی در یک الگوریتم چه چیزی می تواند منجر شود؟ مثال بزن.
  12. چرا مهم است که بتوانیم یک الگوریتم را به طور رسمی اجرا کنیم؟
  13. دنباله اعداد بر اساس الگوریتم زیر ساخته شده است: دو عدد اول دنباله برابر با 1 در نظر گرفته شده است. هر عدد بعدی در دنباله برابر با مجموع دو عدد قبلی در نظر گرفته می شود. 10 عبارت اول این دنباله را یادداشت کنید.
  14. برخی از الگوریتم‌ها یک زنجیره جدید از یک رشته کاراکتر به شرح زیر بدست می‌آورند. ابتدا زنجیره اصلی کاراکترها نوشته می شود، بعد از آن زنجیره اصلی کاراکترها به ترتیب معکوس نوشته می شود، سپس حرفی که در الفبای روسی بعد از حرفی که در آخرین جای زنجیره اصلی قرار داشت نوشته می شود. اگر آخرین مکان در زنجیره اصلی حرف Z باشد حرف A به عنوان حرف بعدی نوشته می شود زنجیره به دست آمده نتیجه الگوریتم است. به عنوان مثال، اگر زنجیره اصلی کاراکترها DOM بود، نتیجه الگوریتم زنجیره DOMMODN خواهد بود. رشته کاراکتر COM داده شده است. اگر الگوریتم را روی این زنجیره اعمال کنید و سپس الگوریتم را دوباره روی نتیجه کار آن اعمال کنید، در زنجیره نمادها چند حرف O وجود خواهد داشت؟
  15. انیمیشنی از مراحل الگوریتم اراتوستن را در اینترنت پیدا کنید. از الگوریتم اراتوستن برای یافتن تمام اعداد اول که بیشتر از 50 نباشند استفاده کنید.
  16. نتیجه اجرای لاک پشت (به مثال 5) از الگوریتم چه خواهد بود؟
      8 را تکرار کنید [راست 45 به جلو 45]
  17. الگوریتمی را برای مجری ماشین حساب بنویسید (مثال 6) که حاوی بیش از 5 دستور نباشد:
      الف) دریافت از شماره 3 عدد 16؛
      ب) از شماره 1 عدد 25 را دریافت کنید.
  18. سیستم دستورات مجری سازنده از دو دستور تشکیل شده است که به آنها اعداد اختصاص داده شده است:
      1 - اختصاص 2
      2- تقسیم بر 2

    با توجه به اولی، 2 به عدد سمت راست اضافه می شود، با توجه به دومی، عدد بر 2 تقسیم می شود. اگر اجرا کننده الگوریتم 22212 را اجرا کند، عدد 8 چگونه تبدیل می شود؟ الگوریتمی در سیستم فرمان این مجری ایجاد کنید که طبق آن عدد 1 به عدد 16 تبدیل می شود (الگوریتم نباید بیش از 5 دستور داشته باشد).

  19. اجراکننده Robot (مثال 7) در کدام سلول باید قرار گیرد تا پس از اجرای الگوریتم 3241 به آن بازگردد؟

| § 2.1. الگوریتم ها و مجریان

درس 14
§ 2.1. الگوریتم ها و مجریان

کلید واژه ها:

الگوریتم
ویژگی های الگوریتم (گسسته بودن، قابل درک بودن، قطعیت، اثربخشی، ویژگی انبوه)
مجری
ویژگی های مجری (محدوده وظایفی که باید حل شوند، محیط، حالت عملیات، سیستم فرمان)
اجرای رسمی الگوریتم

2.1.1. مفهوم الگوریتم

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

مثال 1.مسئله "یافتن میانگین حسابی دو عدد" در سه مرحله حل می شود:

1) به دو عدد فکر کنید.
2) دو عدد برنامه ریزی شده را اضافه کنید.
3) مقدار حاصل را بر 2 تقسیم کنید.

مثال 2.وظیفه "واریز پول به حساب تلفن خود" به مراحل زیر تقسیم می شود:

1) به پایانه پرداخت بروید.
2) اپراتور مخابراتی را انتخاب کنید.
3) یک شماره تلفن وارد کنید؛
4) بررسی کنید که عدد وارد شده صحیح است.
5) درج اسکناس در پذیرنده قبض.
6) منتظر پیامی در مورد واریز پول به حساب خود باشید.
7) چک دریافت کنید.

مثال 3.مراحل حل مسئله "رسم جوجه تیغی خنده دار" به صورت گرافیکی ارائه شده است:


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

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

به طور کلی، نمودار عملکرد الگوریتم را می توان به صورت زیر نشان داد (شکل 2.1).

برنج. 2.1. طرح کلی الگوریتم

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

انیمیشن های "کار با یک الگوریتم" (193576)، "بزرگترین مقسوم علیه مشترک" (170363)، "کمترین مضرب مشترک" (170390) به شما کمک می کند برخی از الگوریتم های مطالعه شده در درس های زبان روسی و ریاضیات (http://sc.edu) را به خاطر بسپارید. ru /).

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

1. طول (به کاراکتر) رشته اصلی کاراکترها محاسبه می شود.
2. اگر طول زنجیره اصلی فرد باشد، عدد 1 به زنجیره اصلی سمت راست اضافه می شود، در غیر این صورت زنجیره تغییر نمی کند.
3. نمادها به صورت جفت (اول با دوم، سوم با چهارم، پنجم با ششم و غیره) تعویض می شوند.
4. عدد 2 در سمت راست زنجیره حاصل اضافه می شود.

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

بنابراین، اگر زنجیره اولیه A#B بود، نتیجه الگوریتم زنجیره #A1B2 و اگر زنجیره اولیه ABC@ بود، نتیجه الگوریتم زنجیره BA@B2 خواهد بود.

2.1.2. مجری الگوریتم

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

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

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

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

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

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

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

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

بیایید به نمونه هایی از مجریان نگاه کنیم.

مثال 5.مجری لاک پشت روی صفحه کامپیوتر حرکت می کند و ردی به شکل یک خط از خود بر جای می گذارد.

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

1. جلو n (که در آن n یک عدد صحیح است) - باعث می شود لاک پشت n گام را در جهت حرکت حرکت دهد - در جهتی که سر و بدنش رو به رو است.
2. راست m (که m یک عدد صحیح است) - باعث تغییر جهت حرکت لاک پشت به اندازه t درجه در جهت عقربه های ساعت می شود.
رکورد تکرار k [<Команда1> <Команда2> ... <Командаn>] به این معنی است که ترتیب دستورات داخل پرانتز k بار تکرار می شود.

به این فکر کنید که پس از تکمیل الگوریتم زیر توسط لاک پشت، چه شکلی روی صفحه ظاهر می شود.
12 را تکرار کنید [راست 45 به جلو 20 راست 45]

مثال 6.سیستم دستورات مجری کامپیوتر از دو دستور تشکیل شده است که به آنها اعداد اختصاص داده شده است:

1 - تفریق 1
2 - ضرب در 3

اولی عدد را 1 کاهش می دهد، دومی عدد را 3 برابر افزایش می دهد. هنگام نوشتن الگوریتم ها، برای اختصار، فقط اعداد دستور نشان داده می شوند. به عنوان مثال، الگوریتم 21212 به معنای دنباله دستورات زیر است:

ضرب در 3
تفریق 1
ضرب در 3
تفریق 1
ضرب در 3

با استفاده از این الگوریتم عدد 1 به 15 تبدیل می شود:

((1 3 - 1) 3 - 1) 3 = 15.

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


1 - بالا
2 - پایین
3 - درسته
4 تا باقی مانده

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

اگر ربات دنباله ای از دستورات 32323 را اجرا کند (در اینجا اعداد نشان دهنده اعداد فرمان هستند)، با شروع حرکت از سلول A، چه اتفاقی برای ربات می افتد؟ ربات چه دنباله ای از دستورات را باید اجرا کند تا از سلول A به سلول B بدون فرو ریختن در هنگام برخورد با دیوارها حرکت کند؟

هنگام توسعه یک الگوریتم:

1) اشیاء ظاهر شده در مشکل شناسایی می شوند، ویژگی های اشیاء، روابط بین اشیاء و اقدامات ممکن با اشیاء ایجاد می شود.
2) داده های اولیه و نتیجه مورد نیاز تعیین می شود.
3) توالی اقدامات مجری تعیین می شود و از انتقال از داده های اولیه به نتیجه اطمینان حاصل می شود.
4) توالی اقدامات با استفاده از دستورات موجود در سیستم فرمان اجرا کننده ثبت می شود.

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

2.1.3. ویژگی های الگوریتم

هر دستورالعمل، دنباله ای از دستورالعمل ها یا برنامه عملیاتی را نمی توان یک الگوریتم در نظر گرفت. هر الگوریتم لزوماً دارای ویژگی های زیر است: گسسته بودن، قابل درک بودن، قطعیت، اثربخشی و ویژگی انبوه.

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

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

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

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

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

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

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

1) تمام اعداد طبیعی از 2 تا n (2، 3، 4، ...، n) را در یک ردیف بنویسید.
2) قاب 2 - اولین عدد اول؛
3) تمام اعدادی را که بر آخرین عدد اول یافت شده تقسیم می شوند، از لیست خط بزنید.
4) اولین عدد بدون علامت را پیدا کنید (اعداد علامت گذاری شده اعداد خط زده یا اعداد محصور در یک قاب هستند) و آن را در یک قاب محصور کنید - این عدد اول دیگری خواهد بود.
5) مراحل 3 و 4 را تکرار کنید تا اعداد بدون علامت باقی نماند.

می توانید با استفاده از انیمیشن "Sieve of Eratosthenes" (180279) که در مجموعه یکپارچه منابع آموزشی دیجیتال ارسال شده است، ایده بصری تری از روش یافتن اعداد اول بدست آورید.

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

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

ویژگی های در نظر گرفته شده الگوریتم به ما اجازه می دهد تا تعریف دقیق تری از الگوریتم ارائه دهیم.

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

2.1.4. امکان اتوماسیون فعالیت های انسانی

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

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

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

بیایید الگوریتمی را در نظر بگیریم که به دنبال آن بازیکن اول مطمئناً برنده شدن را تضمین می کند.

1. اگر تعداد اشیای توده مضربی از 3 است، جای خود را به حریف بدهید، در غیر این صورت بازی را با گرفتن 1 یا 2 شی شروع کنید تا تعداد اشیاء باقیمانده مضربی از 3 باشد.
2. با حرکت بعدی خود، هر بار تعداد اشیاء گرفته شده توسط حریف را به 3 اضافه کنید (تعداد اشیاء باقی مانده باید مضرب 3 باشد).

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

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

مهم ترین

مجری- برخی از شی (شخص، حیوان، دستگاه فنی) قادر به اجرای مجموعه خاصی از دستورات.

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

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

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

سوالات و وظایف

1. مطالب ارائه برای پاراگراف موجود در را بخوانید برنامه الکترونیکیبه کتاب درسی آیا ارائه مکمل اطلاعات مندرج در متن پاراگراف است؟ چه اسلایدهایی را می توانید به ارائه خود اضافه کنید؟

2. به چه چیزی الگوریتم گفته می شود؟

3. مترادف کلمه "نسخه" را انتخاب کنید.

4. الگوریتم هایی را که در مدرسه مطالعه کرده اید مثال بزنید.

5. چه کسی می تواند مجری الگوریتم باشد؟

6. مثالی از یک مجری رسمی بزنید. زمانی که شخصی به عنوان یک مجری رسمی عمل می کند مثال بزنید.

7. چه چیزی محدوده وظایف انجام شده توسط مجری "رایانه" را تعیین می کند؟

8. واژه پرداز را در رایانه خود به عنوان مجری در نظر بگیرید. طیف وسیعی از وظایف حل شده توسط این مجری و محیط او را شرح دهید.

9. تیم، سیستمی از دستورات اجراکننده چیست؟

10. یک ربات چه دستوراتی باید وظایف زیر را انجام دهد:

الف) صندوقدار در یک فروشگاه؛
ب) سرایدار؛
ج) نگهبان؟

11. ویژگی های اصلی الگوریتم را فهرست کنید.

12. عدم وجود هر خاصیت در یک الگوریتم چه چیزی می تواند منجر شود؟ مثال بزن.

13. توانایی اجرای رسمی یک الگوریتم چیست؟

14. دنباله اعداد بر اساس الگوریتم زیر ساخته می شود: دو عدد اول دنباله برابر با 1 در نظر گرفته شده است. هر عدد بعدی در دنباله برابر با مجموع دو عدد قبلی در نظر گرفته می شود. 10 عبارت اول این دنباله را یادداشت کنید. دریابید که این دنباله چه نام دارد.

15. یک الگوریتم خاص یک زنجیره جدید از یک رشته کاراکتر به شرح زیر بدست می آورد. ابتدا زنجیره اصلی کاراکترها نوشته می شود، بعد از آن زنجیره اصلی کاراکترها به ترتیب معکوس نوشته می شود، سپس حرفی که در الفبای روسی بعد از حرفی که در آخرین جای زنجیره اصلی قرار داشت نوشته می شود. اگر حرف "I" در آخرین جای زنجیره اصلی باشد، حرف "الف" به عنوان حرف بعدی نوشته می شود. زنجیره به دست آمده نتیجه الگوریتم است. به عنوان مثال، اگر زنجیره اصلی کاراکترها "HOUSE" بود، نتیجه الگوریتم زنجیره "DOMMODN" خواهد بود. رشته کاراکتر "COM" داده شده است. چند حرف "O" در زنجیره کاراکترها وجود دارد که اگر الگوریتم را روی این زنجیره اعمال کنید و سپس الگوریتم را دوباره روی نتیجه کار اعمال کنید، به دست می آید؟

16. انیمیشنی از مراحل الگوریتم اراتوستن را در اینترنت پیدا کنید. از الگوریتم اراتوستن برای یافتن تمام اعداد اول که بیشتر از 50 نباشند استفاده کنید.

17. نتیجه اجرای لاک پشت (به مثال 5) از الگوریتم چه خواهد بود؟

18. یک الگوریتم برای مجری ماشین حساب بنویسید (به مثال 6 مراجعه کنید)، که حاوی بیش از 5 دستور نباشد:

الف) دریافت از شماره 3 عدد 16؛
ب) از شماره 1 عدد 25 را دریافت کنید.

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

1 - اختصاص 2
2- تقسیم بر 2

با توجه به اولی، 2 به عدد سمت راست اضافه می شود، با توجه به دومی، عدد بر 2 تقسیم می شود. اگر اجرا کننده الگوریتم 22212 را اجرا کند، عدد 8 چگونه تبدیل می شود؟ الگوریتمی در سیستم فرمان این مجری ایجاد کنید که طبق آن عدد 1 به عدد 16 تبدیل می شود (الگوریتم نباید بیش از 5 دستور داشته باشد).

20. اجراکننده Robot (مثال 7) در کدام سلول باید قرار گیرد تا پس از اجرای الگوریتم 3241 به آن بازگردد؟

نرم افزار رایگان:

سیستم KuMir - مجموعه ای از جهان های آموزشی (آرشیو برنامه را از وب سایت دانلود کنید) یا به صفحه KuMir مراجعه کنید ((http://www.niisi.ru/kumir/)

لطفا AdBlock را در این سایت تعلیق کنید.

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

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

شکل 1 اسکرین شات از زمین بازی در code.org

امیدوارم همه چیز برای شما درست شده باشد. اکنون با استفاده از این مثال، چندین مفهوم اساسی را شرح خواهیم داد:

  • مجری؛
  • سیستم دستورات اجرا کننده؛
  • الگوریتم

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

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

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

تمرکز بر چند نکته ضروری است.

مجری می تواند فقط دستوراتی را اجرا کند که در سیستم فرمان او گنجانده شده است.

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

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

مجری دقیقاً همان کاری را انجام می دهد که الگوریتم به او می گوید.

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

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

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

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

بنابراین، به طور خلاصه:

برنامه کامپیوتری– الگوریتمی برای حل مسئله که به زبان برنامه نویسی نوشته شده است.

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

مجری شخص یا دستگاهی است که می تواند مجموعه ای از دستورات را درک و اجرا کند.

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

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

به عنوان مثال: روال روزانه، ترتیب پخت و پز، دستورالعمل، و غیره)

مجری الگوریتم- این کسی است که الگوریتم (فرد، حیوان، ماشین، کامپیوتر) را اجرا می کند.

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

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

ویژگی های الگوریتم:

1.عملکرد ( اندام )- توانایی به دست آوردن نتیجه از داده های اولیه در تعداد محدودی از مراحل. (مثلاً هنگام اجرای الگوریتم جمع 2 عدد، جمع حاصل شود).

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

3.جبرگرایی(قطعیت، دقت) - هر فرمان باید به طور منحصر به فرد عمل اجرا کننده را تعیین کند.

4.قابل درک بودن- دستور باید به زبانی نوشته شود که کامپیوتر قابل درک باشد.

5.گسسته- تقسیم الگوریتم به دستورات جداگانه

روش های نوشتن الگوریتم:

1) به زبان طبیعی - ضبط در قالب دستورات جداگانه به زبانی قابل فهم برای انسان.

2) گرافیک – به زبان فلوچارت ها با استفاده از اشکال هندسی (بیضی، مستطیل، متوازی الاضلاع، لوزی).

3) در یک زبان الگوریتمی - زبانی برای نوشتن الگوریتم برای آموزش برنامه نویسی. دستورات به زبان روسی نوشته شده است.

4) در یک زبان برنامه نویسی - یک برنامه. زبان های برنامه نویسی: Basic، Pascal، C، Visual Basic.

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

طرح های الگوریتمیدر الگوریتم ها، گروه هایی از مراحل را می توان متمایز کرد که در ساختار داخلی - ساختارهای الگوریتمی متفاوت هستند.

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

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

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

مثال: الگوریتم روشن کردن کامپیوتر:

  1. برق کامپیوتر را روشن کنید (دکمه روشن را فشار دهید محافظ ولتاژ).
  2. مانیتور و چاپگر را روشن کنید.
  3. کلیک دکمه پاوربر واحد سیستم.
  4. منتظر بارگذاری باشید سیستم عاملو ظاهر دسکتاپ
  5. دست به کار شوید.

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

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

شرط عبارتی است که می تواند درست یا نادرست باشد. در شرایط، دو عدد، دو رشته، دو متغیر یا عبارت رشته ای با استفاده از عملگرهای مقایسه با یکدیگر مقایسه می شوند (>،<, =, >=, <=).

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

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

دو نوع ساختار الگوریتمی چرخه ای وجود دارد:

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

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

الگوریتم و خواص آن

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

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

سیستم فرمان اجراکننده (SCS) کل مجموعه دستوراتی است که مجری می تواند اجرا کند.

ویژگی های الگوریتم: قابل فهم بودن، دقت، محدود بودن.

وضوح:الگوریتم فقط از دستورات موجود در SKI مجری تشکیل شده است.

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

پایان (یا عملکرد):اجرای الگوریتم باید به تعداد محدودی از مراحل منجر شود.

محیط اجرا کننده: محیطی که مجری در آن فعالیت می کند.

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

مجموعه داده کامل:مجموعه داده های لازم و کافی برای حل کار (به دست آوردن نتیجه مطلوب).

روش های نوشتن الگوریتم ها

رایج ترین روش ها عبارتند از: گرافیکی, کلامیو در فرم برنامه های کامپیوتری.

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

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

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

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

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

الگوریتم های کار با کمیت ها ساختارهای الگوریتمی پایه

کمیت یک شی اطلاعاتی واحد است که دارای یک نام، یک مقدار و یک نوع است.

مجری الگوریتم های کار با کمیت ها می تواند یک شخص یا یک وسیله فنی خاص مانند کامپیوتر باشد. چنین مجری باید داشته باشد حافظهبرای ذخیره مقادیر

کمیت ها می توانند ثابت یا متغیر باشند.

مقدار ثابت (ثابت)مقدار آن در طول اجرای الگوریتم تغییر نمی کند. یک ثابت را می توان با مقدار خود (اعداد 10، 3.5) یا با یک نام نمادین (عدد) نشان داد.

مقدار متغیرمی تواند مقدار را در طول اجرای الگوریتم تغییر دهد. یک متغیر همیشه با یک نام نمادین (X، A، R5، و غیره) مشخص می شود.

نوع کمیتمجموعه مقادیری را که یک مقدار می تواند انجام دهد و مجموعه اقداماتی که می توان با آن مقدار انجام داد را تعریف می کند. انواع اصلی کمیت ها: عدد صحیح، واقعی، نمادین، منطقی.

اصطلاح- رکوردی که توالی اعمال روی کمیت ها را مشخص می کند. یک عبارت می تواند شامل ثابت ها، متغیرها، علائم عملیات و توابع باشد. مثال:

A + B; 2*X-Y; K + L - sin(X)

دستور انتساب یک دستور مجری است که در نتیجه یک متغیر مقدار جدیدی دریافت می کند. فرمت فرمان:

نام متغیر>:=expression>

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

مثال.متغیر A مقدار 6 را داشته باشد. متغیر A پس از اجرای دستور چه مقداری دریافت خواهد کرد: A:= 2 * A - 1؟
راه حل.با محاسبه عبارت 2*A - 1 با A=6 عدد 11 بدست می آید. یعنی مقدار جدید متغیر A برابر با 11 خواهد بود.

در مطالب بعدی فرض خواهد شد که مجری الگوریتم های کار با کمیت ها کامپیوتر است. هر الگوریتمی را می توان از دستورات ساخت تکالیف, ورودی, خروجی, شاخهو چرخه.

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

مثال: ورودیالف - وارد کردن مقدار متغیر A از صفحه کلید کامپیوتر.

دستور خروجی: فرمانی است که مقدار یک کمیت را در دستگاه خروجی کامپیوتر (مانند مانیتور) نمایش می دهد.

مثال: نتیجه X - مقدار متغیر X بر روی صفحه نمایش داده می شود.

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

در اینجا، یک سری به معنای یک یا چند دستور متوالی است. kv - انتهای انشعاب.

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

حلقه با پیش شرط- حلقه ای که اجرای آن تا زمانی که شرط حلقه درست باشد تکرار می شود:

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

مثال.دو کسر ساده داده شده است. الگوریتمی برای بدست آوردن کسری که حاصل تقسیم آنهاست ایجاد کنید.
راه حل.در فرم جبری، راه حل مسئله به صورت زیر است:
a/b: c/d = a*d/b*c = m/n
داده های اولیه چهار کمیت صحیح هستند: a، b، c، d. حاصل دو عدد صحیح m و n است.

algتقسیم کسری
سالمالف، ب، ج، د، م، ن
شروع ورودیآ ب پ ت
m:=a*d
n:=b*c
خروجی "Numerator="، m
خروجی "مخرج="، n
کوی

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

  1. Efimova O., Morozov V., Ugrinovich N. دوره فن آوری کامپیوتر با مبانی علوم کامپیوتر. آموزشبرای دبیرستان - M.: LLC "انتشارات AST"؛ ABF، 2000
  2. کتاب کارگاه مسائل در علوم کامپیوتر. در 2 جلد / ویرایش. I. Semakina، E. Henner. - م.: آزمایشگاه دانش پایه، 1380.
  3. Ugrinovich N. علوم کامپیوتر و فناوری اطلاعات. کلاس های 10-11 - M.: آزمایشگاه دانش پایه، JSC "کتاب های درسی مسکو"، 2001

وظایف و آزمایشات با موضوع "الگوریتم ها و مجریان"

  • طراح مدیریت هنرمند - الگوریتم های پایه ششم

    درس: 4 تکلیف: 9 تست: 1

  • 2 کار: 9 تست: 1

دانش آموز عزیز!

آگاهی از مبحث "الگوریتم ها و مجریان" در درجه اول برای مطالعه بیشتر برنامه نویسی ضروری است. زبان برنامه نویسی QBasic به عنوان پایه ای برای مطالعه برنامه نویسی انتخاب شد. ما ایده گنجاندن ویژوال بیسیک یا هر زبان برنامه نویسی شی گرا دیگر را در دوره خود رها کردیم، زیرا این رویکرد هنوز به طور گسترده در اکثر مدارس متوسطه در فدراسیون روسیه استفاده نشده است. علاوه بر این، برنامه نویسی شی گرا بر اساس اصول برنامه نویسی کلاسیک Dos است.

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

در نتیجه، ما متذکر می شویم که دستیابی به "هوازی" در برنامه نویسی تنها با تمرین مداوم و حل مشکلات کاربردی خاص امکان پذیر است.




بالا