PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اصول کامپیوتر 2 – برنامه سازی – مفاهیم اولیه



Y@SiN
10-01-2010, 09:07 PM
مفاهیم اولیه:
الگوریتم:
مفهوم یک الگوریتم اساس و پایه علم کامپیوتر است. الگوریتمهای با کارایی مناسب نقش مهمی در توسعه سیستمهای بزرگ کامپیوتری دارند! الگوریتم مجموعه ای محدود و پایان پذیر از دستورالعمل هاست که اگر به صورت متوالی دنبال شود موجب انجام کار خاصی می گردد!

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

ورودی: الگوریتم باید هیچ یا چندین ورودی داشته باشد.

خروجی: الگوریتم باید حداقل یک خروجی داشته باشد.

قطعیت: هر دستورالعمل باید واضح و بدون ابهام باشد.

محدودیت: الگوریتم باید پس از مراحل محدودی پایان پذیرد.

کارایی: باید بتوان هر دستورالعمل را با دست با استفاده از قلم و کاغذ اجرا کرد. تنها قطعیت کافی نیست، بلکه هر دستورالعمل باید انجام پذیر باشد!

تفاوت بین الگوریتم و برنامه:
یک برنامه قطعا پایان پذیر نیست مثل سیستم عامل ولی یک الگوریتم حتما باید پایان پذیر باشد.

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

در بعضی زبان های برنامه نویسی روش های صریحی برای ایجاد تمایز مشخصه ها و پیاده سازی وجود دارد! مثلا در زبان ADa قسمتی تحت عنوان Package وجود دارد که در زبان C++ ، class نامیده میشود! ( گول این class یا package و نخورید ها! درست سی از این چیزها نداره ولی بازم سرتر از این برنامه هاست:D ببخشید این پارازیت بود به ادامه درس گوش بدید:D)

ممکن است توابع یک نوع داده را به چند گروه تقسیم کرد:
1- ایجاد کننده/سازنده: نمونه جدیدی از توابع تعیین شده ایجاد می کند!
2- تبدیل کنندگان: این توابع نیز معمولا با چند نمونه ای از نوع تعیین شده ایجاد می کنند.
3- مشاهده کنندگان/گزارش دهندگان: اطلاعاتی راجع به یک نمونه از نوع داده را بیان می کنند ولی نمونه را تغییر نمی دهند!

ارزیابی برنامه ها:
1- آیا برنامه اهداف اصلی کاری را که می خواهیم انجام میدهد؟
2- آیا برنامه با همه مقادیر درست کار میکند؟
3- آیا برنامه مستندسازی شده تا نحوه استفاده و طرز کار با آن مشخص شود؟
4- آیا برنامه برای ایجاد واحدهای منطقی، به طور موثر از توابع استفاده میکند.
5- آیا کدهای برنامه خوانا است؟
6- آیا برنامه از حافظه اصلی و کمکی به طور موثر استفاده میکند؟
7- آیا زمان اجرای برنامه هدف قابل قبول است؟

پیچیدگی فضای لازم:
مقدار حافظه مورد نیاز برای اجرای کامل یک برنامه را پیچیدگی فضای برنامه مینامند.

فضای مورد نیاز یک برنامه شامل موارد زیر است:
1- نیازمندیهای ثابت: فضای لازم برای ذخیره کد برنامه، متغیرهای ساده، متغیرهای ساختاری با اندازه ثابت مانند structs و ثابتها.
2- نیازمندیهای فضای متغیر: فضای مورد نیاز متغیرهای ساخت یافته ای که اندازه آنها بستگی به نمونه I از مسئله ای که حل میکنیم دارد، فضای اضافی برای توابع بازگشتی !

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

چرخه زندگی سیستم: