خوشبختانه، بيشتر مراحل آموزش الگوريتم و فلوچارت يكي پس از ديگري اتفاق ميافتند، بنابراين محصول نهايي نسبتاً ساده است. با اين حال، توجه داشته باشيد كه چگونه تكرار رمز عبور به خطوط جريان نياز دارد كه به طور فيزيكي در فلوچارت حلقه شوند:راه حل فلوچارتپيشرفت با شبه كد
اكنون كه كل الگوريتم را به صورت تصويري در نظر گرفته ايم، مي توانيم براي تبديل آن به كد گام برداريم. برخي از افراد ممكن است بتوانند مستقيماً به يك محيط توسعه بپرند نماي كلي، اهداف و اصطلاحات كليدي
در اين درس، ما مستقيماً به منطق اساسي مورد نياز براي برنامهريزي برنامه ميپردازيم، و فرآيند مشخصشده در درس 2 را به طور قابلتوجهي گسترش ميدهيم. الگوريتمها را براي چندين برنامه بررسي ميكنيم و راهحلها را با استفاده از فلوچارتها و شبه كدها نشان ميدهيم.
در طول مسير، ما براي اولين بار آموزش الگوريتم و فلوچارت سه ساختار اصلي در منطق برنامه نويسي را خواهيم ديد: ترتيب، انتخاب و تكرار. در كل، از نحو تخصصي (پايتون يا غيره) اجتناب مي شود (به استثناي نحو برش مفيدي كه در درس 3 معرفي شد)، اما از متغيرها و عملگرهاي ساده استفاده مي شود.
اهدافتا پايان اين درس، بايد بتوانيدتعريف الگوريتم چيستمشكلات را به دنباله اي از مراحل ساده تجزيه كنيدآن مراحل را به صورت گرافيكي با استفاده از فلوچارت ها نشا دهيدآن مراحل را با كلمات با استفاده از كد شبه توصيف كنيدرايط كليديالگوريتمتواليانتخابتكرارمتغير شمارندهمتغير شاخصوضعيتبيانيه شرطيحلقهالگوريتم ها
الگوريتم روشي است كه به وسيله آن يك مسئله (محاسباتي يا غير آن) با رعايت مجموعه اي از قوانين حل مي شود. در بسياري از دپارتمانهاي علوم كامپيوتر، كل دورهها به مطالعه الگوريتمهاي مهم براي حل طيف گستردهاي از مسائل اختصاص داده ميشوند. برخي از مهمترين الگوريتمها (از جمله چند الگوريتم كه آموزش الگوريتم و فلوچارت به طور جزئي در طول ترم مطالعه خواهيم كرد) عبارتند از
حذف گاوسي (براي حل Ax=b)مرتبسازي حبابي (براي مرتبسازي آرايهاي از مقادير)مرتبسازي سريع (روشي بهتر براي مرتبسازي همان مقادير)غربال اراتوستن (براي يافتن اعداد اول)
روش بابلي (براي يافتن ريشه هاي مربع) ايرانيان سايبر جستجوي خطي (براي يافتن يك مقدار در يك آرايه)جستجوي باينري (روشي بهتر براي يافتن آن مقدار)الگوريتم دايكسترا (براي يافتن، به عنوان مثال، كوتاه ترين مسير بين دو شه)الگوريتم RSA (براي رمزگذاري و رمزگشايي پيام ها)بسياري ديگر از اين الگوريتم ها در جاي ديگر فهرست شده اند.
با اين حال، به نظر مي رسد كه ما الگوريتم ها را هميشه در زندگي روزمره اعمال مي كنيم، اغلب بدون اينكه متوجه باشيم. چنين مناسبت هايي ممكن است به اندازه انتخاب لباس براي آن روز بر اساس فعاليت هاي برنامه ريزي شده، آب و هوا، وضعيت كلي لباسشويي (و چند بار فكر مي كنيد مي توانيد آن شلوار جين را بپوشيد) كسل كننده آموزش الگوريتم و فلوچارت باشد. موارد ديگر تا حدودي اهميت بيشتري دارند.
ممكن است شامل انتخاب نام كودك باشد (كه ممكن است به معناي تهيه يك ليست، كوچك كردن آن باشد و سپس همسرتان را متقاعد كنيد كه لينوس تنها به اين دليل نيست كه نام مخترع لينوكس فنلاندي تبار است). اين ليست ادامه دارد و ادامه مي يابد: زندگي مشكلاتي را ارائه مي دهد و ما منطق را براي حل آن مشكلات به كار مي بريم.
توالي بر اساس مثال: محاسبه نمرات
بياييد چيزي را در نظر بگيريم كه همه شما با آن آشنا هستيد: يك طرح درجه بندي دوره. به عنوان يك مثال عيني، فرض كنيد درس مورد نظر داراي تكاليف در چهار دسته است كه هر كدام وزن خاص خود را دارند:
احتمالاً چنين طرحي آشناست، و احتمالاً از شهود، دانش نمرات خود و دانش اين نوع طرح وزن براي محاسبه درصد نهايي استفاده كرده ايد. در اينجا، ما آن فرآيند را با استفاده از فلوچارت ها و شبه كد رسمي مي كنيم.
براي ساده كردن مسائل (در حال حاضر)، فرض كنيد كه تعداد ثابتي از كارها در هر دسته وجود دارد، و هر وظيفه در يك دسته به همان مقدار ارزش دارد. به عنوان مثال، دوره ممكن است داراي 5 تكليف باشد و هر يك از اين تكاليف ممكن است از ده امتياز ارزيابي شود. اين امتيازات را 10، 7، 9، 10 و 10 در نظر بگيريد.
ممكن است بلافاصله ببينيد كه چگونه الگوريتم و فلوچارت محاسبه درصد تكليف مي تواند به چندين مرحله مستقل تقسيم شود. براي مثال، ابتدا ميتوانيم امتياز تكاليف را محاسبه كنيم. چگونه؟ با دقت فكر كن. اگر از ماشين حساب استفاده مي كرديد، چه چيزي را وارد مي كرديد؟