با سلام
جزواتی رو که روی سایت گذاشتید آیا جزوات پارسه هستن؟چون من فصل اول ریاضیش رو که گرفتم به نظرم رسید دست نویس هستن؟از سوالم برداشتی نکنید چون بنده قصد جسارت به زحمات شما را ندارم فقط می خواستم مطمئن بشم بعد ذخیرشون کنم.
با تشکر از زحمات شما.
جزوات ارائه شده
- bahram_rad
- کاربر معمولي
- پست: 115
- تاریخ عضویت: شنبه 28 دی 1387, 12:40 am
- محل اقامت: ایران عزیز
- تماس:
Re: جزوات ارائه شده
دوستان نخواستم تایپیک جدید بزنم تو این تایپیک جزوه مدار منطقی که خیلی ساده و خلاصه هستش رو ارایه
کنم. امیدوارم خوشتون بیاد و بتونین استفاده کنین.
دانلود فصل اول :سيستم دودويي و کدگذاري
http://www.drtalebian.com/pdf/Chapter1.pdf
دانلود فصل دوم : جبر بول و گيت هاي منطقي
http://www.drtalebian.com/pdf/Chapter2.pdf
دانلود فصل سوم : ساده سازي و پياده سازي توابع منطقي
http://www.drtalebian.com/pdf/chapter3.pdf
دانلود فصل چهارم : مدار هاي ترکيبي و طراحي مدارهاي ترکيبي
http://www.drtalebian.com/pdf/chapter4.pdf
کنم. امیدوارم خوشتون بیاد و بتونین استفاده کنین.
دانلود فصل اول :سيستم دودويي و کدگذاري
http://www.drtalebian.com/pdf/Chapter1.pdf
دانلود فصل دوم : جبر بول و گيت هاي منطقي
http://www.drtalebian.com/pdf/Chapter2.pdf
دانلود فصل سوم : ساده سازي و پياده سازي توابع منطقي
http://www.drtalebian.com/pdf/chapter3.pdf
دانلود فصل چهارم : مدار هاي ترکيبي و طراحي مدارهاي ترکيبي
http://www.drtalebian.com/pdf/chapter4.pdf
در دنیا چنان زندگی کنید که انگار هیچ وقت نخواهید مرد
سایت : جزوه و اموزش برای همه http://www.academy-foroughi.orq.ir
سایت : جزوه و اموزش برای همه http://www.academy-foroughi.orq.ir
- bahram_rad
- کاربر معمولي
- پست: 115
- تاریخ عضویت: شنبه 28 دی 1387, 12:40 am
- محل اقامت: ایران عزیز
- تماس:
Re: جزوات ارائه شده
زبان برنامهنویسی ++C (تلفظ میشود: سی پلاس پلاس) یک زبان برنامهنویسی کامپیوتری همه منظوره، شی گرا، سطح بالا و چندرگه (که از برنامهنويسی رويهای، تجريد دادهها و برنامهنويسی شئ گرا پشتيبانی میکند)، عمومی و با قابلیتهای سطح بالا و سطح پایین میباشد. این زبان دارای قابلیتهای انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیگرا، برنامه نویسی جنریک است. ++C به همراه جد خود C از پرطرفدار ترين زبانهای برنامهنويسی تجاری هستند.
زبان ++c یک زبان سطح میانی در نظر گرفته میشود. این زبان دارای قابلیت زبانهای سطح بالا و پایین بصورت همزمان است.
زبان ++C توسط بییارنه استراستروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاههای بل (Bell Labs)، برای بهبود زبان سی و بر مبنای آن ساخته شد و آن را "C با کلاس" (C With Classes) نامگذاری نمودند. در سال ۱۹۸۳ به ++c تغییر نام داد. توسعه با اضافه نمودن کلاسها و ویژگیهای دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامهنویسی در سال ۱۹۹۸ تحت نام ISO/IEC 14882:1998 استاندارد شد. نسخه فعلی استاندارد این زبان ISO/IEC 14882:2003 است. نسخه جدیدی از استاندارد (که به صورت غیررسمی C++0x نامیده میشود)
تاریخچه زبان
استراستروپ کار بر روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراستروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگیهای مناسب برای ساخت برنامههای بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامههای بزرگ بسیار سطح پایین است. زمانی که استراستروپ کار خود را در آزمایشگاههای بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگیهای سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبانهای دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگیهای کلاس، کلاسهای مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیشفرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد.
در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگیهای دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامهنویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش 2.0 از زبان ++C ارائه شد. ویژگیهای جدیدی مانند ارثبری چندگانه، کلاسهای انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگیهای اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.
در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهمترین ویژگی اضافه شده Standard Template Library بودهاست.
استاندارد زبان
بعد از سالها کار کمیته مشترک ANSI–ISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC 14882:1998). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++C منتشر شد. در سال ۲۰۰۵ گزارشی فنی بنام «گزارش فنی کتابخانه ۱» (که معمولاً بصورت اختصار TR1 خوانده میشود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخشهایی را به آن اضافه نموده که انتظار میرود در نسخههای بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.
در حالی که ++C به هیچ موسسهای وابسته نیست این مستندات بصورت آزادانه در دسترس نیستند.
نام ++C
این نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام «C جدید» و بعدها «C با کلاس» خوانده شد. در علوم کامپیوتر هنوز هم ++C به عنوان ابرساختار C شناخته میشود. آخرین نام از عملگر ++ در زبان C (که برای افزایش مقدار متغیر به اندازه یک واحد بکار میرود) و یک عرف معمول برای نشان دادن افزایش قابلیتها توسط + ناشی گشتهاست. با توجه به نقل قولی از استراستروپ: «این نام ویژگیها تکاملی زبان در C را نشان میدهد.» +C نام زبانی غیرمرتبط به این زبان است.
استراستروپ مبدا این نام را در فصل اول کتاب خود «زبان برنامهنویسی ++C» اشاره مینماید که معنی دیگر ++C را میتوان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت. در سه قسمت از زبان تخیلی Newspeak «کلمات C» برای اشاره به لغات فنی و حرفهای بکار میرود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار میرفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است.
وقتی که به صورت خصوصی از ریک ماسکیتی در مورد این اسم سوال شد او در جواب گفت که این اسم بصورت خودمانی در بین آنها به کار میرفتهاست و تصور نمیکردند که این نام بصورت نام رسمی این زبان درآید.
توسعه آینده
++C همچنان در حال تکامل است تا نیازهای آینده را پاسخگو باشد. نسخه جدید استاندارد ++C در حال بررسی است و تحت عنوان C++0x است که انتظار میرود در سال ۲۰۱۰ منتشر گردد. تغییرات کنونی نشان میدهد که که همچنان به صورت چندمدلی ++C تاکید میگردد. توسعههای مهم پشتیبانی از چندرشتهای و مفاهیمی برای راحت نمودن کار با قالبهاست. اضافه نمودن ویژگی جمعآوری زباله به آن به شدت مورد بحث است. Boost.org گروهی برای بیشترین استفاده از ویژگیهای فعلی ++C میباشد. آنها ویژگیهای تابعی و فرابرنامهنویسی آن را گسترش میدهند و در مورد ++C به کمیته استاندارد نصیحتهایی نمودهاست که کدام ویژگیها خوب عمل نمیکنند و کدامها نیاز به توسعه دارند.
فلسفه
در کتاب «طراحی و تکامل ++C» بییارنه استراستروپ قوانین مورد استفاده در طراحی ++C را بیان مینماید. دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک میکند. جزئیات بیشتر در کتاب قابل دسترسی است:
++C طراحی شدهاست تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.
++C طراحی شدهاست تا مستقیما و بصورت جامع از چندین شیوه برنامهنویسی (برنامهنویسی ساختیافته، برنامهنویسی شیگرا، انتزاع داده، و برنامهنویسی جنریک)
++C طراحی شدهاست تا به برنامهنویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
++C طراحی شدهاست تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
++C از بکاربردن ویژگیهای خاص که مانع از عمومی شدن است خودداری مینماید.
++C از ویژگیهایی که بکار برده نمیشوند استفاده نمیکند.
++C طراحی شدهاست تا بدون یک محیط پیچیده عمل نماید.
کتابخانه استاندارد
در سال ۱۹۹۸ استاندارد ++C شامل دو بخش هسته زبان و کتابخانه استاندارد ++C است. این کتابخانه شامل بیشتر بخشهای STL و کتابخانه استاندارد C است. بیشتر کتابخانههای ++C در استاندارد وجود ندارند و یا استفاده از تعریف قابلیت پیوند کتابخانهها را میتوان در زبانهایی مانند فرترن، C، پاسکال، بیسیک نوشته شوند. البته با توجه به ویژگیهای کامپایلر مشخص خواهد شد که کدام زبان را میتوان استفاده نمود.
کتابخانه استاندارد ++C شامل کتابخانه استاندارد C با یک سری تغییرات برای بهبود عملکرد است. بخش بزرگ بعدی این کتابخانه STL است. STL شامل ابزار بسیار قدرتمندی مانند نگهدارندهها (مانند vector و list)، تکرارکنندهها (اشارهگرهای عمومی شده) برای شبیهسازی دسترسی مانند آرایه الگوریتمهایی برای جستجو و مرتبسازی در آنها وجود دارند. نقشهها (نقشههای چندگانه) (آرایه شرکتپذیر) و مجموعهها (مجموعههای چندگانه) واسطهای عمومی فراهم میسازند. در نتیجه با استفاده از قالب تابع، الگوریتمهای جنریک با هر نگهدارنده و دارای تکرارکننده عمل نماید. همانند C ویژگیهای کتابخانه را میتوان با استفاده از شبه دستور include# شامل یک سرآیند استاندارد اضافه نمود. c دارای ۶۹ کتابخانه استاندارد است که ۱۹ تا از آنها نامناسب تشخیص داده شدهاند.
استفاده از کتابخانه استاندارد - مانند std::vector یا std::string به جای آرایههای C- موجب ایجاد برنامههای مطمئنتر شدهاست.
STL در آغاز محصولی جداگانه از HP و سپس SGL پیش از ادغام در کتابخانه استاندارد ++C بودهاست. استاندارد عبارت STL را بکار نمیبرد بلکه آن را بخشی از کتابخانه میداند اما مردم هنوز هم آن را برای جداسازی بخشهای مختلف کتابخانه با این نام بکار میبرند.(جریانهای ورودی/خروجی، جهانیسازی، تشخیص، زیرمجموعه کتابخانه C)
بیشتر کامپایلرها کتابخانه استاندارد و STL را پیادهسازی مینماید. پیادهسازیهای مستقلی نیز همانند STLport نیر وجود دارند. پروژههای دیگر نیز پیادهسازیهای خود را از STL با توجه به اهداف خود بوجود میآورند.
ویژگیهای معرفی شده در ++C
در مقایسه با C زبان ++C ویژگیهای جدیدی را معرفی نمودهاست مانند تعریف متغیر به عنوان عبارت، تغییر نوعهای همانند تابع، new/delete، نوع داده bool، توابع درونخطی، آرگومان پیشفرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::، کلاسها (شامل تمام ویژگیهای مربوط به کلاسها همانند وراثت، اعضای تابع، توابع مجازی، کلاسهای انتزاعی، و سازندهها)، قالبها، پردازش استثنا، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).
برخلاف باور عموم ++C نوع داده ثابت را معرفی ننمودهاست. کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد.
در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام میدهد. (برای اطلاعات بیشتر بخش «ناهماهنگی با C» را در پایین ببینید)
توضیحات با استفاده از // قبل از زبان C در زبان BCPL معرفی شده بود که مجدداً در زبان ++C به کار گرفته شد.
بعضی ویژگیهای ++C بعدا توسط C به کار گرفته شد مانند نحوه تعریف for، توضیحات به شکل ++C (با استفاده از //)، و کلمه inline با وجود اینکه تعریف این کلمه در C99 با تعریف آن در زبان ++C هماهنگی ندارد. همچنین در C99 ویژگیهایی معرفی شدهاست که در ++C وجود ندارند مانند ماکروهای قابل تغییر و استفااده بهتر از آرایهها به عنوان آرگومان. بعضی کامپایلرها این ویژگیها را پیاده نمودهاند اما در بقیه این ویژگیها موجب ناهماهنگی میگردد.
برنامه Hello World
برنامه زیر با استفاده از کتابخانه استاندارد و جریانهای خروجی یک متن را به خروجی استاندارد ارسال مینماید.
#include <iostream> // provides std::cout
int main()
{
std::cout << "Hello, world!\n";
return 0;
پیش پردازنده
++C بطور عمومی در سه فاز ترجمه میگردد: پیشپردازنده، ترجمه به کد object، پیوند (که دو مرحله آخر به عنوان عمل کامپایل شناخته میشود.) در اولین مرحله در پیشپردازنده، شبهدستورات پیشپردازنده تغییرات لغوی بر روی کد منبع ایجاد مینمایند و آن را به به مراحل دیگر تحویل میدهند.
شبه دستورات پیشپردازنده با استفاده از کاراکتر # قبل از هر گونه فضای خالی آغاز گشته و رشتههایی را در کد منبع با فایل یا رشتههای دیگر با توجه به قوانین تعریف گشته توسط برنامهنویس جایگزین مینماید. این دستورات معمولاً اعمال زیر را انجام میدهند: جایگزینی ماکروها، شمول فایلهای دیگر (برخلاف ویژگی سطح بالاتر مانند شمول ماجولها/پکیجها/یونیتها/کامپوننتها)، کامپایل شرطی و/یا شمول شرطی. به عنوان مثال:
#include <iostream>
که این دستور تمام سمبلها در فایل سرایند کتابخانه استاندارد iostream را در فایل منبع وارد میسازد.
کاربرد معمول دیگر به عنوان ماکرو خوانده میشود:
#define MY_ASSERT(x) assert(x)
که کد (MY_ASSERT(x را با (assert(x در فایل منبع جایگزین مینماید. که این جایگزینی امکان کنترل استفاده از این تابع را در اختیار برنامهنویس قرار میدهد.
استفاده از ماکروها در عمل چندان توصیه نمیگردد چرا که امکان کنترل نوع آرگومانها را از بین برده در نتیجه ممکن است اشتباهاتی را وارد کد منبع نماید. طریقه دیگر برای انجام این کار استفاده از توابع درونخطی است.
علاوه بر شبهدستورات معمول تعدادی شبه دستور برای کنترل جریان کامپایل وجود دارد که امکان شمول یا عدمشمول قطعهای کد یا سایر ویژگیهای کامپایل را در اختیار ما قرار میدهد.
دستورات پیشپردازنده برای کاربردهای عددی نیز به کار میرود که هماکنون استفاده از const به جای #define ترجیح داده میشود. این کار علاوه بر ایجاد کنترل نوع قوی مانع از گمراهی در فضاهای نام میگردد.
هدف کمیته استانداردسازی از بین بردن پیشپردازندهاست اما با توجه به خصوصیت مدولار ++C بعید به نظر میآید که این حذف امکانپذیر باشد.
وراثت
وراثت این امکان را ایجاد میکند که یک نوع ویژگی دیگر انواع را داشته باشد. وراثت از یک کلاس پایه میتواند عمومی، خصوصی یا حفاظت شده باشد. این تعیین سطح دستزسی مشخص میسازد آیا کلاسهای نامربوط و یا مشتق شده میتوانند به اعضای عمومی یا حفاظت شده کلاس پایه دسترسی داشته باشند. تنها وراثت عمومی به معنای وراثت به کار رفته بصورت عموم است. دو نوع دیگر وراثت به ندرت مورد استفاده قرار میگیرند. اگر تعیینکننده سطح دسترسی حذف شود سطح دسترسی برای کلاس خصوصی و برای ساختمان به صورت عمومی تعریف میگردد. کلاسهای پایه ممکن است یثورت مجازی تعریف شوند که به آن وراثت مجازی گویند. وراثت مجازی تضمین میکند که فقط یک نمونه از کلاس پایه وجود داشته باشد و مشکلاتی همانند مشکلات وراثت چندگانه بوجد نیاید.
وراثت چندگانه یکی از ویژگیهای مورد بحث در سی++ است. وراثت چندگانه امکان اشتقاق از چند کلاس پایه را فراهم مینماید که موجب بوجود آمدن گراف رابطه وراثت بسیار پیچیدهاست. به عنوان مثال «گربه پرنده» میتواند از کلاس «گربه» و کلاس «پستانداران پرنده» ارث برد. در زبانهای دیگر مانند سیشارپ و جاوا به صورت دیگری ویژگی مشابه را پیادهسازی مینماید هر کلاس میتواند از چندین واسط اشتقاق یابد اما فقط یک کلاس پایه برای اشتقاق وجود دارد(واسطها برخلاف کلاس پایه فقط تعریف هستند و هیچگونه پیادهسازی را شامل نمیگردند).
زبان ++c یک زبان سطح میانی در نظر گرفته میشود. این زبان دارای قابلیت زبانهای سطح بالا و پایین بصورت همزمان است.
زبان ++C توسط بییارنه استراستروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاههای بل (Bell Labs)، برای بهبود زبان سی و بر مبنای آن ساخته شد و آن را "C با کلاس" (C With Classes) نامگذاری نمودند. در سال ۱۹۸۳ به ++c تغییر نام داد. توسعه با اضافه نمودن کلاسها و ویژگیهای دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامهنویسی در سال ۱۹۹۸ تحت نام ISO/IEC 14882:1998 استاندارد شد. نسخه فعلی استاندارد این زبان ISO/IEC 14882:2003 است. نسخه جدیدی از استاندارد (که به صورت غیررسمی C++0x نامیده میشود)
تاریخچه زبان
استراستروپ کار بر روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراستروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگیهای مناسب برای ساخت برنامههای بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامههای بزرگ بسیار سطح پایین است. زمانی که استراستروپ کار خود را در آزمایشگاههای بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگیهای سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبانهای دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگیهای کلاس، کلاسهای مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیشفرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد.
در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگیهای دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامهنویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش 2.0 از زبان ++C ارائه شد. ویژگیهای جدیدی مانند ارثبری چندگانه، کلاسهای انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگیهای اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.
در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهمترین ویژگی اضافه شده Standard Template Library بودهاست.
استاندارد زبان
بعد از سالها کار کمیته مشترک ANSI–ISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC 14882:1998). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++C منتشر شد. در سال ۲۰۰۵ گزارشی فنی بنام «گزارش فنی کتابخانه ۱» (که معمولاً بصورت اختصار TR1 خوانده میشود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخشهایی را به آن اضافه نموده که انتظار میرود در نسخههای بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.
در حالی که ++C به هیچ موسسهای وابسته نیست این مستندات بصورت آزادانه در دسترس نیستند.
نام ++C
این نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام «C جدید» و بعدها «C با کلاس» خوانده شد. در علوم کامپیوتر هنوز هم ++C به عنوان ابرساختار C شناخته میشود. آخرین نام از عملگر ++ در زبان C (که برای افزایش مقدار متغیر به اندازه یک واحد بکار میرود) و یک عرف معمول برای نشان دادن افزایش قابلیتها توسط + ناشی گشتهاست. با توجه به نقل قولی از استراستروپ: «این نام ویژگیها تکاملی زبان در C را نشان میدهد.» +C نام زبانی غیرمرتبط به این زبان است.
استراستروپ مبدا این نام را در فصل اول کتاب خود «زبان برنامهنویسی ++C» اشاره مینماید که معنی دیگر ++C را میتوان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت. در سه قسمت از زبان تخیلی Newspeak «کلمات C» برای اشاره به لغات فنی و حرفهای بکار میرود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار میرفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است.
وقتی که به صورت خصوصی از ریک ماسکیتی در مورد این اسم سوال شد او در جواب گفت که این اسم بصورت خودمانی در بین آنها به کار میرفتهاست و تصور نمیکردند که این نام بصورت نام رسمی این زبان درآید.
توسعه آینده
++C همچنان در حال تکامل است تا نیازهای آینده را پاسخگو باشد. نسخه جدید استاندارد ++C در حال بررسی است و تحت عنوان C++0x است که انتظار میرود در سال ۲۰۱۰ منتشر گردد. تغییرات کنونی نشان میدهد که که همچنان به صورت چندمدلی ++C تاکید میگردد. توسعههای مهم پشتیبانی از چندرشتهای و مفاهیمی برای راحت نمودن کار با قالبهاست. اضافه نمودن ویژگی جمعآوری زباله به آن به شدت مورد بحث است. Boost.org گروهی برای بیشترین استفاده از ویژگیهای فعلی ++C میباشد. آنها ویژگیهای تابعی و فرابرنامهنویسی آن را گسترش میدهند و در مورد ++C به کمیته استاندارد نصیحتهایی نمودهاست که کدام ویژگیها خوب عمل نمیکنند و کدامها نیاز به توسعه دارند.
فلسفه
در کتاب «طراحی و تکامل ++C» بییارنه استراستروپ قوانین مورد استفاده در طراحی ++C را بیان مینماید. دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک میکند. جزئیات بیشتر در کتاب قابل دسترسی است:
++C طراحی شدهاست تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.
++C طراحی شدهاست تا مستقیما و بصورت جامع از چندین شیوه برنامهنویسی (برنامهنویسی ساختیافته، برنامهنویسی شیگرا، انتزاع داده، و برنامهنویسی جنریک)
++C طراحی شدهاست تا به برنامهنویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
++C طراحی شدهاست تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
++C از بکاربردن ویژگیهای خاص که مانع از عمومی شدن است خودداری مینماید.
++C از ویژگیهایی که بکار برده نمیشوند استفاده نمیکند.
++C طراحی شدهاست تا بدون یک محیط پیچیده عمل نماید.
کتابخانه استاندارد
در سال ۱۹۹۸ استاندارد ++C شامل دو بخش هسته زبان و کتابخانه استاندارد ++C است. این کتابخانه شامل بیشتر بخشهای STL و کتابخانه استاندارد C است. بیشتر کتابخانههای ++C در استاندارد وجود ندارند و یا استفاده از تعریف قابلیت پیوند کتابخانهها را میتوان در زبانهایی مانند فرترن، C، پاسکال، بیسیک نوشته شوند. البته با توجه به ویژگیهای کامپایلر مشخص خواهد شد که کدام زبان را میتوان استفاده نمود.
کتابخانه استاندارد ++C شامل کتابخانه استاندارد C با یک سری تغییرات برای بهبود عملکرد است. بخش بزرگ بعدی این کتابخانه STL است. STL شامل ابزار بسیار قدرتمندی مانند نگهدارندهها (مانند vector و list)، تکرارکنندهها (اشارهگرهای عمومی شده) برای شبیهسازی دسترسی مانند آرایه الگوریتمهایی برای جستجو و مرتبسازی در آنها وجود دارند. نقشهها (نقشههای چندگانه) (آرایه شرکتپذیر) و مجموعهها (مجموعههای چندگانه) واسطهای عمومی فراهم میسازند. در نتیجه با استفاده از قالب تابع، الگوریتمهای جنریک با هر نگهدارنده و دارای تکرارکننده عمل نماید. همانند C ویژگیهای کتابخانه را میتوان با استفاده از شبه دستور include# شامل یک سرآیند استاندارد اضافه نمود. c دارای ۶۹ کتابخانه استاندارد است که ۱۹ تا از آنها نامناسب تشخیص داده شدهاند.
استفاده از کتابخانه استاندارد - مانند std::vector یا std::string به جای آرایههای C- موجب ایجاد برنامههای مطمئنتر شدهاست.
STL در آغاز محصولی جداگانه از HP و سپس SGL پیش از ادغام در کتابخانه استاندارد ++C بودهاست. استاندارد عبارت STL را بکار نمیبرد بلکه آن را بخشی از کتابخانه میداند اما مردم هنوز هم آن را برای جداسازی بخشهای مختلف کتابخانه با این نام بکار میبرند.(جریانهای ورودی/خروجی، جهانیسازی، تشخیص، زیرمجموعه کتابخانه C)
بیشتر کامپایلرها کتابخانه استاندارد و STL را پیادهسازی مینماید. پیادهسازیهای مستقلی نیز همانند STLport نیر وجود دارند. پروژههای دیگر نیز پیادهسازیهای خود را از STL با توجه به اهداف خود بوجود میآورند.
ویژگیهای معرفی شده در ++C
در مقایسه با C زبان ++C ویژگیهای جدیدی را معرفی نمودهاست مانند تعریف متغیر به عنوان عبارت، تغییر نوعهای همانند تابع، new/delete، نوع داده bool، توابع درونخطی، آرگومان پیشفرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::، کلاسها (شامل تمام ویژگیهای مربوط به کلاسها همانند وراثت، اعضای تابع، توابع مجازی، کلاسهای انتزاعی، و سازندهها)، قالبها، پردازش استثنا، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).
برخلاف باور عموم ++C نوع داده ثابت را معرفی ننمودهاست. کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد.
در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام میدهد. (برای اطلاعات بیشتر بخش «ناهماهنگی با C» را در پایین ببینید)
توضیحات با استفاده از // قبل از زبان C در زبان BCPL معرفی شده بود که مجدداً در زبان ++C به کار گرفته شد.
بعضی ویژگیهای ++C بعدا توسط C به کار گرفته شد مانند نحوه تعریف for، توضیحات به شکل ++C (با استفاده از //)، و کلمه inline با وجود اینکه تعریف این کلمه در C99 با تعریف آن در زبان ++C هماهنگی ندارد. همچنین در C99 ویژگیهایی معرفی شدهاست که در ++C وجود ندارند مانند ماکروهای قابل تغییر و استفااده بهتر از آرایهها به عنوان آرگومان. بعضی کامپایلرها این ویژگیها را پیاده نمودهاند اما در بقیه این ویژگیها موجب ناهماهنگی میگردد.
برنامه Hello World
برنامه زیر با استفاده از کتابخانه استاندارد و جریانهای خروجی یک متن را به خروجی استاندارد ارسال مینماید.
#include <iostream> // provides std::cout
int main()
{
std::cout << "Hello, world!\n";
return 0;
پیش پردازنده
++C بطور عمومی در سه فاز ترجمه میگردد: پیشپردازنده، ترجمه به کد object، پیوند (که دو مرحله آخر به عنوان عمل کامپایل شناخته میشود.) در اولین مرحله در پیشپردازنده، شبهدستورات پیشپردازنده تغییرات لغوی بر روی کد منبع ایجاد مینمایند و آن را به به مراحل دیگر تحویل میدهند.
شبه دستورات پیشپردازنده با استفاده از کاراکتر # قبل از هر گونه فضای خالی آغاز گشته و رشتههایی را در کد منبع با فایل یا رشتههای دیگر با توجه به قوانین تعریف گشته توسط برنامهنویس جایگزین مینماید. این دستورات معمولاً اعمال زیر را انجام میدهند: جایگزینی ماکروها، شمول فایلهای دیگر (برخلاف ویژگی سطح بالاتر مانند شمول ماجولها/پکیجها/یونیتها/کامپوننتها)، کامپایل شرطی و/یا شمول شرطی. به عنوان مثال:
#include <iostream>
که این دستور تمام سمبلها در فایل سرایند کتابخانه استاندارد iostream را در فایل منبع وارد میسازد.
کاربرد معمول دیگر به عنوان ماکرو خوانده میشود:
#define MY_ASSERT(x) assert(x)
که کد (MY_ASSERT(x را با (assert(x در فایل منبع جایگزین مینماید. که این جایگزینی امکان کنترل استفاده از این تابع را در اختیار برنامهنویس قرار میدهد.
استفاده از ماکروها در عمل چندان توصیه نمیگردد چرا که امکان کنترل نوع آرگومانها را از بین برده در نتیجه ممکن است اشتباهاتی را وارد کد منبع نماید. طریقه دیگر برای انجام این کار استفاده از توابع درونخطی است.
علاوه بر شبهدستورات معمول تعدادی شبه دستور برای کنترل جریان کامپایل وجود دارد که امکان شمول یا عدمشمول قطعهای کد یا سایر ویژگیهای کامپایل را در اختیار ما قرار میدهد.
دستورات پیشپردازنده برای کاربردهای عددی نیز به کار میرود که هماکنون استفاده از const به جای #define ترجیح داده میشود. این کار علاوه بر ایجاد کنترل نوع قوی مانع از گمراهی در فضاهای نام میگردد.
هدف کمیته استانداردسازی از بین بردن پیشپردازندهاست اما با توجه به خصوصیت مدولار ++C بعید به نظر میآید که این حذف امکانپذیر باشد.
وراثت
وراثت این امکان را ایجاد میکند که یک نوع ویژگی دیگر انواع را داشته باشد. وراثت از یک کلاس پایه میتواند عمومی، خصوصی یا حفاظت شده باشد. این تعیین سطح دستزسی مشخص میسازد آیا کلاسهای نامربوط و یا مشتق شده میتوانند به اعضای عمومی یا حفاظت شده کلاس پایه دسترسی داشته باشند. تنها وراثت عمومی به معنای وراثت به کار رفته بصورت عموم است. دو نوع دیگر وراثت به ندرت مورد استفاده قرار میگیرند. اگر تعیینکننده سطح دسترسی حذف شود سطح دسترسی برای کلاس خصوصی و برای ساختمان به صورت عمومی تعریف میگردد. کلاسهای پایه ممکن است یثورت مجازی تعریف شوند که به آن وراثت مجازی گویند. وراثت مجازی تضمین میکند که فقط یک نمونه از کلاس پایه وجود داشته باشد و مشکلاتی همانند مشکلات وراثت چندگانه بوجد نیاید.
وراثت چندگانه یکی از ویژگیهای مورد بحث در سی++ است. وراثت چندگانه امکان اشتقاق از چند کلاس پایه را فراهم مینماید که موجب بوجود آمدن گراف رابطه وراثت بسیار پیچیدهاست. به عنوان مثال «گربه پرنده» میتواند از کلاس «گربه» و کلاس «پستانداران پرنده» ارث برد. در زبانهای دیگر مانند سیشارپ و جاوا به صورت دیگری ویژگی مشابه را پیادهسازی مینماید هر کلاس میتواند از چندین واسط اشتقاق یابد اما فقط یک کلاس پایه برای اشتقاق وجود دارد(واسطها برخلاف کلاس پایه فقط تعریف هستند و هیچگونه پیادهسازی را شامل نمیگردند).
در دنیا چنان زندگی کنید که انگار هیچ وقت نخواهید مرد
سایت : جزوه و اموزش برای همه http://www.academy-foroughi.orq.ir
سایت : جزوه و اموزش برای همه http://www.academy-foroughi.orq.ir
- bahram_rad
- کاربر معمولي
- پست: 115
- تاریخ عضویت: شنبه 28 دی 1387, 12:40 am
- محل اقامت: ایران عزیز
- تماس:
Re: جزوات ارائه شده
این هم جزوه ساختمان داده که شامل دو بخشه امیدوارم به دردتون بخوره خیلی خوب و ساده هستش
http://www.2shared.com/file/3385705/ee1 ... part1.html
http://www.2shared.com/file/3385721/db4 ... part2.html
تو این سایت هم میتونید جزوات خوب در رابطه با زبان فنی و مدار منطقی دانلود کنید
http://www.shypnu-itg.blogfa.com/cat-17.aspx
http://www.2shared.com/file/3385705/ee1 ... part1.html
http://www.2shared.com/file/3385721/db4 ... part2.html
تو این سایت هم میتونید جزوات خوب در رابطه با زبان فنی و مدار منطقی دانلود کنید
http://www.shypnu-itg.blogfa.com/cat-17.aspx
در دنیا چنان زندگی کنید که انگار هیچ وقت نخواهید مرد
سایت : جزوه و اموزش برای همه http://www.academy-foroughi.orq.ir
سایت : جزوه و اموزش برای همه http://www.academy-foroughi.orq.ir
- farshidshd
- مشاور وِیژه
- پست: 2057
- تاریخ عضویت: جمعه 13 مهر 1386, 1:00 pm
- محل اقامت: My Heart
- تماس:
Re: جزوات ارائه شده
جزوه ساختمان داده لینک دومیش کار نمیکنه
لطفا اصلاحش کنید تا بتونیم ازش استفاده کنیم
ممنونم از زحماتتون
از بقیه جزوات استفاده کردم
لطفا اصلاحش کنید تا بتونیم ازش استفاده کنیم
ممنونم از زحماتتون
از بقیه جزوات استفاده کردم
کد: انتخاب همه
دانشجوی ارشد نرم افزار
- bahram_rad
- کاربر معمولي
- پست: 115
- تاریخ عضویت: شنبه 28 دی 1387, 12:40 am
- محل اقامت: ایران عزیز
- تماس:
Re: جزوات ارائه شده
در پاور پوینت زیر از دانشگاه کاشانه کل مدار منطقی برای شروع رو ( چیزی که در کتاب موریس مانو هست در حد 75 درصد ) پوشش می ده
http://ce.kashanu.ac.ir/pub/da/chap4_5.ppt
امیدوارم خوشتون بیاد و استفاده کنین
این یکی 50 صفحه فارسی نوشته - از دانشگاه اصفهان
http://bme.parsaspace.com/training/FPGA ... 0Farsi.rar
این هم یک دانشجو مثل ما از دانشگاه ارومیه نوشته
http://bme.parsaspace.com/training/FPGA.rar
http://ce.kashanu.ac.ir/pub/da/chap4_5.ppt
امیدوارم خوشتون بیاد و استفاده کنین
این یکی 50 صفحه فارسی نوشته - از دانشگاه اصفهان
http://bme.parsaspace.com/training/FPGA ... 0Farsi.rar
این هم یک دانشجو مثل ما از دانشگاه ارومیه نوشته
http://bme.parsaspace.com/training/FPGA.rar
در دنیا چنان زندگی کنید که انگار هیچ وقت نخواهید مرد
سایت : جزوه و اموزش برای همه http://www.academy-foroughi.orq.ir
سایت : جزوه و اموزش برای همه http://www.academy-foroughi.orq.ir
Re: جزوات ارائه شده
با عرض سلام و خسته نباشید خدمت تمام هم رشته ای های عزیز بنده دانشجوی رشته مهندسی فناوری اطلاعات بعد از مطالعه دروس سیستم عامل و ذخیره و بازیابی اطلاعات متوجه یک خلا بزرگ شدم. بعد از انکه این دروس را خوانده تمرین و مرور می کردم متوجه میشدم که بعضی از تعاریف عمومی وجود دارند که انها را می دانم ولی تعریف جامع و کاملی از انها ندارم لذا سعی کردم مطالعه بیشتری داشته و کتابهای متعددی رو در این زمینه بخونم و اطلاعات جالبی کسب کنم که پیش زمینه ای مناسب برای دروس سیستم عامل و ذخیره و بازیابی اطلاعات باشد لذا از تمام همه رشته هایی عزیز می خواهم در صورت صلاح دید ابتدا این جزوه را بخوانند و سپس اقدام به خواندن دروس ذکر شده کنند. و توصیه میکنم تمام دوستان از رشته های دیگر نیز برای افزایش اطلاعات عمومی و نیز برای درک مفاهیم پایه کامپیوتر که در زندگی امروز بیشتر با ان سر و کار دارند از این جزوه استفاده کنند این جزوه میتواند در درس مبانی کامپیوتر برای رشته کامپیوتر و سایر رشته ها هم استفاده شود.
دوست و هم رشته ای شما
این هم دانلود فایل فقط نظراتتون رو به من بگین.
http://www.uplod.ir/download.php?file=475159
دوست و هم رشته ای شما
این هم دانلود فایل فقط نظراتتون رو به من بگین.
http://www.uplod.ir/download.php?file=475159
برای تعجیل در ظهور و سلامتی امام زمان (ع) یک صلوات بفرستید.