PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : زبان برنامه نویسی ++ c



sunyboy
09-25-2008, 01:49 AM
در زبان های برنامه سازی ساخت یافته مثل c، برنامه ها به فعالیت ها توجه دارند. در حالی که در زبان ++c و سایر زبان های شی گرا (http://iranictnews.ir/tags/42524/T______شی-گرا.htm) به اشیا توجه می شود.

در c واحد برنامه نویسی تابع است و در ++c واحد برنامه نویسی، کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm)ی است که اشیا سرانجام از آن نمونه سازی و ایجاد می شوند. برنامه نویسان c، روی نوشتن توابع متمرکز می شوند.
گروهی از فعالیت ها که کار مشترکی را انجام می دهند، به شکل تابع در می آیند و گروهی از توابع، برنامه را ایجاد می کنند. داده ها نیز در c اهمیت دارند. ولی فرض می شود داده های مورد نیاز فعالیت هایی که تابع انجام می دهد، مهیاست.

مشخصات سیستم و افعال موجود در صورت مساله به برنامه نویس c کمک می کند، توابعی را تعیین کند که باید با هم کار کنند تا سیستم را پیاده سازی کنند.برنامه نویس++c روی ایجاد انواع جدیدی به نام کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) متمرکز می شود. در هر زبان انواع داده (http://iranictnews.ir/tags/254062/T______انواع-داده.htm) ای مشخصی وجود دارد که به آنها انواع ابتدایی گفته می شود.

به عنوان مثال نوع داده ایint مشخص کننده داده عددی صحیح، float داده عددی اعشاری، double داده عددی اعشاری بزرگ، char (http://iranictnews.ir/tags/90605/T______char.htm) داده کاراکتر (http://iranictnews.ir/tags/68607/T______کاراکتر.htm)ی وbool داده دو مقداری درست یا غلط است. برنامه نویس می تواند با استفاده از انواع ابتدایی، انواع دیگری را ایجاد کند که به آنها انواع جدید گفته می شود.توابع و اعضای داده ای داخل هر کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm)، تعدادی داده وجود خواهد داشت که به آنها اعضای داده ای کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) گفته می شود. علاوه بر اعضای داده ای، توابعی درون کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) وجود دارد که داده ها را دستکاری می کنند.

به این توابع به اصطلاح متدهای کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) یا توابع عضو گفته می شود.لازم است بدانیم که نمونه ای از هر نوع ابتدایی را یک متغیر گوییم. یک متغیر در واقع مقدار مشخصی از حافظه اصلی (http://iranictnews.ir/tags/255752/T______حافظه-اصلی.htm) (ram (http://iranictnews.ir/tags/20366/T______ram.htm)) است که برای نگهداری یک مقدار رزرو می شود. اندازه هر متغیر در حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) به نوعی داده اولیه بستگی دارد. به عنوان مثال در ++c ، متغیری از نوع داده ای char (http://iranictnews.ir/tags/90605/T______char.htm) یک بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را برای ذخیره (http://iranictnews.ir/tags/88287/T______ذخیره.htm) یک کاراکتر (http://iranictnews.ir/tags/68607/T______کاراکتر.htm) رزرو می کند و یا متغیری از نوع int ، بسته به نوع کامپایلر (http://iranictnews.ir/tags/86430/T______کامپایلر.htm) 2 یا 4 بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را برای نگهداری یک عدد صحیح رزرو می کند. در صورتی که نوع int به اندازه 2 بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) باشد به این معنی است که می تواند عددی بین 32768- تا 32767 را در خود نگه دارد.

کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) در واقع یک نوع جدید از انواع داده (http://iranictnews.ir/tags/254062/T______انواع-داده.htm) اولیه است که به نمونه ای از آن شی گفته می شود. هر شی نیز مانند متغیر، فضایی از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را رزرو می کند. میزان این فضا نیز مجموع اندازه های متغیرهای تعریف شده درون آن کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) است.

در این جا ذکر یک نکته ضروری به نظر می رسد. می دانیم که درون یک کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) علاوه بر اعضای داده ای توابعی نیز تعریف می شوند. این توابع گاهی ممکن است توابعی بزرگ و پیچیده باشند. باید دقت داشت که اندازه یک شی به اندازه توابع تعریف شده داخل کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوط ربطی نخواهد داشت و این توابع در زمان های نیاز به صورت مرجع از همان کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوطه فراخوانی می شوند. بنابراین اندازه یک شی، مستقل از تعداد و اندازه توابع تعریف شده داخل کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوطه، تنها به تعداد و نوع اعضای داده ای آن بستگی خواهد داشت.

در زبان ساخت یافته، افعال موجود در صورت مساله به برنامه نویس برای پیاد ه سازی سیستم کمک می کند. اما در برنامه نویسی شی گرا (http://iranictnews.ir/tags/42524/T______شی-گرا.htm) مثل ++c اسامی موجود در صورت مساله به برنامه نویس کمک می کند تا کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) هایی را تعیین کند که با ایجاد اشیایی از آنها با یکدیگر کار می کنند سیستم را پیاده سازی کند.اگر نرم افزار (http://iranictnews.ir/tags/256/T______نرم-افزار.htm) از کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ساخته شود، از این کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ها می توان در برنامه های دیگر نیز استفاده کرد. به همین دلیل، کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ها قابلیت استفاده مجدد را دارند.

sunyboy
09-25-2008, 01:51 AM
ویژگی استفاده مجدد، نقش کلیدی و مهمی در مهندسی نرم افزار (http://iranictnews.ir/tags/1862/T______مهندسی-نرم-افزار.htm) و برنامه نویسی دارد. هر کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) جدیدی که ایجاد می کنیم، ممکن است قطعه ارزشمندی برای تولید نرم افزار (http://iranictnews.ir/tags/10949/T______تولید-نرم-افزار.htm) محسوب شود و برای سرعت (http://iranictnews.ir/tags/118137/T______سرعت.htm) در برنامه نویسی می توان آن را در برنامه های آینده به کار برد.برخی ویژگی های++ c (http://iranictnews.ir/tags/254008/T______c--.htm) بسیاری از افراد ++c را یک زبان سطح بالا نمی دانند و آن را از دسته زبان های میانی برمی شمارند.
علت آن است که این زبان همانند زبان سطح پایینی مثل اسمبلی (http://iranictnews.ir/tags/39855/T______اسمبلی.htm) می تواند مستقیما به حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) دستیابی داشته باشد و با مفاهیم بیت، بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) و آدرس کار کند و از طرف دیگر، برنامه های این زبان، همچون زبان های سطح بالایی مثل پاسکال (http://iranictnews.ir/tags/90588/T______پاسکال.htm)، از قابلیت خوانایی بالایی برخوردارند. به عبارت دیگر، دستورالعمل های این زبان، به زبان محاوره ای انسان نزدیک است که این ویژگی، مربوط به زبان های سطح بالاست.++c زبانی بسیار قدرتمند و انعطاف پذیر است.




در این زبان هیچ محدودیتی برای برنامه نویس وجود ندارد. هر آنچه را که فکر می کنید می توانید در این زبان پیاده سازی کنید.++c زبان برنامه نویسی سیستم است. برنامه های سیستم، برنامه هایی هستند که امکان بهره برداری از سخت افزار (http://iranictnews.ir/tags/2684/T______سخت-افزار.htm) و سایر نرم افزارها (http://iranictnews.ir/tags/192773/T______نرم-افزارها.htm) را فراهم می کنند.
سیستم عامل (http://iranictnews.ir/tags/519/T______سیستم-عامل.htm)، کامپایلر (http://iranictnews.ir/tags/86430/T______کامپایلر.htm)، اسمبلر و نرم افزار مدیریت بانک اطلاعاتی (http://iranictnews.ir/tags/180925/T______نرم-افزار-مدیریت-بانک-اطلاعاتی.htm) ازجمله برنامه های سیستم هستند. پیش از این نیز گفته بودیم که سیستم عامل (http://iranictnews.ir/tags/519/T______سیستم-عامل.htm)ی همچون unix (http://iranictnews.ir/tags/13242/T______unix.htm) یا linux (http://iranictnews.ir/tags/20972/T______linux.htm) با استفاده از این زبان نوشته شده اند. همچنین این زبان برای نوشتن نرم افزارها (http://iranictnews.ir/tags/192773/T______نرم-افزارها.htm)ی راه انداز سخت افزارهای جدید (http://iranictnews.ir/tags/40362/T______سخت-افزارهای-جدید.htm) که تازه طراحی می شوند مناسب است.

sunyboy
09-25-2008, 01:52 AM
بین زبان ++c و اسمبلی (http://iranictnews.ir/tags/39855/T______اسمبلی.htm) ارتباط نزدیکی وجود دارد. می توان در این زبان از تمامی قابلیت های زبان اسمبلی (http://iranictnews.ir/tags/46600/T______زبان-اسمبلی.htm) بهره برد. اشخاصی که به زبان اسمبلی (http://iranictnews.ir/tags/46600/T______زبان-اسمبلی.htm) مسلط هستند و به زبان ++c برنامه می نویسند گاهی برای نوشتن یک قطعه کد (http://iranictnews.ir/tags/96685/T______قطعه-کد.htm) که باید به زبان ++c نوشته شوند ممکن است احساس کنند که نوشتن آن به زبان اسمبلی (http://iranictnews.ir/tags/46600/T______زبان-اسمبلی.htm) برایشان راحت تر است. آنها با استفاده از قابلیت موجود در ++c می توانند به طور مستقیم در برنامه های ++c از کدهای اسمبلی (http://iranictnews.ir/tags/39855/T______اسمبلی.htm) استفاده کنند++c . نسبت به حروف حساس است. (case sensitive (http://iranictnews.ir/tags/29297/T______case-sensitive.htm))
یعنی در این زبان بین حروف کوچک و بزرگ تفاوت است و تمام کلمات کلیدی (http://iranictnews.ir/tags/29053/T______کلمات-کلیدی.htm) این زبان با حروف کوچک نوشته می شوند.

به عنوان مثال کلمه for یک کلمه کلیدی (http://iranictnews.ir/tags/59130/T______کلمه-کلیدی.htm) زبان ++c است، اما کلمه for کلیدی نیست. برای جلوگیری از وقوع خطاهای دستوری، توصیه می شود که کل یک برنامه در زبان ++c با حروف کوچک نوشته شود. مگر این که قانون مندی خاصی در حروف کوچک و بزرگ توسط برنامه نویس تعریف و تعیین شود و همچنین به این قانون مندی عادت داشته باشد و راحت به آن عمل کند.تعداد کلمات کلیدی (http://iranictnews.ir/tags/29053/T______کلمات-کلیدی.htm) زبان ++c کم است و به عبارتی این زبان، زبانی نسبتا کوچک است. البته نباید به اشتباه تصور شود که هر چه تعداد کلمات کلیدی (http://iranictnews.ir/tags/29053/T______کلمات-کلیدی.htm) یک زبان بیشتر باشد، آن زبان قدرتمندتر است. به واقع این دو مساله هیچ ربطی به هم ندارند. به عنوان مثال زبانی مثل basic با حدود 150 کلمه کلیدی (http://iranictnews.ir/tags/59130/T______کلمه-کلیدی.htm)، توانایی کمتری نسبت به ++c که زبانی با تعداد کلمات کلیدی (http://iranictnews.ir/tags/29053/T______کلمات-کلیدی.htm) کمتر است، دارد.هر برنامه ++c از قطعاتی به نام کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) و تابع تشکیل شده است.

برای ایجاد برنامه می توانید کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) یا تابع موردنیاز را بنویسید، اما توابع و کلاس (http://iranictnews.ir/tags/86409/T______توابع-و-کلاس.htm) های بسیار زیادی از قبل نوشته شده همراه (http://iranictnews.ir/tags/12/T______همراه.htm)کامپایلر (http://iranictnews.ir/tags/86430/T______کامپایلر.htm) ++c وجود دارد که برنامه نویس می تواند برای ایجاد برنامه از آنها استفاده کند. بنابراین در دنیای برنامه نویسی دو مساله مطرح است. یکی خود زبان و دیگری چگونگی استفاده از توابع و کلاس (http://iranictnews.ir/tags/86409/T______توابع-و-کلاس.htm) های آماده موجود موسوم به توابع کتابخانه (http://iranictnews.ir/tags/86987/T______توابع-کتابخانه.htm) ای.قابلیت حمل قابلیت حمل اصطلاحی است که در برنامه نویسی مطرح است و به این معناست که بتوان یک برنامه را که در یک نوع رایانه (http://iranictnews.ir/tags/48690/T______نوع-رایانه.htm) نوشته شده است.
بدون تغییر یا با اعمال اندک تغییرات، در رایانه (http://iranictnews.ir/tags/122/T______رایانه.htm) نوع دیگر نیز اجرا کرد. ++c این قابلیت را دارد که بتوان برنامه نوشته شده را در رایانه (http://iranictnews.ir/tags/122/T______رایانه.htm) دیگر با کامپایلر (http://iranictnews.ir/tags/86430/T______کامپایلر.htm) مخصوص همان رایانه (http://iranictnews.ir/tags/122/T______رایانه.htm) مجددا کامپایل (http://iranictnews.ir/tags/28955/T______کامپایل.htm) و استفاده کرد. به این خصوصیت زبان قابلیت حمل گفته می شود. به عبارتی زبان ++c زبانی قابل حمل (http://iranictnews.ir/tags/252473/T______قابل-حمل.htm) است. البته توجه داشته باشید که تمام رایانه (http://iranictnews.ir/tags/122/T______رایانه.htm) های با پردازنده اینتل (http://iranictnews.ir/tags/76030/T______پردازنده-اینتل.htm) از یک نوع به شمار می روند. قابلیت حمل برای رایانه (http://iranictnews.ir/tags/122/T______رایانه.htm) هایی با انواع مختلف مطرح است.با توجه به این توضیحات به راحتی می توان نتیجه گرفت که زبان اسمبلی (http://iranictnews.ir/tags/46600/T______زبان-اسمبلی.htm) زبانی قابل حمل (http://iranictnews.ir/tags/252473/T______قابل-حمل.htm) نیست.
زیرا هر پردازنده (http://iranictnews.ir/tags/117483/T______پردازنده.htm) دستورالعمل های خاص خود را دارد و زبان اسمبلی (http://iranictnews.ir/tags/46600/T______زبان-اسمبلی.htm) آن با زبان اسمبلی (http://iranictnews.ir/tags/46600/T______زبان-اسمبلی.htm)پردازنده (http://iranictnews.ir/tags/117483/T______پردازنده.htm) های دیگر متفاوت است. بنابراین نمی توان برنامه مربوط به یک پردازنده (http://iranictnews.ir/tags/117483/T______پردازنده.htm) را بدون تغییر و حتی با اندک تغییر برای پردازنده (http://iranictnews.ir/tags/117483/T______پردازنده.htm) دیگر اجرا کرد و باید آن برنامه به طور کلی برای پردازنده (http://iranictnews.ir/tags/117483/T______پردازنده.htm) دیگر بازنویسی شود. این یکی از بزرگ ترین اشکالات زبان غیرقابل حمل (http://iranictnews.ir/tags/252473/T______قابل-حمل.htm)ی مثل اسمبلی (http://iranictnews.ir/tags/39855/T______اسمبلی.htm) است.زبان ++c قابلیت های بسیار دیگری نیز دارد

sunyboy
09-25-2008, 01:57 AM
کامپایل (http://iranictnews.ir/tags/28955/T______کامپایل.htm)رهای عرضه شده از جانب دو شرکت مایکروسافت (http://iranictnews.ir/tags/517/T______شرکت-مایکروسافت.htm) و بورلند (http://iranictnews.ir/tags/49512/T______بورلند.htm) که به ترتیب visual c++ (http://iranictnews.ir/tags/254008/T______c--.htm) وc++ (http://iranictnews.ir/tags/254008/T______c--.htm) builder نام دارند، محصولاتی قدرتمند هستند که از محبوبیت خاصی در جهان برخوردارند.
اما این برنامه ها اولا حجیم هستند و ثانیا رایگان نیستند و برای استفاده از آنها، باید بابتشان هزینه پرداخت کرد. البته نسخه های قدیمیturbo c++ (http://iranictnews.ir/tags/254008/T______c--.htm) و borland c++ (http://iranictnews.ir/tags/254008/T______c--.htm) به صورت رایگان وجود دارند و هنوز مورد استفاده اند.

اما قصد داریم ابزاری بسیار توانمند، جدید و ساده را برای مبتدیان و کاربران حرفه ای (http://iranictnews.ir/tags/260704/T______کاربران-حرفه-ای.htm) این زبان معرفی کنیم. (http://iranictnews.ir/goto/?url=http%3A%2F%2F.code%3A%3Ablocks)

code::blocks نام یک نرم افزار رایگان (http://iranictnews.ir/tags/48064/T______نرم-افزار-رایگان.htm) و در حقیقت یک ide (http://iranictnews.ir/tags/20368/T______ide.htm) مخصوص c++ (http://iranictnews.ir/tags/254008/T______c--.htm) است که از جمله نرم افزارهای متن باز (http://iranictnews.ir/tags/260788/T______نرم-افزارهای-متن-باز.htm) است که به خود زبان c (http://iranictnews.ir/tags/20849/T______زبان-c.htm)++ نوشته شده است و کدهای آن نیز در اختیار کاربران (http://iranictnews.ir/tags/194248/T______کاربران.htm) قرار داده شده است. این نرم افزار مخصوص (http://iranictnews.ir/tags/59566/T______نرم-افزار-مخصوص.htm) سیستم عامل های ویندوز (http://iranictnews.ir/tags/162724/T______سیستم-عامل-های-ویندوز.htm)، لینوکس (http://iranictnews.ir/tags/507/T______لینوکس.htm) و mac (http://iranictnews.ir/tags/1033/T______mac.htm) os x (http://iranictnews.ir/tags/39626/T______os-x.htm) عرضه شده است و نسخه کامل (http://iranictnews.ir/tags/8521/T______نسخه-کامل.htm) آن برای ویندوز، حجمی حدود 20 مگابایت (http://iranictnews.ir/tags/192507/T______مگابایت.htm) دارد که به طور مستقیم از سایت (http://iranictnews.ir/tags/125283/T______سایت.htm) www.codeblocks.org (http://iranictnews.ir/goto/?url=http%3A%2F%2Fwww.codeblocks.org) قابل دسترسی (http://iranictnews.ir/tags/67570/T______دسترسی.htm) و دریافت است.

این ide (http://iranictnews.ir/tags/20368/T______ide.htm) از کامپایل (http://iranictnews.ir/tags/28955/T______کامپایل.htm)رهای مختلفی از جمله visual c++ (http://iranictnews.ir/tags/254008/T______c--.htm) مایکروسافت، 5/5 borland c++ (http://iranictnews.ir/tags/254008/T______c--.htm) ، gcc (http://iranictnews.ir/tags/40408/T______gcc.htm)، digital (http://iranictnews.ir/tags/653/T______digital.htm) mars، open watdcom و غیره پشتیبانی می کند. از قابلیت های بارز این ide (http://iranictnews.ir/tags/20368/T______ide.htm)، سرعت (http://iranictnews.ir/tags/118137/T______سرعت.htm) بالای آن است.

ضمن آنکه قادر است پروژه های تولید شده توسط visual c++ (http://iranictnews.ir/tags/254008/T______c--.htm) و devc++ (http://iranictnews.ir/tags/254008/T______c--.htm) را نیز درون خود باز کرده و کامپایل (http://iranictnews.ir/tags/28955/T______کامپایل.htm) کند. در صورت وجود بیش از یک پردازنده (http://iranictnews.ir/tags/117483/T______پردازنده.htm) یا وجود پردازنده ها (http://iranictnews.ir/tags/29118/T______پردازنده-ها.htm)ی 2 یا چند هسته (http://iranictnews.ir/tags/67306/T______هسته.htm) ای، این ide (http://iranictnews.ir/tags/20368/T______ide.htm) قادر است از امکانات پردازش موازی (http://iranictnews.ir/tags/71476/T______پردازش-موازی.htm) این پردازنده ها (http://iranictnews.ir/tags/29118/T______پردازنده-ها.htm) برای ساخت همزمان پروژه ها استفاده کند.ظاهر گرافیکی این نرم افزار (http://iranictnews.ir/tags/256/T______نرم-افزار.htm) بسیار زیبا و کاربرپسند بوده و طراحی ساده آن برنامه نویسی را راحت و لذتبخش می کند.

محیط ویراستار این ide (http://iranictnews.ir/tags/20368/T______ide.htm) از ویژگی syntax highlighting پشتیبانی می کند. با استفاده از این ویژگی، کلمات کلیدی (http://iranictnews.ir/tags/29053/T______کلمات-کلیدی.htm)، توابع، توضیحات و... موجود در کد برنامه به صورت رنگی یا برجسته نمایش داده می شوند تا خوانایی برنامه افزایش یابد.خصوصیت code completion موجود در آن نیز باعث می شود که شما مجبور نباشید همه متن برنامه مورد نظر را به صورت کامل تایپ کنید.
برنامه به شما کمک خواهد کرد که کلمات و متغیرهای طولانی موجود در برنامه و همچنین توابع ممکن در متن برنامه را بدون تایپ کامل وارد برنامه کنید. در واقع برنامه با پیشنهاد عبارت های ممکن به شما امکان انتخاب را فراهم می کنند تا ضمن سرعت (http://iranictnews.ir/tags/118137/T______سرعت.htm) بخشیدن به برنامه نویسی و راحتی عمل برنامه نویس، میزان خطای گرامری برنامه نیز تا حد امکان کاهش یابد.

ابزارهای کامل و توانای موجود برای debuging در این نرم افزار، این امکان را فراهم می آورند تا شما بتوانید به سرعت (http://iranictnews.ir/tags/118137/T______سرعت.htm) خطای منطقی موجود در برنامه را یافته و آن را رفع کنید و به عبارتی برنامه را اشکال زدایی (http://iranictnews.ir/tags/80477/T______اشکال-زدایی.htm) کنید.