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

نامگذاری بلوک های الگوریتم. ایجاد یک فلوچارت ساده

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

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

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

مانند هر برنامه دیگری از سری مایکروسافت آفیس، Visio دارای تمام ابزارهای لازم برای کار راحت است: ایجاد، ویرایش، اتصال و تغییر ویژگی های اضافی اشکال. تجزیه و تحلیل ویژه ای از سیستم از قبل ساخته شده نیز اجرا شده است.

دیا

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

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

منطق پرواز

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

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

نرم افزار BreezeTree FlowBreeze

FlowBreeze یک برنامه مستقل نیست، بلکه یک افزونه به یک ماژول مستقل است که توسعه نمودارها، فلوچارت ها و سایر اینفوگرافیک ها را تا حد زیادی تسهیل می کند.

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

رسم حداکثر

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

Edraw از نظر سبک رابط کاربری و کار بسیار شبیه است. بیخود نیست که او را رقیب اصلی دومی می نامند.

ویرایشگر فلوچارت های الگوریتم AFCE

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

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

FCEditor

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

ثانیاً، FSEDitor تمام ساختارها را به طور مستقل و در حالت خودکار می‌سازد. تمام چیزی که کاربر نیاز دارد این است که کد منبع آماده را به یکی از زبان های برنامه نویسی موجود وارد کند و سپس کد تبدیل شده به طرحواره را صادر کند.

BlockShem

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

کتابخانه اشکال متاسفانه در این برنامه به شدت ضعیف است.

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

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

بلوک دیاگرام برای چه مواردی استفاده می شود؟

این سیستم ها برای انجام وظایف زیر طراحی شده اند:

طراحی یک فرآیند جدید؛

الگوریتم فعلی را توصیف و مستند کنید.

ایجاد تغییراتی در این فرآیند یا بررسی پیوندهایی با احتمال وقوع خطاها و خرابی ها؛

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

توسعه دنباله ای از عملیات

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

انواع الگوریتم

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

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

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

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

نرم افزار: فقط از زبان های برنامه نویسی برای ضبط استفاده می شود.

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

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

عناصر اصلی مورد استفاده در ترسیم فلوچارت ها

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

عناصر بلوک دیاگرام:

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

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

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

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

5. ورودی-خروجی داده ها به صورت کلی.

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

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

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

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

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

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

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

تغییر جهت این عنصر فقط در زاویه 90 درجه انجام می شود.

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

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

13. تفسیر رابطه بین عناصر مختلف فلوچارت توضیحی است. این عنصر به شما امکان می دهد فرمول ها و سایر اطلاعات را درج کنید.

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

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

آرایه ها و ساخت الگوریتم

آرایه مجموعه ای از اطلاعات از همان نوع است که در خوشه های حافظه متوالی ذخیره می شود و نام مشترکی دارد. چنین سلول هایی "عناصر سیستم" نامیده می شوند. همه خوشه ها به ترتیب شماره گذاری شده اند. به این عدد «شاخص عنصر آرایه» می گویند. چگونه برای چنین سیستمی یک بلوک دیاگرام ایجاد کنیم؟ بیایید مثالی از ایجاد یک الگوریتم برای یک نوع ابتدایی در نظر بگیریم. ساده ترین سیستم به طور متعارف به شکل یک رشته است. بیایید یک نام برای این آرایه تنظیم کنیم - "A". فرض کنید سیستم ما از هشت سلول (از 1 تا 8) تشکیل شده است. هر یک از این خوشه ها شامل یک عدد تصادفی به نام "عنصر آرایه" است. برای مراجعه به یک سلول خاص، باید نام آن را در () مشخص کنید. بیایید مثالی را در نظر بگیریم که در آن بلوک دیاگرام یک آرایه برای پر کردن سیستم با اعداد تصادفی طراحی شده است و سپس اطلاعات را روی صفحه نمایش می دهد. چنین الگوریتمی چیست؟ این یک سیستم ابتدایی است. در واقع کاربرد عملی ندارد اما برای فرآیند آموزشی مناسب است. بلوک دیاگرام مورد بررسی (نمونه ای از ساخت و ساز در زیر توضیح داده شده است) فقط شامل هفت عنصر اصلی است که توسط خطوط انتقال متصل شده اند.

شرح توالی اجرای کار

1. اولین عنصر نمودار نماد "شروع" خواهد بود.

2. بلوک دوم "Process" است که در داخل آن "initialization تصادفی" را وارد می کنیم.

3. عنصر بعدی "Modification" است، در بلوک مقدار سلول های آرایه را وارد می کنیم.

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

5. در این بلوک "Modifications" با توجه به تابع وارد شده، یک تغییر جهت به عنصر بعدی وجود دارد.

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

7. «پایان» الگوریتم.

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

"ویرایشگر فلوچارت"

اگر می‌خواهید چگونه یک فلوچارت ترسیم کنید، بدانید که برنامه‌های خاصی برای ایجاد و ویرایش چنین سیستم‌هایی طراحی شده‌اند. راحتی نمایش گرافیکی الگوریتم این است که کاربر به نحو یک زبان برنامه نویسی خاص گره نخورده است. بلوک دیاگرام ساخته شده به همان اندازه برای همه زبان ها مناسب است (به عنوان مثال، C، Pascal، BASIC و دیگران). علاوه بر این، از ویرایشگر می توان برای ساخت نمودارها و بررسی سلامت مدارها استفاده کرد. چنین برنامه ای نرم افزار تخصصی است. این مجموعه متنوعی از ابزارهای لازم برای ساختن نمودارهای بلوک را فراهم می کند که آن را راحت تر از حد معمول می کند.گزینه های اضافی به شما امکان می دهد فرآیند ترکیب یک سیستم را با تبدیل بیشتر آن به توابع و رویه های یک زبان برنامه نویسی بهینه کنید. علاوه بر این، ویرایشگر فلوچارت مجموعه ای از الگوها را ارائه می دهد که می تواند سرعت کار یک کاربر مبتدی را به میزان قابل توجهی افزایش دهد. از این گذشته، مشخص است که هنگام ساخت یک الگوریتم، اغلب از ساختارهای تکراری استفاده می شود، به عنوان مثال، انواع مختلف چرخه، جایگزین (کامل و ناقص)، شاخه های متعدد و غیره. ویرایشگر به شما امکان می دهد عناصری را که اغلب در فلوچارت ها استفاده می شوند انتخاب کنید و آنها را به نمودار ایجاد شده اضافه کنید. این امر نیاز به ترسیم مجدد آنها را در هر بار برطرف می کند. علاوه بر این، با استفاده از ویرایشگر، می توانید توابع و رویه های پیاده سازی شده در هر زبان برنامه نویسی شناخته شده را وارد کنید. این گزینه برای تجزیه ساختار یک الگوریتم نوشته شده به زبانی ناآشنا مفید است. سیستم مورد نیاز برنامه مورد نظر کاملاً متوسط ​​است که به شما امکان می دهد از آن در هر موردی استفاده کنید

نتیجه

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

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

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

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

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

ویژگی‌های اساسی اولیه تقریباً مانند Visio در دسترس هستند: بلوک‌ها را می‌توان گروه‌بندی، کشیده و کپی کرد، در بالا یا پایین در لایه‌ها قرار داد، کانکتورها را می‌توان به صورت مغناطیسی در مرکز قرار داد و غیره.

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

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

گسسته، شخصیت توده ای، قطعیت، اثربخشی، یک رسمی

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

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

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

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

1.2.روش های توصیف (انواع) الگوریتم ها.

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

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

شبه کد- توصیف ساختار الگوریتم در یک زبان طبیعی و تا حدی رسمی، که امکان شناسایی مراحل اصلی حل مسئله را قبل از نوشتن دقیقاً در زبان برنامه نویسی فراهم می کند. شبه کد از برخی ساختارهای رسمی و نمادهای ریاضی رایج استفاده می کند. هیچ قانون نحوی دقیقی برای نوشتن شبه کد وجود ندارد. این کار نوشتن الگوریتم را در هنگام طراحی آسان تر می کند و به شما امکان می دهد الگوریتم را با استفاده از هر مجموعه ای از دستورات توصیف کنید. با این حال، کد کاذب معمولاً از برخی از ساختارهای ذاتی در زبان‌های رسمی استفاده می‌کند، که حرکت از کد شبه به نوشتن الگوریتم در یک زبان برنامه‌نویسی را آسان‌تر می‌کند. هیچ تعریف واحد یا رسمی برای شبه کد وجود ندارد، بنابراین شبه کدهای مختلفی امکان پذیر است که در مجموعه کلمات و ساختارهای استفاده شده متفاوت است.

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

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

برنامه- توضیح ساختار الگوریتم به زبان برنامه نویسی الگوریتمی.

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

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

جدول پرکاربردترین نمادها را نشان می دهد.

نام نماد

تعیین و نمونه پر کردن

توضیح

عمل محاسباتی یا توالی اقدامات

بررسی شرایط

تغییر

شروع چرخه

فرآیند از پیش تعریف شده

محاسبات توسط زیربرنامه، زیربرنامه استاندارد

ورودی خروجی

ژنرال I/O

شروع پایان

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

سند

خروجی نتایج

نمادهای فلوچارت

مسدود کردن " روند»برای نشان دادن یک عمل یا دنباله ای از اقدامات استفاده می شود که معنا، شکل ارائه یا قرار دادن داده ها را تغییر می دهد. برای بهبود وضوح نمودار، چندین بلوک پردازش جداگانه را می توان در یک بلوک ترکیب کرد. نمایندگی عملیات فردی نسبتاً رایگان است.

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

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

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

به عنوان مثال، ما بلوک دیاگرام های الگوریتم را برای یافتن حداکثر دو مقدار ارائه می کنیم:

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

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

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

  1. به چراغ راهنمایی بروید.
  2. به نورش نگاه کن
  3. اگر سبز است، از جاده عبور کنید.
  4. اگر چراغ قرمز روشن است، صبر کنید تا چراغ سبز روشن شود و سپس از جاده عبور کنید.

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

برنج. 3. بلوک دیاگرام برای مثال 2.

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

بیایید مثالی از ترسیم یک الگوریتم چرخه ای را در نظر بگیریم. ما قبلاً چندین بار در مورد تبدیل اعداد از اعشار به باینری بحث کرده ایم. اکنون زمان آن است که این الگوریتم را به وضوح بیان کنیم.

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

مثال 3. یک الگوریتم برای تبدیل اعداد از اعشار به دودویی ایجاد کنید.

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

  1. اگر عدد 0 یا 1 باشد، این نمایش باینری آن خواهد بود.
  2. اگر عدد بزرگتر از 1 باشد آن را بر 2 تقسیم می کنیم.
  3. باقی مانده حاصل از تقسیم را در آخرین بیت نمایش باینری عدد می نویسیم.
  4. اگر ضریب حاصل 1 باشد، آن را به بیت اول نمایش باینری عدد اضافه می کنیم و محاسبه را متوقف می کنیم.
  5. اگر ضریب حاصل بزرگتر از 1 باشد، عدد اصلی را با آن جایگزین می کنیم و به مرحله 2 برمی گردیم.

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

برنج. 4. بلوک دیاگرام برای مثال 3.

توجه: در نظر بگیرید که آیا می توانید فلوچارت بالا را به نحوی ساده کنید.

الگوریتم های "خواندن".

مثال 4. با توجه به فلوچارت داده شده، اعمال الگوریتم را برای عدد 23 انجام دهید.

برنج. 5. بلوک دیاگرام برای مثال 4.

در این درس به بررسی نمونه هایی از تدوین الگوریتم ها و همچنین نمونه ای از «خواندن الگوریتم» طبق فلوچارت آماده پرداختیم.

در درس بعدی به بازی ها و استراتژی های برنده شدن می پردازیم.

چگونه کوشی را بکشیم؟

احتمالاً همه یک افسانه از دوران کودکی را به یاد دارند که در مورد محل مرگ کوشچی جاودانه می گوید: "مرگ من در انتهای سوزنی است که در تخم مرغ است ، تخم مرغ در اردک است ، اردک در خرگوش، خرگوش در سینه نشسته است، سینه محکم بسته شده و در زیر بزرگترین درخت بلوط در جزیره بویان، در وسط دریای اوکی دفن شده است..."

برنج. 6. Koschey جاودانه و Vasilisa حکیم ().

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

  1. البته ابتدا باید جزیره بویان را پیدا کنید (فرض می کنیم که ایوان احمق توانایی چنین چیزهایی را دارد).
  2. از آنجایی که سینه زیر بزرگترین درخت بلوط مدفون است، ابتدا باید بزرگترین درخت بلوط جزیره را پیدا کنید.
  3. سپس باید خود قفسه سینه را حفر کنید.
  4. قبل از به دست آوردن خرگوش، باید یک قفل قوی را بشکنید.
  5. اکنون می توانید خرگوش را بدست آورید.
  6. شما باید یک اردک از خرگوش بگیرید.
  7. تخم مرغ را از اردک بگیرید.
  8. تخم مرغ را بشکنید و سوزن را بیرون بیاورید.
  9. سوزن را بشکن

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

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

برنج. 7. بلوک دیاگرام.

در چهارراه…

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

برنج. 8. Bogatyr در چهارراه ().

سنگ می گوید:

«اگر به سمت راست بروید، اسب خود را از دست خواهید داد، خود را نجات خواهید داد. اگر به سمت چپ بروید، خود را گم خواهید کرد، اسب را نجات خواهید داد. اگر مستقیم بروی، خودت و اسبت را از دست خواهی داد.»

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

  1. اگر به سمت راست برویم اسبمان را گم می کنیم. اگر به سمت راست نرویم، دو گزینه برای ما باقی می‌ماند (معتقدیم که مسافر برنمی‌گردد): مستقیم برویم و به سمت چپ.
  2. اگر به سمت چپ برویم خودمان را گم می کنیم و اسب را نجات می دهیم.
  3. اگر مستقیم برویم هم خودمان را از دست می دهیم و هم اسب را.

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

برنج. 9. بلوک دیاگرام.

شلغم

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

برنج. 10. شلغم.

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

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

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

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

برنج. 11. بلوک دیاگرام.

  1. Bosova L.L. انفورماتیک و فناوری اطلاعات و ارتباطات: کتاب درسی پایه ششم. - M .: BINOM. آزمایشگاه دانش، 1391
  2. Bosova L.L. انفورماتیک: کتاب کار کلاس ششم. - M .: BINOM. آزمایشگاه دانش، 1389.
  3. Bosova L.L., Bosova A.Yu. دروس انفورماتیک در پایه های 5-6: راهنمای روش شناسی. - M .: BINOM. آزمایشگاه دانش، 1389.
  1. پورتال اینترنتی "جامعه کمک متقابل معلمان" ().
  2. پورتال اینترنتی "Nsportal.ru" ().
  3. پورتال اینترنتی "جشنواره ایده های آموزشی" ().
  1. §3.3، 3.4 (Bosova L.L. Informatics and ICT: Textbook for class 6);
  2. سعی کنید یک الگوریتم خطی از 5-6 شکل توسط خودتان بسازید.
  3. یک فلوچارت از یک الگوریتم چرخه ای برای انجام تکالیف تهیه کنید.

مقالات مرتبط برتر