نمایش نتایج 1 تا 2 از 2

نام تاپیک: توابع کتاب خانه ای

  1. #1

    Post توابع کتاب خانه ای

    با سلام. من تازه دارم C++‎‎‎ را شروع می کنم و برام این سوال پیش اومده که چه طوری بدون نیاز به توابع کتاب خانه ای برنامه نوشت ؟ به نظر من مثلا باید فقط از کلمات کلیدی استفاده کرد برای فلان کار بعد که یاد گرفتیم چه جوریه از توابع کتاب خانه ای استفاده کنیم چون حفظ کردن توابع مثل حفظ کردن راه حل می مونه... .اگر میشه کد برنامه HELLO WORLD رو برای مثال بدون توابع کتاب خانه ای قرار بدید

  2. #2

    نقل قول: توابع کتاب خانه ای

    نقل قول نوشته شده توسط blackknight مشاهده تاپیک
    با سلام. من تازه دارم C++‎‎‎‎ را شروع می کنم و برام این سوال پیش اومده که چه طوری بدون نیاز به توابع کتاب خانه ای برنامه نوشت ؟ به نظر من مثلا باید فقط از کلمات کلیدی استفاده کرد برای فلان کار بعد که یاد گرفتیم چه جوریه از توابع کتاب خانه ای استفاده کنیم چون حفظ کردن توابع مثل حفظ کردن راه حل می مونه... .اگر میشه کد برنامه HELLO WORLD رو برای مثال بدون توابع کتاب خانه ای قرار بدید
    این ایده ای که در ذهنتون دارید که اول بدون استفاده از توابع کتابخانه ای از ساختار و ماهیت داخلی هر روتینی اطلاع پیدا کنید و بعد که یادشون گرفتید از کتابخانه ها استفاده کنید چند تا مشکل اساسی داره.

    اولین مشکل اش اینه که زمان کافی برای انجامش رو نخواهید داشت. مثلا می خواهید توابع گرافیکی رو کنار بذارید، بسیار عالی، خوندن کتاب 1600 صفحه ای Programmer's Guide to the EGA, VGA, and Super VGA Cards رو شروع می کنید تا ببینید چطور میشه با سخت افزار کارت گرافیکی ارتباط برقرار کرد، بعد می بینید برای فهمیدن و درک مطالبش به پیش زمینه هایی لازم دارید، کجا باید دنبالش بگردید؟ کتاب 1300 صفحه ای PC Intern - System Programming. خیلی خوب. خدا میدونه با چه مشقتی و در چه مدت زمانی مطالعه شون می کنید. بعدش قاعدتا می توانید برای کارت های گرافیکی کدی طراحی کنید که بتونه چیزی رسم کنه یا متنی رو نمایش بده. اما دقیقا کار با کدوم کارت گرافیکی رو یاد گرفتید؟ مهمه، چون هر مدل سخت افزاری مشخصات و قابلیت های خاص خودش رو داره و متاسفانه سازگاری زیادی هم با هم ندارند. برای فلان مدل کارت گرافیکی خاصی کدی می نویسید که الزاما برای سیستم های سخت افزاری دیگه قابل استفاده نیست. این وقتی که صرف کردید برای افزایش دانش فنی تون خیلی موثر بود ولی متاسفانه دانشی است که براتون بهره وری نداره، احتمال اینکه جایی از این دانش واقعا استفاده کنید خیلی خیلی کمه. وقت تون رو برای چیزی صرف کردید که کمک خاصی بهتون نکرده و نمیدونستید هم با مشکلی مواجه نمی شدید.

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

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

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

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

    ششمین مشکل اینه که برای طراحی هر الگوریتمی یکسری پیش زمینه ها و اطلاعات اولیه لازمه، برای یکسری الگوریتم های عمومی راحته ولی مباحث و موضوعاتی هستند که دانش فنی زیادی لازم دارند که یادگیری شون دشوار ئه. اگر هم بهشون مسلط نباشید نمی توانید الگوریتم شون رو درک کنید.

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: شنبه 28 مرداد 1391, 14:32 عصر
  2. سوال: خروجی توابع جاوا اسکریپت (توابع تودرتو)
    نوشته شده توسط abpsoft در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 6
    آخرین پست: یک شنبه 15 خرداد 1390, 15:51 عصر
  3. سوال: چگونه می توان وقتی focusروی texboxقرار می گیردبتوان فارسی تایپ کرد
    نوشته شده توسط assimar42 در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 5
    آخرین پست: جمعه 29 بهمن 1389, 22:49 عصر
  4. چگونه مي توان محتواي يك فيلد جدول را با توجه به اطلاعات وارده در تكس باكس روي يك ليبل نشان دهد؟
    نوشته شده توسط reshehri در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 1
    آخرین پست: یک شنبه 10 بهمن 1389, 17:19 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •