نمایش نتایج: از شماره 1 تا 9 , از مجموع 9

موضوع: آموزش برنامه نویسی با ++c

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    New 1 آموزش برنامه نویسی با ++c

    مقدمه
    برنامه نویسی کامپیوتری عبارت است از کد نویسی با یک زبان برنامه نویسی و سپس کامپایل آن به صورت یک فایل اجرایی طوری که بتوان آن را در محیط سیستم عامل اجرا کرد. به عمل تولید فایل اجرایی(exe) از کد نوشته شده، کامپایل میگویند. بنابراین تمام برنامه هایی که شما در ویندوز میبینید توسط یک تیم برنامه نویسی درست شده اند که میتواند یک نفر یا صدها نفر باشد. البته برنامه نویسی فقط نوشتن کد نیست، بلکه باید نکاتی را هم رعایت کرد تا بعداً به مشکلی بر نخورد. در این آموزش هرجا لازم باشد نکاتی در این زمینه آورده میشود. برای ساختن یک برنامه کاربردی، قطعات مختلفی باید فراهم شوند تا برنامه نهایی تولید شود. مثلاً همین آی هایی که شما در هر برنامه ای مشاهده میکنید توسط یک نرم افزار گرافیکی تولید میشود و بعداً در قسمتهای مختلف برنامه استفاده میشود. همینطور اصواتی که در برنامه استفاده میشوند، گرافیک ها، داده های موردنیاز و... . بسته به برنامه ای که تولید میشود این موارد مختلف اند، اما همیشه مهمترین بخش، کدی است که برنامه نویس مینویسد و با تلفیق کردن آن با سایر قسمت های تهیه شده، برنامه اجرایی نهایی را میسازد. در اینجا ما به قسمت کد نویسی میپردازیم.

    چرا ++C
    برای نوشتن کد مورد نظر، ما از یک زبان برنامه نویسی باید استفاده کنیم. زبانهای مختلفی با اهداف گوناگون ساخته شده اند، اما فراگرفتن ++C در این بین این مزیت ها را دارد :

    - ++C یک زبان قدرتمند است که میتوانید تقریباً هرکاری که سیستم عامل اجازه دهد با آن انجام دهید.
    - یادگیری آن سخت نیست.
    - بعداً میتوانید به راحتی با ++Visual C یا #Visual C برنامه نویسی کنید، چراکه قسمت اصلی جریان که کدنویسی است را بلد هستید(کد نویسی با #C بسیار نزدیک به ++C است، چرا که در اصل تغییر یافته ++C برای محیط NET. است).

    البته مواردی مانند سرعت اجرای برنامه ها، قابلیت اجرا شدن روی سیستم های مختلف و... را هم دیگر همه شنیده اند! اما آنچه که مهم است اینست که شما با فراگیری آن فقط ++C یاد نمیگیرید، بلکه بعداً براحتی میتوانید برنامه های ویژوال مانند همین برنامه های معمول ویندوز بسازید. مثلاً یکی از جالب ترین کارهایی که با ++C و به کمک ابزارهای موجود میتوانید انجام دهید، ساختن بازی های کامپیوتری است.

    درباره Microsoft Visual Studio و MSDN
    برای نوشتن و کامپایل و اشکال زدایی برنامه های خود، باید از یک ابزار برنامه نویسی کمک بگیرید. به این ابزار، (IDE (Integrated Development Environment یا محیط یکپارچه(مجتمع) تولید میگویند، چراکه ابزارهای مختلف برای موارد ذکر شده را در خود مجتمع کرده است. ویژوال استودیو که توسط مایکروسافت تولید شده است، یکی از مشهورترین IDE ها است که قابلیت نوشتن برنامه ها در ++C# ، C (سی شارپ) ، ویژوال ++C ، ویژوال بیسیک و #J را میدهد. ما دراین آموزش از Visual Studio 2005 (یا به اختصار VS) استفاده خواهیم کرد.
    اما (MSDN (Microsoft Developer Network در اصل راهنمای موجود در ویژوال استودیو است. MSDN هر راهنمایی که برای برنامه نویسی در ویژوال استودیو لازم داشته باشید را در خود دارد : راهنمای دستورات زبان، توابع، نحوه برنامه نویسی، نکات فنی، کدهای نمونه و... . این موارد برای تمام زبانهایی که میتوانید با آنها در VS برنامه نویسی کنید وجود دارند. در حقیقت MSDN تا اینجا تنها راهنمایی است که چنین کامل و جامع است. شما در هر محیطی که بخواهید برنامه نویسی کنید، بازهم میتوانید از راهنمایی MSDN استفاده کنید. وقتی که با آن مواجه شوید، حتماً از اینکه همه چیز را دارد تعجب خواهید کرد! MSDN بدلیل حجم زیاد در اصل جدای از VS ارائه میشود و بعدا میتوانید آن را بعنوان Help به VS اضافه نمایید (شما میتوانید درست بعد از نصب VS هم اینکار را بکنید). اگر بسادگی بخواهیم بگوییم MSDN چیست، همان Help ای است که شما با زدن F1 در هر برنامه دیگری بدست می آورید. شما اصلاً نمیخواهد نگران چیزی باشید، فقط آن را بعد از VS نصب کنید تا بعداً از راهنمایی آن در جای مناسب استفاده کنید. البته MSDN از برای مشاهده لینک ها ، باید در انجمن ثبت نام کنید. برای ثبت نام اینجا کلیک کنید... هم قابل دسترسی است، اما وقتی شما میخواهید از آن استفاده کنید، اگر مجبور باشید هربار ده ها صفحه وب را مرور کنید تا به اطلاعات خود برسید، با زحمتی که وصل شدن به اینترنت و آوردن صفحه های وب به ما تحمیل میکند، اصلاً کار عاقلانه ای نیست! فقط وقتی که به جدیدترین اطلاعات نیاز دارید یا چیزی را در نسخه فعلی خود از MSDN نیافتید، بهتر است به سایت MSDN مراجعه کنید. ما در این آموزش از MSDN 2005 استفاده میکنیم. برای کار با MSDN در محیط VS فقط کافی است روی موضوعی که میخواهید درباره اش راهنمایی بگیرید(مثلاً یک دستور که تایپ کرده اید) دکمه F1 را فشار دهید.
    VS و MSDN بسته های نرم افزاری هستند، پس آنها را روی DVD یا چندین CD تهیه کنید و براحتی نصب کنید.

    چگونه در برنامه نویسی استاد شویم
    بعد از دنبال کردن هر قسمت از این آموزش، خوب است که هر دستور را آزمایش کنید و تمام امکاناتی که ارائه میدهد را بررسی کنید(با استفاده از MSDN). اما اگر میدانید که یک قطعه کد را بخوبی فهمیده اید، حتماً لازم نیست آنرا امتحان کنید. آنچه که مهم است اینست که خودتان برنامه بنویسید. ابتدا هدف کاری که میخواهید بکنید را مشخص کنید، بعد ببینید چگونه باید این کار را با امکانات ++C انجام دهید و یک طرحی روی کاغذ یا ذهنتان داشته باشید، سپس شروع به کد نویسی و اشکال زدایی کنید(هر قسمت در جای خود شرح داده میشود). در حقیقت هرگاه میخواهید کاری را با کامپیوتر انجام دهید به دنبال پیدا کردن راهی باشید که آن را با ++C انجام دهید و سپس مراحل ذکر شده را دنبال کنید.

  2. #2
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    پیش فرض

    <b> Re: آموزش برنامه نویسی با ++c

    آغاز برنامه نویسی با ++C
    برای برنامه نویسی باید کد خود را در یک فایل که فایل منبع نام دارد وارد کنید. در VS برای اینکه آغاز به کد نویسی برای یک برنامه جدید بکنید، باید یک پروژه جدید ایجاد کنید. این پروژه تمام فایل ها و منابع لازم برای ایجاد برنامه مورد نظر را درخود جای میدهد. البته پروژه در یک راه حل (solution) قرار میگیرد، چرا که ممکن است برای یک برنامه چندین پروژه ایجاد کنید که هر قسمت کلی از برنامه در یک پروژه قرار داشته باشد، در این حالت همه پروژه ها را در یک راه حل قرار میدهید. با ساختن اولین پروژه برای برنامه، VS برای آن یک راه حل میسازد، بعداً اگر خواستید میتوانید پروژه های دیگری هم به راه حل خود بیفزایید. هر پروژه روی دیسک سخت در یک فولدر جداگانه قرار میگیرد. شما میتوانید هنگام ایجاد یک پروژه جدید مشخص کنید که آیا برای راه حل هم یک فولدر ایجاد شود یا نه (که فولدر پروژه ها در آن قرارگیرد). اگر میدانید که فقط یک پروژه خواهید داشت میتوانید فولدری برای راه حل درست نکنید، اما اگر چندین پروژه دارید، بهتر است اینکار را بکنید.

    حالا میخواهیم اولین پروژه را ایجاد کنیم. بعد از اجرای VS، در منو انتخاب کنید: ...File > New > Project ، پنجره New Project باز میشود. در اینجا انواع پروژه ها بر اساس زبان برنامه نویسی دسته بندی شده اند. به قسمت Visual C++ > Win32 بروید، سپس در قسمت Templates نوع Win32 Console Application را انتخاب کنید. در قسمت :Name بجای <Enter_name> نام پروژه را وارد کنید (در اینجا Test را وارد کنید) و در قسمت :Location محلی که میخواهید فولدر پروژه(با همان نام پروژه) در آنجا ساخته شود را انتخاب کنید. اگر چک باکس Create directory for solution را انتخاب کنید، یک فولدر برای راه حل در مسیری که برای فولدر پروژه مشخص کرده اید ساخته میشود، سپس فولدر پروژه در آن ساخته خواهد شد. در اینجا این چک باکس را انتخاب نکنید، چرا که یک پروژه بیشتر نخواهیم ساخت.

    ایجاد پروژه جدید از نوع Win32 Console Application


    توجه کنید که پروژه های ++C در شاخه ++Visual C قرار دارند و Win32 پلت فرمی است که ما در آن برنامه مینویسیم. در این پلت فرم ما میتوانیم برنامه های کنسول(console) بسازیم، که خروجی این برنامه ها در command prompt ویندوز نمایش داده خواهد شد. اما اگر مثلاً از نوع MFC برنامه مینوشتیم، برنامه ما مانند هر برنامه دیگری در یک پنجره ویندوز نمایش داده میشد. برای برنامه نویسی با MFC ، باید ابتدا ++C را بلد باشید، سپس از یک آموزش Visual C++ 6 استفاده کنید. خوب برگردیم به ایجاد یک پروژه جدید : حالا دکمه OK را کلیک کنید. در پنجره جدید Next را انتخاب کنید. در قسمت :Application type گزینه Console application را انتخاب کنید. چک باکس Empty Project را انتخاب کنید. دکمه Finish را کلیک کنید. حالا پروژه شما ساخته شده است و میتوانید فایل های لازم را به آن اضافه کنید. از منوی View گزینه Solution Explorer را انتخاب کنید (یا روی تب Solution Explorer در پایین سمت چپ پنجره کلیک کنید). در قاب Solution Explorer فایل های اضافه شده به پروژه را مشاهده میکنید. البته برای دسته بندی کردن، VS چند پوشه را برایتان ایجاد کرده است که در زیر نام پروژه مشاهده میکنید (این پوشه ها مجازی هستند و روی دیسک سخت قرار ندارند). VS به این پوشه ها فیلتر میگوید، چرا که انواع فایل را فیلتر میکند. شما میتوانید با کلیک راست روی قسمت خالی قاب Solution Explorer و انتخاب Add > New F ilter یک پوشه جدید بسازید. برای کد نویسی حداقل به یک فایل منبع(source) نیاز دارید، برای ایجاد آن روی پوشه Source Files(که فایل های منبع در آن قرار میگیرند) کلیک راست کرده و ...Add > New Item را انتخاب کنید. در قسمت Categories، از شاخه ++Visual C قسمت Code را انتخاب کنید. در قسمت :Templates نوع (C++ File (.cpp را انتخاب کنید و در قسمت :Name نامی برای فایل وارد کنید (در اینجا Test، اما هر نامی میتوانید وارد کنید). دکمه Add را کلیک کنید.

    </b>

  3. #3
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    پیش فرض

    <b>RE: آموزش برنامه نویسی با ++C

    با تشکر از نظر شما،

    هر کاری که در کامپیوتر انجام میدهید با برنامه نویسی است! البته ممکن است مثلاً با فوتوشاپ کار کنید و هیچ برنامه نویسی هم نکنید، اما خود فوتوشاپ با برنامه نویسی بوجود آمده است. خیلی از کاربران کامپیوتر از برنامه های کامپیوتری که وجود دارند استفاده میکنند و هرگز هم نیازی به یادگیری برنامه نویسی ندارند، و بیشتر افراد به علت رشته تحصیلی یا شغل و در نتیجه نیازی که دارند برنامه نویس اند. البنه در این بین همیشه اشخاصی هستند که بعلت کنجکاوی دنبال آن میروند و اگر علاقه مند شوند دنبال میکنند. اما هر کاربری ممکن است گاهی اوقات بخواهد کاری را با نرم افزاری انجام دهد اما نتواند، در اینجا میتواند خودش با برنامه نویسی آن کار را انجام دهد.

    اما در مورد کارهایی که با برنامه نویسی میتوان انجام داد : شما برای هرکاری که میخواهید در کامپیوتر انجام دهید، برنامه مینویسید. این امر به تولید نرم افزار منجر میشود. تمام نرم افزار ها با برنامه نویسی ساخته میشوند : ویندوز - برنامه های گرافیکی، تجاری، آموزشی و ... - وب سایت ها - بازی های کامپیوتری و ... . همین سایتی که الان در آن هستید هم برنامه نویسی شده! اما برای برنامه نویسی فقط از ++C استفاده نمیشود. ممکن است نیاز به ترکیب نتایج حاصل از برنامه نویسی با چند زبان برنامه نویسی مختلف داشته باشید، یا اصلاً از ++C استفاده نکنید، مثلاً برای ساختن یک صفحه وب، از HTML و جاوا اسکریپت و... استفاده کنید. در هر زمینه ای معمولاً یک یا چند زبان برنامه نویسی بیشتر استفاده میشوند، یا مخصوص برنامه نویسی در آن زمینه هستند. بعضی کارها در یک زبان بسادگی انجام میشوند و در دیگری به سختی. اما خوبی برنامه نویسی این است که، وقتی یک زبان را یاد بگیرید، معمولاً زبانهای مشابه دیگری هم وجود دارند که بسادگی میتوانید آنها را هم یاد بگیرید، تشابه آنها هم میتواند در شکل دستورات، نحوه برنامه نویسی، محیط برنامه نویسی و... باشد. کلاً وقتی که با برنامه نویسی آشنا شوید، زبان های زیادی را میتوانید براحتی یاد بگیرید.

    با خود ++C میشود انواع برنامه ها را ساخت، اما اکنون تقریباً تمام برنامه های تحت ویندوز دارای یک رابط کاربر گرافیکی هستند، یعنی همان پنجره های هر برنامه و محتویاتشان، اما اگر بخواهید با ++C چنین برنامه هایی بسازید باید ابزارهای ویژوال(بصری) هم به کمک شما بیایند، وگرنه مثلاً ممکن است برای انجام یک کاری که در زبان ویژوال چند دقیقه طول میکشد، در ++C روزها وقت بگذارید! البته اساس ابزارهای ویژوال همان زبانهای برنامه نویسی هستند. مثلاً ++VC را در نظر بگیرید. وقتی که میخواهید با آن برنامه بنویسید باید از دستورات زبان ++C استفاده کنید، اما خود ++VC امکاناتی برای سرعت دادن به ساخت برنامه ها در اختیارتان میگذارد. یعنی سازندگان ++VC قسمت های زیادی از کار را برای شما انجام داده اند که میتوانید در هر برنامه از آنها استفاده کنید. در عین حال محیط های برنامه نویسی ویژوال امکان ساخت بصری رابط کاربر گرافیکی را بشما میدهند. پس نتیجه اینکه، ابتدا ++C را یاد بگیرید و سپس یک زبان ویژوال را، آتگاه بدنبال ساخت هربرنامه ای باشید! البته همانطور که گفته شد، در هر زمینه ای از یک زبانی استفاده میشود. نکته دیگر اینکه همیشه هم نباید از رابط گرافیکی در برنامه هایتان استفاده کنید، معمولاً قسمتهایی از برنامه که نیازی به تعامل گرافیکی با کاربر ندارند، بدین صورت نوشته میشوند. برنامه های console که در این آموزش مینویسیم، از این دست هستند. این برنامه ها از طریق (command prompt (cmd.exe ویندوز با کاربر ارتباط برقرار میکنند. برخی برنامه ها فقط از این طریق با کاربر ارتباط دارند، مثل انواع ابزارهایی که ویندوز ارائه میدهد(... ,Telnet, ipconfig) یا رابط کنسولی WinRAR. اما بهرحال محیط های برنامه نویسی ویژوال مانند Visual Studio در نوشتن هر برنامه ای به شما کمک میکنند. حتی قسمت اشکال زدای این محیط ها بتنهایی خیلی با ارزش است.

    زمانی که باید صرف نوشتن یک برنامه بکنید بستگی به برنامه ای دارد که مینویسید. اما اگر سرعت تولید نرم افزار برایتان اهمیت دارد حنماً از ابزارهای ویژوال استفاده کنید. البته چون ++C امکانات زیادی در اختیارتان میگذارد، و همجنین از روش برنامه نویسی شیء گرا حمایت میکند، سرعت برنامه نویسی شما بالا میرود.

    </b>

  4. #4
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    پیش فرض

    <b>Re: آموزش برنامه نویسی با ++c

    اولین برنامه ++C : تعامل با کاربر

    بگذارید پیش از هر چیز یک قطعه کد ساده از ++C را مشاهده کنیم تا قسمت های اصلی آن را شرح دهیم. باید این کد را در فایل منبعی که ساخته اید (Test.cpp) وارد کنید :


    کد:
    #include <iostream>
    using namespace std;

    int main()
    {
    int number;

    cout << "Please enter a number : ";
    cin >> number;

    cout << "The entered number is : " << number << endl;

    system( "pause" ); // shows "Press any key to continue..."
    return 0;
    }

    بعد از وارد کردن این کد، برای ساختن فایل exe از آن، کلید F7 را بزنید (یا از منو انتخاب کنید: Build > Build Solution. اگر میخواهید فقط پروژه جاری ساخته شود، Build ProjectName را انتخاب کنید، که ProjectName نام پروژه است(مثلاً در اینجا Build Test وجود دارد). در حالتی مثل پروژه فعلی که راه حل شما فقط یک پروژه دارد، فرقی ندارد که راه حل را بسازید یا پروژه را، اما اگر چند پروژه داشتیم، با ساختن راه حل، تمام پروژه های آن ساخته میشدند). شما با این کار برنامه خود را می سازید. یعنی برنامه کامپایل میشود، اگر اشتباهی در دستورات شما وجود داشته باشد یا به هر دلیل دیگری کامپایلر موفق به کامپایل برنامه نشود، خطایی تولید خواهد کرد، وگرنه یک فایل میانی از برنامه شما میسازد، سپس آنرا به Linker میدهد تا فایل exe را تولید کند. اگر لینکر نتواند فایل exe تولید کند خطایی نمایش خواهد داد. پیغام هایی که در طی انجام عملیات ساختن برنامه تولید میشوند(که شامل خطاها میشود)، در تب Output، در پایین پنجره اصلی نمایش داده میشوند. اگر ماوس را بر روی عنوان تب Output یک لحظه نگهدارید، خود بخود باز میشود.

    تب Output
    برای اجرای برنامه کلید های Ctrl + F5 را بزنید، یا از منو انتخاب کنید: Debug > Start Without Debugging. برنامه در یک پنجره Command Prompt نمایش داده میشود.

    اجرای برنامه در پنجره Command Prompt


    نکته : برای ذخیره کردن تمام محتویات پروژه(فایل ها و تنظیمات و... ) از کلیدهای Ctrl+Shift+S یا از منو : File > Save All استفاده کنید.

    اجرای فوری پروژه : قبل از اجرای پروژه اگر تغییری در آن داده باشید باید پروژه را دوباره بسازید، اما اگر میخواهید برنامه را فوراً اجرا کنید و بعد از آخرین تغییرات در پروژه آن را نساخته اید، بازهم میتوانید از Ctrl+F5 برای اجرای آن استفاده کنید. در این حالت سؤال میشود که آیا میخواهید آن را بسازید یا نه، اگر نه را انتخاب کنید، آخرین محصول(فایل exe) ساخت پروژه اجرا خواهد شد و پروژه دوباره ساخته نمیشود.

    محل قرار گیری محصول پروژه (فایل اجرایی) در دیسک سخت : اگر پروژه را در حالت اشکال زدایی(debug) ساخته باشید(حالت پیش فرض)، فایل اجرایی در فولدر Debug در فولدر پروژه شما قرار دارد. اما اگر در حالت Release ساخته باشید، در فولدر Release در فولدر پروژه شما قرار دارد. در هردو حالت، اگر یک فولدر جداگانه برای راه حل خود ساخته باشید، فولدرهای مذکور در فولدر راه حل قرار دارند. در مورد حالات debug و release بعداً توضیح خواهیم داد.

    گرفتن راهنمایی فوری از MSDN : برای گرفتن راهنمایی MSDN در مورد دستوراتی که در فایل وارد کرده اید، کافی است مکان نمای ورود از طریق صفحه کلید(که بشکل I هست) را بر روی دستور مورد نظر قرار دهید(یعنی فقط در بین یکی از کاراکترهای آن باشد) آنگاه F1 را بزنید (ممکن است MSDN با کمی تأخیر نمایش داده شود). اگر خطایی در هنگام کامپایل رخ دهد، برای گرفتن راهنمایی از MSDN در مورد آن خطا، ابتدا مکان نما را در تب Output روی خطی که عبارت 'error' در آن وجود دارد ببرید، سپس F1 را بزنید. البته در هر قسمتی از VS که باشید، میتوانید با زدن کلید F1 در مورد آن قسمت، از MSDN راهنمایی بگیرید.

    باز کردن فوری پروژه : هروقت که VS را اجرا میکنید، تب Start Page نمایش داده میشود، شما میتوانید با کلیک بر روی نام پروژه خود از درون این تب، پروژه را باز نمایید. (توجه کنید که VS بیشتر جاها به 'راه حل' هم 'پروژه' میگوید). اما اگر بخواهید میتوانید در منو File به قسمت Recent Projects بروید، سپس نام پروژه خود را انتخاب کنید. توجه کنید که در هردو روش، فقط چندتا از پروژه هایی که اخیراً باز یا ایجاد کرده اید نمایش داده میشوند، اگر نام پروژه خود را نیافتید باید از منوی File > Open استفاده کنید. پسوند فایل های راه حل، sln میباشد(البته این نکته استفاده ای ندارد!).

    </b>

  5. #5
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    پیش فرض

    <b>: آموزش برنامه نویسی با ++c

    قالب کلی برنامه نویسی در ++C
    برای برنامه نویسی در ++C، شما حداقل به یک فایل منبع نیاز دارید(در اینجا همان test.cpp است) که برای ایجاد فایل اجرایی از پروژه لازم است. البته فایل های دیگری نیز وجود دارند که برای در اختیار گذاشتن منابع لازم برای برنامه نویسی استفاده میشوند. برخی از این فایل ها را برنامه نویس مینویسد و برخی دیگر از قبل آماده اند، که توسط خود زبان ++C در اختیارتان قرار میگیرد یا اینکه افراد دیگر آنها را نوشته اند و شما آنها را مجانی یا با پول تهیه میکنید. در این باره در جای خود توضیح داده خواهد شد. چیزی که در اینجا مهم است، فایل هایی است که خود ++C در اختیارتان میگذارد. برای استفاده از این فایل ها که برخی امکانات برنامه نویسی را در اختیار شما میگذارند، باید از دستور include# استفاده کنید(به دستوراتی که با # شروع میشوند، هدایتگر پیش پردازنده میگویند. پیش پردازنده قبل از کامپایلر یکسری از اعمال مثل همین وارد کردن یک فایل را انجام میدهد). این دستور فایل موردنظر را وارد فایل منبع میکند و شما میتوانید از امکانات آن فایل استفاده کنید. فایل iostream که توسط این دستور در ابتدای کد وارد شده (داریم قطعه کد قبلی را بررسی میکنیم) شامل دستورات ورودی - خروجی است. نام فایل هم این را نشان میدهد : io برای Input Output و stream یعنی جریان. هنگامی که اطلاعات را به منبعی میفرستید یا از آن میگیرید(مثلاً به صفحه مانیتور یا به یک فایل)، جریانی از اطلاعات رد و بدل میشود. در ++C برای ورودی - خروجی روی فایل یا مانیتور از جریان (stream) استفاده میشود.
    دستور ;using namespace std مشخص میکند از فضای نام std استفاده شود، وگرنه باید در ابتدای هر نامی که از این فضای نام استفاده میکنید، یک ::std بگذارید، مثلاً بجای cout باید بگذارید std::cout و این خسته کننده خواهد بود، اما اگر زمانی تداخل نام پیش آید مجبور به استفاده از این پیشوند خواهید بود(مثلاً وقتی یک متغیر با همین نام دارید).

    قسمتهایی که در هر برنامه ++C وجود دارند:
    - هر دستور اجرایی(دستوری که عملی را انجام میدهد) با ; پایان میابد.
    - دستورات اجرایی برنامه بین { و } در کد زیر باید قرار گیرند (یعنی قطعه کد زیر در تمام برنامه های اجرایی باید قرار داشته باشد). این قطعه کد در اصل تعریف تابع main است (یک تابع مجموعه ای از دستورات است که اعمالی را انجام میدهد).


    کد:
    int main()
    {

    return 0;
    }

    دستورات برنامه بین } و دستور return قرار میگیرند. دستور return باعث خاتمه اجرای برنامه میشود و 0 که بعد از آن آمده است، به فراخواننده برنامه ما (سیستم عامل یا برنامه های دیگری) میگوید که برنامه با موفقیت خاتمه یافته است. اما 1 مشخص میکند که خطایی در برنامه رخ داده است. البته return هر مقداری را برگرداند(اصطلاحاً به مقدار بعد از عبارت return گفته میشود 'برگردانده شده' یعنی return یک مقدار را برمیگرداند) معمولاً در خاتمه یافتن برنامه شما اشکالی ایجاد نمیشود، اما فرآیندی(به هر قطعه ای که توسط CPU اجرا میشود، فرآیند میگویند، مثلاً یک فایل اجرایی) که برنامه شما را اجرا کرده است اینطور در نظر خواهد گرفت که برنامه شما مشکلی داشته است.
    - عبارت ;("system ("pause را میتوانید در هرجایی از بین دستورات برنامه استفاده کنید. این عبارت سبب میشود که اجرای برنامه شما متوقف شده و منتظر زدن کلیدی از سوی کاربر(کسی که برنامه شما را اجرا میکند) شود و در عین حال عبارت "...Press any key to continue" را نشان میدهد. البته وقتی برنامه را از درون VS اجرا میکنید، دو بار این عبارت را خواهید دید، اما اگر فایل اجرایی برنامه را از درون فولدر پروژه اجرا کنید فقط یکبار مشاهده خواهید کرد، چرا که VS خودش در آخر اجرای برنامه توقف میکند تا برنامه نویس بتواند نتایج را ببیند. بنابراین اگر از این دستور در پایان برنامه استفاده نکنید وقتی کاربر برنامه شما را از طریق فایل exe. اجرا کند برنامه در پایان فوراً خاتمه میابد و کاربر قسمتی از خروجی که برنامه بعد از آن توقف نکرده را نمیبیند.

    </b>

  6. #6
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    پیش فرض

    <b>: آموزش برنامه نویسی با ++c

    متغیرها
    برای نگهداری یک مقدار در حافظه اصلی (RAM) تا بعداً به آن دسترسی داشته باشیم، باید یک متغیر تعریف کنیم. متغیرها انواع مختلفی دلرند که برخی از آنها از ابتدا در زبان وجود دارند، که نوع های بنیادی(fundamental) یا اصلی هستند و در سه گروه کلی جای میگیرند: 1.اعداد صحیح یا کامل مثل: 23، 2.اعداد اعشاری (با مقدار کسری یا همان ممیز شناور) مثل: 23.67، 3.بدون نوع مشخص(void). در جدول زیر انواعی که میتوانید برای تعریف متغیرها استفاده کنید آورده شده است. این جدول یک مرجع است، بنابراین سعی نکنید الآن همه آنرا بفهمید، فقط یکبار بخوانید، بعداً هر نوع درجای خود توضیح داده خواهد شد.

    انواع بنیادی زبان


    تعریف متغیر

    در هرجایی که بخواهید مقداری را درون متغری ذخیره کنید، ابتدا باید متغیر را با نوع مشخصی تعریف(define) کنید، به این عمل معرفی کردن یا declare هم میگویند. شکل دستور تعریف یک متغیر چنین است: ;<نام متغیر> <نوع> . مثلاً برای تعریف متغیر number از نوع int این دستور را مینویسیم: ;int number . میتوان هنگام تعریف، یک مقدار اولیه هم به متغیر داد، که به این عمل مقداردهی اولیه یا initialization گویند: ;23 = int number متغیر number را تعریف و به آن مقدار 23 را میدهد. چندین متغیر از یک نوع را میتوانید در یک دستور تعریف و مقداردهی کنید:
    ;int a,b
    یا
    ;int a=0, b=6

    در یک دستور، میتوانید چند تا از متغیرها را مقدار دهی اولیه نکنید در حالی که بقیه را مقدار میدهید.

    شناسه ها (identifier)
    به هر اسمی که معرف یک موجودیت باشد، شناسه میگویند. کلاً دو نوع شناسه داریم : 1.کلمات کلیدی (keyword) و 2.تعریف شده توسط برنامه نویس.
    1.کلمات کلیدی به رنگ آبی نمایش داده میشوند و از قبل در زبان تعریف شده اند و عملکرد خاص خود را دارند. مثلاً int یک کلمه کلیدی است که متغیری از نوع عدد صحیح را تعریف میکند. 2. شناسه هایی که برنامه نویس تعریف میکند، مثل: نام متغیرها، نام توابع و کلاس ها(بعداً توضیح داده خواهند شد) و... .

    قواعد تعریف شناسه ها
    1. کلمات کلیدی را دوباره نمیتوان تعریف کرد. بنابراین شناسه های کاربر نمیتوانند هم نام با کلمات کلیدی باشند. مثلاً نمیتوان متغیری با نام int تعریف کرد.

    2. شناسه ها باید با یک حرف یا یک زیرخط(_) شروع شوند، کاراکترهای بعدی میتواند یک حرف یا عدد یا زیرخط باشد. مثلاً این شناسه ها درستند: number و num_ber1_ و 123__ و حتی خود زیرخط بتنهایی. اما اینها نادرستند: 1number و 123 و 1_2.

    3. حروف بزرگ و کوچک در تعریف شناسه تأثیر دارد. یعنی مثلاً number با Number متفاوت است.

    پیشنهاداتی برای نام گذاری شناسه ها :
    - از نام هایی استفاده کنید که بعداً از روی آنها به ماهیت شناسه پی ببرید. مثلاً اگر از متغیری برای ذخیره نام یک فرد استفاده میکنید، بهتر است نام متغیر را name بگذارید، نه چیزی مثل a12 . بعضی اوقات مشخص کردن نوع متغیر در نام آن میتواند کمک کننده باشد. مثلاً اگر متغیر num از نوع int است میتوانید بجای num از inum یا i_num استفاده کنید. بعداً بادیدن i در نام متغیر، پی به نوع آن که int است میبرید.

    - چون در نام شناسه ها نمیتوان از فاصله استفاده کرد، از زیرخط برای جداکردن قسمت های مختلف یک شناسه استفاده کنید. مثلاً بجای familyname از family_name استفاده کنید. اینکار خوانایی برنامه را بالا میبرد.

    - از کاراکتر زیرخط در ابتدای یک شناسه استفاده نکنید. مثلاً number_ نام خوبی نیست، چراکه ++C (یا کامپایلر VS) خودش از یک یا چند زیر خط در ابتدای برخی از کلمات کلیدیش استفاده میکند. مثلاً int32__ یک کلمه کلیدی است. حتی اگر موقعی که برنامه را مینویسید به مشکلی بر نخورید ممکن است بعداً ++C کلمه کلیدی ای هم نام با شناسه شما تعریف کند و آنگاه برنامه شما کامپایل نشود یا نتایج نادرست تولید کند.

    - در ابتدای نام متغیر ها از حروف کوچک استفاده کنید. این قاعده میتواند بعداً که توابع و کلاسها را نام گذاری میکنید بین آنها تفاوت ایجاد کند و راحت تر به نوع شناسه پی ببرید.

    یک قاعده کلی در ++C :
    وجود هر تعداد فاصله یا خط جدید بین عبارات یا قسمت های مجزا از یک عبارت ایرادی ندارد. مثلاً تمام عبارات زیر درستند:


    کد:
    int a,b;
    int a , b;
    int a,
    b;

    حتی مورد آخر در تعریف چند متغیر از یک نوع میتواند خوانایی برنامه را بالا برد.

    </b>

  7. #7
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    پیش فرض

    <b> Re: آموزش برنامه نویسی با ++c

    توضیح درباره انواع متغیرها

    بازه مقادیر
    هر متغیری در برنامه باید نوعی داشته باشد. این نوع مشخص میکند که متغیر چه مقادیری و از چه نوع را نگهداری میکند. اندازه هر نوع، بازه مقادیری که آن نوع میتواند نگهدارد را مشخص میکند. اما اندازه هر نوع با تعداد بایتی که در حافظه اشغال میکند مشخص میشود. هر بایت 8 بیت است و هر بیت هم میتواند 0 یا 1 باشد. بنابراین هر بیت دو حالت دارد. میدانید که اگر دو چیز که هرکدام دو حالت مختلف دارند را در کنار هم یک چیز در نظر بگیریم، حالا این چیز واحد که در اصل دو واحد مجزا دارد، 4 حالت مختلف دارد(از ضرب حالات واحدهای مجزا که 2x2 میشود 4). در اینجا هم یک بایت از واحدهای مجزا که بیت ها هستند تشکیل شده و هر بیت دوحالت دارد، حالا چون هر بایت 8 بیت دارد، پس برای مشخص کردن تمام حالات یک بایت باید 8 تا 2 را در هم ضرب کنیم(یا همان 2 بتوان 8) که میشود 256. پس هر بایت 256 حالت مختلف دارد و چون هر حالت در کامپیوتر معادل یک عدد مشخص است، پس یک بایت یکی از 256 عدد مختلف را میتواند نگهدارد. این اعداد از صفر تا 255 خواهند بود. پس ما خودمان مقادیری که یک بایت میتواند نگهدارد را حساب کردیم(کلاً بخاطر داشته باشید این مقدار میشود: 2 بتوان تعداد بیت ها). اگر اعداد منفی را بحساب بیاوریم، بحث اعداد علامت دار پیش می آید. ++C از روش 'مکمل دو' برای ذخیره اعداد علامت دار استفاده میکند. لازم نیست از چگونگی این روش اطلاع داشته باشید، چرا که حساب کردن بازه مقادیر خیلی راحت است. مثلاً در حالت قبل حساب کردیم که هربایت 256 عدد را نگه میدارد، حالا فقط کافی است 256 را به دو تقسیم کنیم که میشود 128. بسادگی بازه مقادیر خواهد بود: 128- تا 127. در کل بخاطر داشته باشید که هر نوعی اگر بخواهد مقادیر منفی را هم ذخیره کند، نصف کل مقادیری که ذخیره میکند را میتواند عدد منفی نگهدارد و نصف دیگر عدد مثبت(البته 0 را هم شامل میشود بهمین خاطر این مقدار یکی کمتر از مقادیر منفی است، یعنی 127 در مقابل 128). دانستن اینکه هر متغیر چه مقادیری را نگه میدارد، معمولاً موردنیاز نیست، بنابراین هرجا خواستید بدانید، میتوانید به جدول مرجعی که در زیر می آید مراجعه کنید. در جدول شما به کلمات signed(با علامت) و unsigned(بدون علامت) برمیخورید، اینها کلمات کلیدی هستند که مشخص میکنند آیا یک نوع مقادیر منفی را هم نگه میدارد یا نه.

    قبلاً در جدول 'انواع بنیادی زبان' انواع مختلف را آوردیم، حالا مقادیری که هر نوع بنیادی میتواند نگهدارد را می آوریم:

    بازه مقادیر انواع بنیادی


    توضیح: 'نام دیگر' یعنی معادل، بنابراین بجای int دقیقاً میتوانید بنویسید signed.

    توضیح انواع بنیادی
    (ممکن است به عبارت ثابت لفظی(literal constant) برخورد کنید. یک لیترال(literal) ثابتی است که اسم آن همان مقدار آن باشد، مثل عدد 23 یا کاراکتر 'A' و...).

    int
    اعداد صحیح(کامل) را نگه میدارد. پیشوندهای short و long فقط بازه مقادیری که int نگه میدارد را تغییر میدهند. معمولاً از int استفاده میشود اما درجاهایی که مقدار فضای مصرفی برنامه مهم است، از short استفاده کنید، هرجا هم که میخواهید مقادیری فراتر از بازه مقادیر int را ذخیره کنید، از int64__ استفاده کنید. کلمات کلیدی intn__ خاص مایکروسافت هستند، بنابراین اگر از این انواع استفاده کنید، در کامپایلری که این انواع را نداشته باشد، کد شما خطا خواهد داد.
    میتوانید مقادیر لیترال مبنای شانزده را در کد خود وارد کنید، به فرم: عدد0x مثلاً اگر number یک عدد int باشد، number = 0x10 معادل number = 16 هست، چراکه 10 در مبنای شانزده برابر 16 در مبنای ده است.

    bool
    مخفف نام boolean است که میتواند مقدار true(درست) یا false(نادرست) داشته باشد(true و false کلمات کلیدی هستند). معمولاً در تبدیل اعداد، عدد صفر 'نادرست' و اعداد غیر صفر، 'درست' در نظر گرفته میشوند.

    char
    کاراکتر به یک نشانه میگویند که در مجموعه کاراکترهای زمان اجرا وجود دارد. مثلاً 'a' یک نشانه یا کاراکتر است(در ++C هر کاراکتر منفرد در دوتا ' قرار میگیرد). این مجموعه کاراکترها برای ++ASCII ، Microsoft C هست. مجموعه کاراکترهای اسکی(ASCII) را میتوانید در MSDN مشاهده کنید(در قسمت ASCII character set). چون هر char یک بایت فضا میگیرد و 256 حالت دارد، بنابراین یکی از 256 کاراکتر مختلف را میتوان در آن نگهداری کرد. وقتی که مجموعه کاراکترها را در MSDN میبینید(مثلاً در قسمت 127-0)، هرکدام یک عدد در زیر ستون Dec دارند، در حقیقت مقدار هر کاراکتر یک عدد است. مثلاً کاراکتر A را در نظر بگیرید، اگر در ستون Dec مقدار آن 65 است. این یعنی وقتی A را بصورت عدد استفاده کنیم 65 هست و وقتی نمایش کاراکتری آن را داشته باشیم، A خواهد بود(در اصل وقتی A در حافظه بخواهد ذخیره شود، عدد 65 در یک بایت بعنوان A ذخیره میشود، که آن عدد خود بصورت یک عدد دودویی ذخیره میشود، چون در نهایت هرچیزی در حافظه کامپیوتر بصورت یک سری ارقام دودویی که یا صفر هستند یا یک، ذخیره میشود). البته این موضوع بعداً در کاربرد روشنتر خواهد شد. اما از اینجا این را درنظر داشته باشید که هر کاراکتر متناظر با یک عدد است(که به آن کد کاراکتر هم میگویند، که البته با ستون Code در MSDN متفاوت است).

    wchar_t
    همانطور که مجموعه کاراکتری ASCII وجود دارد، مجموعه های دیگری هم وجود دارند. زمانی که ASCII را تعریف کردند فقط یکسری از علایم بعلاوه حروف و اعداد انگلیسی را در آن در نظر گرفتند(همانطور که در MSDN میبینید). البته بیش از این هم جا نداشت! چرا که فقط یک بایت با 256 حالت در اختیار داشت. اما بعداً با رواج اینترنت و همچنین تلاش برای تولید نرم افزارهایی با پشتیبانی چندین زبان، نیاز به یکسری کد برای کاراکتر های سایر زبان ها احساس شد. چون ASCII قابل گسترش در یک بایت نبود، یک مجموعه کاراکتری جدید با دو بایت فضا ایجاد کردند و نامش را Unicode گذاشتند(که از Universal code (کد جهانی) می آید، چرا که برای داشتن تمام کدهای کاراکتری لازم در تمام جهان ابداع شد). wchar_t (یا همان wchar_t__) برای در برداشتن کاراکترهای یونی کد(Unicode) به ++C اضافه شده است. بنابراین مثلاً برای استفاده از کاراکترهای فارسی، از این نوع استفاده کنید.

    enum
    مخفف enumeration در انگلیسی است، که 'شمارشی' ترجمه میشود. این نوع را درجای خود توضیح خواهیم داد.

    float و double
    انواعی برای ذخیره اعداد اعشاری با ممیز شناورند. مثلاً عددی مثل: 123.456. تفاوتشان در اندازه شان هست، اندازه double دو برابر float میباشد. شما برای مشخص کردن ثابت هایی از نوع اعشاری، میتوانید از نماد علمی هم استفاده کنید، مثلاً برای ده بتوان 3- بنویسید: 10e-3 که e نماینده توان است(بزرگ و کوچک بودنش فرقی ندارد، اما باید بدون فاصله بنویسید)، یا مثلاً 1508E+30(که همان 1508E30 هست).

    تعیین اندازه یک نوع یا متغیری از آن نوع
    اگر میخواهید بدانید که یک نوع در کامپیوتری که برنامه شما اجرا میشود چند بایت است، یک عملگر که کلمه کلیدی هم هست، در ++C وجود دارد به نام sizeof. مثلاً (sizeof(int اندازه یک int را برمیگرداند، یا مثلاً اگر متغیر number داشته باشید، (sizeof(number اندازه number را برمیگرداند(وقتی sizeof را بر روی یک متغیر اعمال میکنید، میتوانید پرانتزها را نگذارید و بنویسید: sizeof number). این عملگر را برای نوع void نمیتوانید بکاربرید، و هیچ گاه مقدار 0 برنمی گرداند.

    </b>

  8. #8
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    پیش فرض

    <b>
    دستورات cout و cin
    این دستورات برای ورودی-خروجی استفاده میشوند. خروجی روی مانیتور هست و ورودی را از صفحه کلید توسط کاربر دریافت میکند. توجه کنید که اینها دراصل دستور نیستند. فقط اشیاءی از نوع کلی stream هستند.

    cout
    برای خروجی روی مانیتور استفاده میشود. شکل استفاده از آن چنین است:
    ;endl >> نام متغیر >> "پیغام" >> cout
    این یک شکل کلی است که نشان میدهد ابتدا یک پیغام روی مانیتور چاپ شود، بعد مقدار یک متغیر و در انتها به سطر بعدی منتقل شود. endl که از end of line آمده است، به معنی آخر خط میباشد و مکان نما(یعنی خط فاصله چشمک زن در پنجره خروجی، که محل قرارگیری کاراکتر بعدی را نشان میدهد و به آن cursor میگویند) را به ابتدای سطر بعد میبرد.

    cin
    برای در یافت ورودی از سوی کابر استفاده میشود. مقدار دریافتی در متغیری که در دستور مشخص شده نگهداری خواهد شد. شکل کلی دستور:
    ;نام متغیر << نام متغیر << cin
    هر تعداد متغیر که بخواهید میتوانید در دستور cin وارد کنید.

    چند مثال و نکته
    ابتدا به قطعه کد قسمت 'اولین برنامه ++C' که قبلاً ارائه دادیم برگردید و کاربرد دستورات cin , cout را مشاهده کنید. حالا به مثال دیگری توجه کنید:


    کد:
    #include <iostream>
    using namespace std;

    /*
    It's a multiple line comment,
    you can write your comments in more than one line
    */

    int main()
    {
    int num1,
    num2;

    cout << "Please enter two numbers : "; // it's a one line comment
    cin >> num1 >> num2;
    cout << "The entered numbers are : " << num1 << " and " << num2 << endl;

    cout << "Size of int in this computer is : " << sizeof(int) << endl;

    cout << "It's in the first line\nIt's in the second one\n";

    system( "pause" );
    return 0;
    }
    خروجی:


    تحلیل:
    توضیحات (comments)
    هرجایی از کد(خارج از یک رشته کاراکتری) میتوانید بعد از دوتا \ یک توضیح بیاورید، یعنی مثلاً در آخر یک دستور توضیح دهید که هدف از این دستور چیست. کامپایلر توضیحات را نادیده میگیرد، یعنی انگار که وجود ندارند. \\ یک توضیح یک خطی را فراهم میکند، برای وارد کردن یک توضیح در چند خط، بجای استفاده از \\ در ابتدای هر توضیح در هر خط، میتوانید در ابتدای توضیحات *\ را وارد کنید و در انتهایش(که ممکن است چند خط بعد باشد) \* را وارد کنید.

    تحلیل عملکرد برنامه
    ابتدا دو عدد num1 و num2 را تعریف کرده ایم. بعد با چاپ یک پیغام از کابر درخواست میکنیم که دو عدد را وارد کند. با دستور cin منتظر دریافت اعداد میشویم. در اینجا کاربر باید یک عدد را وارد کرده و سپس یک یا چندبار کلید space را بزند تا چند کاراکتر جای خالی(white space) ایجاد شود (یعنی بین اعداد فاصله بیفتد)، آنگاه عدد دیگر را وارد کرده و کلید Enter را بزند. حتی کاربر میتواند بین وارد کردن دوعدد، فقط کلید Enter را بزند(بجای space). سپس برنامه پیغامی میدهد و اعداد دریافت شده را چاپ میکند. دستور بعد اندازه یک int را برحسب تعداد بایت چاپ میکند. دستور بعد در دو سطر چاپ میشود، با اینکه از endl استفاده نکرده ایم. این عمل با استفاده از 'n\' در پیغام، انجام شده است. اما در ++C کاراکترهایی که بعد از \ در یک رشته کاراکتری(یعنی همان پیغام) می آیند، معنای خاصی میدهند. تمام اینها یک کاراکتر تنها هستند، مثلاً 'n\' یک کاراکتر است، بهمین خاطر میتوانیم آنرا در دوتا ' بگذاریم(چرا که اگر رشته کاراکتری بود باید در دوتا " میگذاشتیم). یعنی در هر جای یک رشته(یعنی همان رشته کاراکتری) که تایپ کنید n\ بعد از چاپ شدن یک سطر جدید تولید خواهد کرد. حتی میتوانید به تنهایی به جای endl بنویسید 'n\' و بعد از اجرای برنامه یک خط جدید در خروجی خواهید داشت.
    غیر از 'n\' کاراکترهای ویژه دیگری هم داریم که در زیر آورده شده اند و استفاده آنها درست مانند 'n\' میباشد. در این کاربرد، به کاراکتر \ میگویند escape character و به این کاراکترهای ویژه escape sequence میگویند.

    t\ : مکان نما را به اندازه یک تب جلو میبرد(یعنی مانند آنکه یکبار دکمه تب در کامپیوتر کاربر زده شود).
    r\ : مکان نما را به ابتدای سطر فعلی میبرد. به این عمل carriage return گویند.
    a\ : بوق(alert) سیستم را بصدا درمی آورد.
    \\ : یک کاراکتر \ را چاپ میکند.
    '\ : یک کاراکتر ' را چاپ میکند (البته برای ' نیازی به \ نیست).
    "\ : یک کاراکتر " را چاپ میکند.
    b\ : آخرین کاراکتر را از خروجی حذف میکند(معادل backspace).

    هرکدام از اینها را در چاپ یک رشته امتحان کنید.

    </b>

  9. #9
    مدیر بازنشسته
    تاریخ عضویت
    2010/01/09
    محل سکونت
    *گیلان-املش*
    سن
    31
    نوشته ها
    5,954

    پیش فرض

    <b>
    آرایه ها
    وقتی نیاز به چندین متغیر با یک نوع و مرتبط به یک موضوع دارید، از آرایه استفاده کنید. یک آرایه فقط مجموعه ای از متغیرهای همنوع است، مثلاً آرایه ای از int ها:
    ;[int iarray[5 یک آرایه با ظرفیت 5 عدد صحیح با نام iarray ادعا میکند. مثلاً میتوانید نمره های 5 دانش آموز را بجای نگهداری در پنج متغیر جداگانه، در عناصر این آرایه نگهدارید. برای مقدار دهی به یک عنصر آرایه: ;23 = [iarray[0 به عنصر اول آرایه مقدار 23 رامیدهد. همچنین برای دسترسی به مقدار عنصر اول از [iarray[0 استفاده کنید. اندیس(عدد درون کروشه ها) عناصر آرایه از صفر شروع میشود تا یکی کمتر از تعداد عناصر آرایه، پس آخرین عنصر با [iarray[4 در دسترس قرار میگیرد. آرایه iarray فقط یک بعد دارد، اما میتوان آرایه هایی با ابعاد بیشتر هم داشت. اگر آرایه یک بعدی را مجموعه ای از جعبه ها در نظر بگیرید، آرایه دو بعدی میشود جعبه هایی که درون آنها جعبه های دیگری وجود دارد. یک آرایه دو بعدی: ;[4][int iarray2[3 یک آرایه را تعریف میکند که بعد اول آن اندازه 3 و بعد دوم آن اندازه 2 دارد. یعنی 3 جعبه که در هر کدام 2 جعبه دیگر قرار دارد.
    آرایه سه بعدی ;[2][5][int iarray3[4 اندازه بعد سوم آن 2 است.

    به شکل زیر توجه کنید، تا تصویر بهتری از آرایه ها داشته باشید:

    نمایش تصویری آرایه ها


    میتوان گفت، آرایه یک بعدی مجموعه ای از متغیرهای ساده، آرایه دو بعدی مجموعه ای از آرایه های یک بعدی، آرایه سه بعدی مجموعه ای از آرایه های دوبعدی است. آرایه های با اندیس های بالاتر بندرت استفاده میشوند.

    مقداردهی اولیه به آرایه ها
    برای آرایه یک بعدی: ;{1,2} = [int ar[2 به عنصر اول مقدار 1 و به دوم 2 میدهد. برای آرایه دو بعدی: ;{{3,4},{1,2}} = [2][int ar[2 ، آکولاد بازوبسته درونی اول برای سطر اول و دومی برای سطر دوم است (البته آکولادهای درونی اختیاری هستند، اما برای خوانایی بیشتر بهتر است بگذارید) یعنی {1,2} به سطر اول مقدار میدهد، طوریکه به ستون اول مقدار 1 و به ستون دوم مقدار 2 میدهد.
    برای آرایه سه بعدی: ;{ {{7,8},{5,6}} , {{3,4},{1,2}} } = [2][2][int ar[2 قسمت {{3,4},{1,2}} به سطر اول مقدارمیدهد، طوریکه {1,2} به ستون اول آن مقدار میدهد، طوریکه 1 برای عمق اول آن و 2 برای عمق دوم قرار میگیرد. مثلاً [ar[1][0][1 مقدار 6 را میدهد، چراکه در سطر دوم({{7,8},{5,6}}) در ستون اول({5,6}) مقدار عمق دوم را برمیگرداند. اگر عمق اول را مشخص کرده بودیم([ar[1][0][0) پنج میداد، یا اگر سطر اول را مشخص کرده بودیم ([ar[0][0][1) دو میداد. البته مقدار اولیه دهی به آرایه های سه بعدی کمتر پیش می آید.
    اگر در مقدار دهی اولیه آرایه، به یک عنصر از آن مقدار ندهید کامپایلر به آن مقدار صفر میدهد، مثلاً در ;{{1,2}} = [2][int ar[2 هر دو ستون سطر دوم مقدار صفر میگیرند. اگر میخواهید به تمام مقادیر آرایه مقدار صفر دهید، آرایه را هنگام تعریف برابر {} قرار دهید، مثلاً بنویسید : ;{} = [2][2][int ar[2

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

    نکته: در مقدار دهی اولیه به یک آرایه میتوانید اندازه بعد اول را مشخص نکنید و کامپایلر خود با توجه به تعداد مقادیر اولیه ای که فراهم آورده اید اندازه آنرا تعیین میکند. اما اندازه سایر ابعاد را همیشه باید مشخص کنید. مثلاً: ;{{int ar[][2] = {{1,2},{3,4

    تعیین تعداد عناصر یک آرایه
    اگر مثلاً [int ar[2][3 را داشته باشیم، عبارت (sizeof(ar مقدار 24 را میدهد که اندازه کل آرایه است، چراکه 2x3 یا 6 تا عنصر از نوع int دارد، و چون هر int چهار بایت میگیرد، پس 6x4 یا 24 بایت کل آرایه میگیرد. پس ما اندازه کل آرایه را داریم و اندازه هر عنصر میشود (sizeof(int چراکه نوع هر عنصر int است، در نهایت (sizeof(ar) / sizeof(int اندازه کل آرایه را به اندازه هر عنصر آن تقسیم میکند و تعداد عناصر آرایه را میدهد (/ عمل تقسیم را انجام میدهد).

    مثالی برای استفاده از آرایه ها


    کد:
    #include <iostream>
    using namespace std;

    int main()
    {
    int ar[2][3] = {1};

    cout << "Enter a number : ";
    cin >> ar[1][2];
    cout << "Your number is : " << ar[1][2] << endl;

    cout << "\n\nElement in first row and first column of the array is : " << ar[0][0]
    << "\nand for the second column : " << ar[0][1];

    cout << "\n\nNumber of elements in the array is : " << sizeof(ar) / sizeof(int) << endl;

    system("pause");
    return 0;
    }
    خروجی


    تحلیل
    برنامه ابتدا عددی را از کاربر در عنصر[2] [1] از آرایه ar میگیرد (یعنی در عنصر سطر دوم-ستون سوم از آرایه مقدار دریافتی از کاربر قرار میگیرد)، سپس آنرا چاپ میکند. سپس عناصر [0][0] و [1][0] را نمایش میدهد که اولی مقدار 1 دارد چون مقداردهی اولیه شده، و دومی مقدار 0 چون مقداردهی اولیه نشده. در آخر نیز تعداد عناصر آرایه نمایش داده میشود.
    </b>

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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