آموزش برنامه نویسی به زبان C قسمت اول

باتوجه به گسترش فناوری به خصوص در حوزه ی IT و علاقه مندی طیف وسیع جامعه  به کامپیوتر و یاد گیری برنامه نویسی ، هر هفته قسمتی از آموزش عملی و کاربردی زبان برنامه نویسی C را توسط آقای علی فاضل در صدانیوز به مخا طبان گرامی آموزش خواهیم داد. جلسه۱:  الگوریتم چیست  مراحل حل […]

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

جلسه۱:

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


الگوریتم چیست ؟
مجموعه محدودی از دستورالعملها است که اگر به ترتیب دنبال شوند موجب انجام کار خاصی می گردند.
یا به عبارت دیگر الگوریتم یا خوارزمی مجموعه‌ای متناهی از دستورالعمل‌ها است، که به ترتیب خاصی اجرا می‌شوند و مسئله‌ای را حل می‌کنند. یک الگوریتم، روشی گام به گام برای حل مسئله است.
کلمه الگوریتم از نام ریاضیدان برجسته ایرانی, ابو جعفر محمد بن موسی الخوارزمی گرفته شده است
هر الگوریتم باید دارای شرایط زیر باشد
۱٫ورودی : یک الگوریتم می تواند صفر یا چند ورودی داشته باشد
۲٫خروجی : الگوریتم باید یک یا چند نتیجه خروجی داشته باشد
۳٫قطعیت : هر دستورالعمل باید واضح و بدون ابهام باشد
۴٫کارایی : هر دستورالعمل باید قابل اجرا باشد
۵٫محدودیت : در تمام حالات، الگوریتم باید پس از طی مراحل محدودی خاتمه یابد.
در علم کامپیوتر، ما معمولا با یک مسئله مواجهیم که باید آن را حل کنیم. این مسئله می تواند در زمینه های مختلفی همچون علمی، اقتصادی، ریاضی، فنی و … باشد.
مراحل حل مسئله
تعریف مسئله بصورت جامع و دقیق (شامل تعریف ورودیها و خروجیها)بررسی راه حلهای مختلف برای حل مسئله آزمایش الگوریتم با داده های ورودی و اشکالزدایی آن تبدیل الگوریتم به یک زبان برنامه نویسی کامپیوتری (مانند C) وارد کردن برنامه به کامپیوتر و تست و اشکالزدایی آن و استفاده از برنامه.
 الگوریتم را چگونه بیان کنیم ؟
الگوریتمها باید برای انسانها قابل فهم و درک باشند و همه بتوانند به راحتی منظور نویسنده الگوریتم را درک کنند
معمولا الگوریتمها به یک زبان طبیعی مانند فارسی یا انگلیسی نوشته می شود.
این مسئله باعث می شود که بعضی ابهامات در درک الگوریتمها پیش آید.
معمولا یکسری از توافقات و تعریفها از قبل بین طراح و خواننده الگوریتم برقرار می گردد.
از آنجا که زبانهای برنامه نویسی مانند C به زبان انگلیسی خیلی نزدیک هستند، بعض از طراحان از ترکیب زبان C و انگلیسی (که به آن کد شبه C می گویند) برای بیان الگوریتم استفاده می کنند
میتوان الگوریتم ها را با استفاده از نمودارها نیز نمایش داد (فلوچارت) که درآینده به آن میپردازیم
 ویژگی های الگوریتم
الف) الگوریتم باید ما را به نتیجه مورد نظر برساند.
ب) در زمان محدود پایان یابد.
ج) دستورالعملها باید به ترتیب منطقی پشت سرهم قرار گیرند.
د) جملات الگوریتم ها باید به صورت امری ، سؤالی باشند.
ه) هر الگوریتم باید نقطه آغاز و پایان داشته باشد.
مثال : الگوریتمی بنویسید که دو عدد از ورودی دریافت شود و سپس تعیین شود که مجموع دو عدد بزرگتر از ۲۰ است یا نه.
۰- شروع .
۱- دو عدد a و b را از ورودی در یافت کن.
۲-مقدار a+b را محاسبه کن.
۳- آیا a+b>20 است؟ اگر بلی به مرحله ۶ برو.
۴- بنویس خیر.
۵- به مرحله ۷ برو.
۶- بنویس بلی.
۷- پایان
الگوریتمی بنویسید که ضرایب یک معادله درجه دوم بصورت زیر را دریافت و ریشه های آن را محاسبه و چاپ کند.
ax2 + bx + c = 0
برای حل مسئله ابتدا باید ضرائب a ، b و c از کاربر دریافت و در خانه های حافظه ذخیره گردند
برای اینکه بتوانیم بعدا به این خانه های حافظه مراجعه کنیم، به هریک از آنها یک نام نسبت می دهیم. به هریک از این نامها یک متغیر گفته می شود مثل a ، b و c
دلیل این نامگذاری آن است که مقادیر ذخیره شده در هریک از این خانه های حافظه می تواند تغییر کند.
 قراردادها
 اکنون به قراردادهای زیر توجه کنید :

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

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

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

حلقه تکرار به دو شکل مورد استفاده قرار می گیرد
۱٫شرط در ابتدای حلقه که مکانیزم کلی آن به شکل زیر است :
تا زمانیکه (شرط مورد نظر) دستورات a تا b را تکرارکن

تا زمانیکه (شرط مورد نظر)

… (a

.

.

.

… (b
در این حالت ابتدا شرط موردنظر بررسی می گردد؛ درصورتیکه شرط برقرار نباشد به اولین دستور پس از b می رود. اما در صورتیکه شرط درست ارزیابی شود، دستورات شماره a تا b انجام می شوند و سپس مجددا به ابتدای حلقه بازگشته و عملیات فوق را مجددا تکرار می کند.
۲٫شرط در انتهای حلقه که مکانیزم کلی آن به شکل زیر است :
تکرار کن
… (a
.
.
.
… (b
تا زمانیکه (شرط مورد نظر)
در این روش ابتدا دستورات حلقه یکبار انجام می شوند و در پایان حلقه شرط بررسی می گردد. چنانچه شرط برقرار نبود به دستور بعدی می رود و در صورت برقرار بودن شرط، مجددا به ابتدای حلقه باز می گردد.

دانلود کتاب ۱۰۰ الگوریتم پر کاربرد در برنامه نویسی

سوالات خود را از ما بپرسید…۳danews95@gmail.com
مدرس:سیدعلی فاضل


ارسال یک پاسخ

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید