تحقیق بر نامه نویسی C++

تحقیق بر نامه نویسی C++

تحقیق بر نامه نویسی C++

تحقیق-بر-نامه-نویسی-c-لینک دانلود و خرید پایین توضیحات
دسته بندی : وورد
نوع فایل :  word (..DOC) ( قابل ویرایش و آماده پرینت )
تعداد صفحه : ۲۸ صفحه

 قسمتی از متن word (..DOC) : 
 

‏۱
‏۲
‏تحولی در توسعه نرم افزار
‏سالهاست که سخت افزار درحال پیشرفت بوده اما نرم افزار به دلایلی در برابر تقریباً هر گونه اقدامی در جهت تسریع و بهبود آن مقاومت کرده است . در حال حاضر،در میانه یک تحول در زمینه نحوه نوشتن نرم افزار قرار داریم . این تحول مبتنی بر مفهومی است که در صنعت خودروسازی توسط هنری فورد در به کارگیری قطعات استاندارد و قابل تعویض در مدل تی خودروی فورد مورد استفاده قرار گرفت. قطعات نرم افزاری ((اشیاء))یا بهتر بگوییم ((رده)) نامیده می شوند.
‏کاملترین زبان شی ء گرا از زبان اسمالتاک است که در دهه ۱۹۷۰ میلادی توسعه یافت اما در بین زباهای شیء گرا، C++‏ از محبوبیت بیشتری برخوردار بوده است(حدود ۱۰ برابر اسمالتاک) .C++‏ دراوایل دهه ۱۹۸۰ میلادی توسط بیارنه استراوستروپ توسعه یافت. در فاصله زمانی بین انتشار اولین تا دومین ویرایش این کتاب رقیب جدی دیگری پا به عرصه گذاشته است . این زبان، جاوا نام دارد که در اوایل دهه ۱۹۹۰ توسط جیمزگاسلینگ و همکارانش توسعه یافت.
‏چرا هر ۱۰ سال یک زبان برنامه نویسی شیء گرای عمده پا به عرصه وجود میگذارد؟اسمالتاک واقع از زمان خودش جلوتر بود و یک کار تحقیقاتی به شمار میرفت. ظهور C++‏ درست به موقع بود و نیازهای برنامه نویسی سیستم با کارآیی بالا و توسعه برنامه های کاربردی را برآورده می ساخت. جاوا امکاناتی برای کاربردهای چند رسانه ای قابل حمل و کاربردهای شبکه ای مبتنی بر اینترنت و تور جهان گستر در اختیار توسعه دهندگان نرم افزار قرار می دهد ‏.
‏کامپیوتر چیست ؟
‏کامپیوتر دستگاهی است که می تواند محاسبات و تصمیم گیریهای منطقی را میلیونها و حتی میلیاردها بار سریعتر از انسان انجام دهد. به عنوان مثال بسیاری از کامپیوترهای شخصی امروزی می توانند در یک ثانیه صد میلیون عمل جمع را انجام دهند. در حالی که انجام چنین محاسبه ای برای یک انسان با یک ماشین حساب ممکن است دهها سال طول بکشد. (نکات قابل تامل : چگونه می توانید بفهمید که این فرد جمع اعداد را درست انجام داده است ؟ چگونه می توانید بفهمید که کامپیوتر اعداد را درست جمع کرده است ؟) سریعترین ابر کامپیوتر‏۱‏ –SUPER COMPUTER
‏های کنونی قادر به انجام صدها میلیارد عمل جمع در یک ثانیه هستند، یعنی مقدار محاسبه ای که صدها هزار انسان می توانند در یک سال انجام دهند! و کامپیوترهایی با چند تریلیون دستورالعمل در ثانیه نیز وجود دارند که در حال حاضر در آزمایشگاههای تحقیقاتی مورد استفاده قرار می گیرند.
‏کامپیوتر داده ها را تحت کنترل مجموعه ای از دستورالعملها که برنامه کامپیوتری نامیده می شود پردازش می کند. این برنامه ها کامپیوتر را از طریق مجموعه هایی از اعمال (با ترتیب منظم) که توسط افرادی به نام برنامه نویس کامپیوتر مشخص شده اند، راهنمایی می کنند.
‏دستگاههای مختلفی (همچون صفحه کلید ، صفحه نمایش، موشواره ، دیسکها، حافظه، دیسک فشرده۲ -CD -ROM
‏ و واحدهای پردازش) که یک کامپیوتر را تشکیل می دهند سخت افزار و برنامه های کامپیوتری که بر روی یک کامپیوتر اجرا می شوند نرم افزار نامیده می شوند. هزینه های سخت افزاری در سالهای اخیر به طور چشمگیری کاهش یافته تا جایی که کامپیوترهای شخصی از لوازم زندگی شده اند. متاسفانه با توسعه برنامه های کاربردی قویتر و پیچیده تر ، هزینه های توسعه نرم افزار همواره به طور ثابتی در حال افزایش بوده بدون آنکه بتوان فن آوری توسعه نرم افزار رابهبود بخشید.
‏۱
‏۳
‏سازمان کامپیوتر
‏صرفنظر از تفاوتهایی که در ظاهر فیزیکی کامپیوترها است. واحد ورودی،اطلاعات(داده ها و برنامه های کامپیوتری) را از دستگاههای ورودی گوناگونی می گیرد واین اطلاعات را در اختیار واحدهای دیگر قرار می دهد تا پردازش شوند. امروزه بیشتر اطلاعات از طریق صفحه کلید و موشواره وارد کامپیوتر می شوند . در آینده شاید بیشتر اطلاعات با صحبت کردن با کامپیوتر و پویش۱ -Scan
‏ تصاویر وارد شوند.
‏۲-واحد خروجی : این واحد، بخش ، ((صدور)) کامپیوتر است .واحد خروجی، اطلاعاتی را که کامپیوتر پردازش کرده می گیرد و آنها را در یکی از دستگاههای خروجی قرار میدهد تا جهت استفاده در خارج از کامپیوتر در دسترس قرار گیرند.
‏امروزه بیشتر اطلاعات بر روی صفحه نمایش ، ظاهر و بر روی کاغذ، چاپ می شوند و یا برای کنترل دستگاههای دیگر مورد استفاده قرار می گیرند.
‏۳-واحد حافظه: این واحد، بخش ((انبار)) نسبتاً کم ظرفیت کامپیوتر را تشکیل می دهد که سرعت دسترسی به آن بالاست، این واحد، اطلاعاتی را که از طریق واحد ورودی وارد شده حفظ می کند تا هر گاه این اطلاعات موردنیاز بود بلافاصله جهت پردازش پردازش شده را نیز در خود نگه می دارد تا در فرصتی توسط واحد خروجی بر روی دستگاههای خروجی قرار گیرند. به واحد حافظه معمولاً حافظه یا حافظه اولیه گفته می شود .
‏۴-واحدریاضی ومنطقی (ALU)‏ ۲ -Aritjmetic and Logic Unit
‏ : این واحد ، بخش ، ((ساخت)) کامپیوتر ومسئول اجرای محاسباتی همچون، جمع، تفریق، ضرب و تقسیم است . واحد ریاضی و منطقی قابلیت تصمیم گیری (مثلاً با مقایسه دو عنصر از واحد حافظه ) را نیزبه کامپیوتر میدهد.
‏۵-واحد پردازش مرکزی (CPU)‏ ۳ -‏ Central processing Unit
‏: این واحد ، بخش ((مدیریت )) کامپیوتر است ،این واحد، هماهنگ کننده کامپیوتر و مسئول نظارت بر عملیات سایر بخشها می باشد.
CPU‏ به واحد ورودی می گوید چه زمانی اطلاعات باید به واحد حافظه خوانده شود، به ALU‏ می گوید چه زمانی اطلاعات باید جهت انجام محاسبه از واحد حافظه دریافت شود و به واحد خروجی می گوید چه زمانی اطلاعات را از واحد حافظه به دستگاههای خروجی معینی بفرستد.
‏۶-واحد حافظه ثانویه: این واحد، بخش ((انبار)) پرظرفیت و بلند مدت کامپیوتر است. برنامه ها یا داده هایی که به طور فعال مورد استفاده واحدهای دیگر نیستند معمولاًدر دستگاههای حافظه ثانویه (مانند دیسکها) قرار می گیرند تا به هنگام نیاز مجدد، مثلاً شاید ساعتها، روز، ماهها یا حتی سالها بعد مورد استفاده قرار گیرند. دسترسی به اطلاعات موجود در حافظه ثانویه نسبت به حافظه اولیه زمان بسیار بیشتری طول می کشد، اما قیمت هر واحد حافظه ثانویه بسیار کمتر از یک واحد حافظه اولیه است.
‏روند تکاملی سیستمهای عامل ۴ – Operating systems‏
‏کامپیوترهای قدیمی در هر زمان تنها می توانستند یک کار یا وظیفه را انجام دهند. به این شکل از اجرا((پردازش دسته ای تک کاربره) گویند. کامپیوتر درهر زمان تنها برنامه را اجرا می کند در حالی که پردازش داده ها را به صورت گروهی یا دسته ای انجام می دهد. در سیستمهای قدیمی، کاربران عموماً کارهای خود را روی دسته هایی از کارتهای منگنه به یک مرکز کامپیوتر تحویل می دادند و غالباً مجبور بودند ساعتها یا حتی روزهای صبر کنند. تا نتیجه چاپ خروجی برنامه هایشان روی میزشان حاضر شود . سیستمهای نرم افزاری موسوم به سیستمهای عامل برای کمک به سهولت استفاده از کامپیوتر ها توسعه یافتند . سیستمهای عامل اولیه، گذار روان بین کارها را با موفقیت انجام دادند و بدین ترتیب زمانی که طول می کشید تا اپراتورهای کامپیوتر، از یک کاربه کار دیگر بروند از بین می رفت و مقدار کار یا مقدار خروجی که کامپیوتر ها می توانستند پردازش کنند افزایش می یافت. با قویتر شدن کامپیوتر ها ، مشخص شد که پردازش دسته ای تک کاربره، از منابع کامپیوتر به طور کارآمد استفاده نمی کند.در عوض این فکر به ذهن رسید که می توان کاری کرد که بسیاری از کارها یا وظایف از منابع کامپیوتر به طور مشترک استفاده کنند تا میزان به کارگیری بهتری حاصل شود. به این ایده چند برنامگی گویند. چند برنامگی یعنی اجرای ((همزمان)) چند کار در کامپیوتر؛ کامپیوتر امکانات خود را به صورت اشتراکی دراختیار چند کار قرار می دهد تا آنها جلب توجه کامپیوتر با یکدیگر رقابت کنند. در سیستمهای عامل چند برنامگی اولیه، کاربران هنوز می بایست کارهای خود را روی دسته های کارت منگنه تحویل می دادند و برای دریافت نتایج، ساعتها یا روزها صبر می کردند.
‏۱
‏۳
‏در دهه ۱۹۶۰ میلادی چند گروه از صنعت و دانشگاهها سیستمهای عامل با اشتراک زمانی را ابداع کردند. اشتراک زمانی حالت خصوصی از چند برنامگی است که در آن کاربران از طریق پایانه هایی (دستگاههایی متشکل از یک صفحه کلید و یک صفحه نمایش) به کامپیوتر دسترسی می یابند . در یک سیستم عامل یا اشتراک زمانی ممکن است دهها یا صدها کاربر در یک لحظه با یک کامپیوتر به طور مشترک کار کنند. البته کامپیوتر واقعاً به همه کاربران به طور همزمان خدمات ارائه نمی کند، بلکه یک قسمت از کار یک کاربر را اجرا می کند، سپس به سراغ کاربر بعدی می رود و به او خدمات ارائه می کند و این کار را ادامه مید هد. کامپیوتر این کار را به قدری سریع انجام میدهد که در هر ثانیه به هر کاربر چندین بار خدمات ارائه می کند و بدین ترتیب این طور به نظر می آید که برنامه ها را به طور همزمان اجرا می کند. مزیت اشتراک زمانی آن است که کاربر از تقاضای خود پاسخهای تقریباً فوری دریافت می کند و مجبور نیست مانند روشهای قبلی مدت طولانی منتظر نتیجه بماند.
‏محاسبات شخصی ، محاسبات توزیعی، و محاسبات مشتری ،خدمتگزار
‏در سال ۱۹۷۷ میلادی کامپیوتر اپل، پدیده محاسبات شخصی را رواج داد.در گذشته این پدیده یک رؤیای تفریحی بود. اما بعداً کامپیوتر به قدری ارزان شد که مردم توانستند از آن کارهای شخصی خود را معرفی کرد. کمی پس از آن، محاسبات شخصی در تجارت، صنعت وسازمانهای دولتی، امری موجه گردید. اما این کامپیوترها ، واحدهایی ((مستقل)) بودند. یعنی کار خود را روی دستگاههای خودشان انجام می دادند و سپس اطلاعات را روی دیسک ذخیره و به کامپیوترهای دیگر منتقل می کردند (به این پدیده ((شبکه ضمنی۱-Stand-alone
‏ )) گفته می شود ). گرچه کامپیوتر های شخصی اولیه برای اشتراک زمانی چند کاربره به اندازه کافی قوی نبودند اما تصال آنها به یکدیگر به صورت شبکه ای (روی خطوط تلفن و یا در شبکه ‏های محلی (LAN)‏ درون یک‏ سازمان) ، امکان پذیر بود . این ایده منجر به پدیده ای به نام محاسبات توزیعی گردید که در آن به جای محاسبات یک سازمان، کاملاً در تاسیسات کامپیوتر مرکزی انجام می گیرد در سراسر شبکه هایی از مقرها ( کار کار واقعی آن سازمان در آنها اجرا می گردد) توزیع می شود . کامپیوترهای شخصی به اندازه کافی قوی بودند که هم نیازی محاسباتی کاربران منفرد را برآورد و هم کارهای ارتباطی الکترونیکی اطلاعات را انجام دهند .
‏۱
‏۵
‏بیشتر کامپیوترهای شخصی قدرتمند امروزی به اندازه دستگاههای یک میلیون دلاری یک دهه قبل قوی هستند . قویترین دستگاههای رومیزی-موسوم به ایستگاههای کاری-امکانات چشمگیری را در اختیار کاربران منفرد قرار می دهند. در شبکه های کامپیوتری ، اطلاعات به آسانی به طور مشترک مورد استفاده قرار میگیرد و کامپیوترهایی به نام خدمتگزار، انبار از برنامه ها و داده ها را دراختیار کامپیوترهای مشتری که در سراسر شبکه ‏توزیع شده اند قرار می دهند. و اصطلاحاً محاسبات مشتری خدمتگزار انجام می گیرد. C++.C‏ زبانهای برنامه نویسی اصلی برای نوشتن نرم افزار سیستمهای عامل وشبکه های کامپیوتری و برنامه های کاربردی مشتری –‏خدمتگزار شده اند . سیستمهای عامل رایج امروزی نظیر یونیکس، سیستمهای مبتنی بر ویندوز مایکروسافت و OS/2‏ آی بی ام قابلیتهایی را که در این بخش مطرح شده اند دارا هستند .
‏زبان ماشین ، زبان اسمبلی و زبان سطح بالا
‏برنامه نویسان، دستورالعملها را به زبانهای برنامه نویسی گوناگونی می نویسند. برخی از این زبانها مستقیماً برای کامپیوتر قابل فهمند و برخی دیگر نیاز به مراحل میانی ترجمه دارند. امروزه از صدها زبان کامپیوتری استفاده می شود که می توان آنها را به سه نوع کلی زیر تقسیم کرد:
‏۱-زبانهای ماشین ۲-زبانهای اسمبلی ۳-زبانهای سطح بالا
‏کامپیوترها تنهامی توانند زبان ماشین مربوط به خودشان را مستقیماً درک کنند. زبان ماشین ، ((زبان طبیعی)) کامپیوتر است و توسط طراحی سخت افزار آن کامپیوتر تعریف می شود . برنامه های به زبان ماشین به طور کلی شامل رشته هایی از اعداد (که نهایتاً تبدیل به ۱و۰ می شوند ) هستند که به کامپیوتر دستور اجرای ابتدایی ترین اعمال را یکی پس از دیگری می دهند. زبانهای ماشین وابسته به ماشین هستند ؛ یعنی یک زبان ماشین خاص، تنها می تواند روی یک نوع کامپیوتر مورد استفاده قرار گیرد. همان طور که در قطعه برنامه زیر دیده می شود کار با زبان ماشین برای انسانها دشوار است. قطعه برنامه زیر اضافه پرداخت را با حقوق پایه جمع می کند و نتیجه را در حقوق کل ذخیره می کند .
+۱۳۰۰۰۴۲۷۷۴
+۱۴۰۰۵۹۳۴۱۹
+۱۲۰۰۲۷۴۰۲۷
‏با رواج بیشتر کامپیوتر، معلوم شد که برنامه نویسی به زبان ماشین بسیار آهسته و برای بیشتر برنامه نویسان کار بسیار پرمشقتی است .از این رو برنامه نویسان به جای کار با رشته هایی از اعداد که کامپیوترها مستقیماً آنها را درک می کنند، شروع به استفاده از مخففهای انگلیسی گونه ای که بیانگر اعمال ابتدایی کامپیوتر نمودند. این مخففها اساس زبان اسمبلی را تشکیل داد . در پی آن برنامه های مترجمی به نام اسمبلر ایجاد شدند تا برنامه های اسمبلی را به سرعت به زبان ماشین تبدیل کنند. قطعه برنامه اسمبلی زیر نیز اضافه پرداخت را با حقوق پایه جمع می کند و نتیجه را در حقوق کل ذخیره می کند. ولی این کار را واضحتر از معادل زبان ماشین آن انجام می دهد :
LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY
‏گرچه این کد برای انسان واضحتر است ولی تا به زبان ماشین ترجمه نشود برای کامپیوتر نامفهوم است. با ابداع‏ زبان اسمبلی، میزان استفاده از کامپیوترها به سرعت افزایش یافت ولی این زبان نیز برای انجام حتی ساده ترین کارها نیاز به تعداد زیادی دستورالعمل داشت . برای تسریع فرآیند برنامه نویسی، زبانهای سطح بالا ایجاد شدند که در آنها یک جمله کارهای بزرگی انجام می داد . برنامه های مترجمی به نام کامپایلر، برنامه های به زبان سطح بالا را به زبان ماشین تبدیل می کردند . زبانهای سطح بالا به برنامه نویسان اجازه می دادند دستوالعملهایی بنویسند که بسیار شبیه انگلیسی روزمره و شامل نمادهای ریاضی معمول هستند . مانند :

 

دانلود فایل

 

0
افکار شما را دوست داریم، لطفا نظر دهید.x