دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
صفحه 1 از 4 1234 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 35

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

  1. #1
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

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

    آموزش برنامه نویسی با ++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 انجام دهید و سپس مراحل ذکر شده را دنبال کنید
    uody

  2. 5 کاربر از پست مفید uody سپاس کرده اند .


  3. #2
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش برنامه نویسی با ++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 را کلیک کنید.

    اضافه کردن فایل منبع جدید به پروژه
    uody

  4. کاربرانی که از پست مفید uody سپاس کرده اند.


  5. #3
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش برنامه نویسی با ++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 میباشد(البته این نکته استفاده ای ندارد!).
    uody

  6. 2 کاربر از پست مفید uody سپاس کرده اند .


  7. #4
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش برنامه نویسی با ++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 است (یک تابع مجموعه ای از دستورات است که اعمالی را انجام میدهد).

    کد قالب بندی شده:


    **

    return 0;
    **

    int main()

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

  8. 2 کاربر از پست مفید uody سپاس کرده اند .


  9. #5
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش برنامه نویسی با ++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.تعریف شده توسط برنامه نویس.


    قواعد تعریف شناسه ها






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

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

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

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

    1.کلمات کلیدی به رنگ آبی نمایش داده میشوند و از قبل در زبان تعریف شده اند و عملکرد خاص خود را دارند. مثلاً int یک کلمه کلیدی است که متغیری از نوع عدد صحیح را تعریف میکند. 2. شناسه هایی که برنامه نویس تعریف میکند، مثل: نام متغیرها، نام توابع و کلاس ها(بعداً توضیح داده خواهند شد) و... . 1. کلمات کلیدی را دوباره نمیتوان تعریف کرد. بنابراین شناسه های کاربر نمیتوانند هم نام با کلمات کلیدی باشند. مثلاً نمیتوان متغیری با نام int تعریف کرد. 2. شناسه ها باید با یک حرف یا یک زیرخط(_) شروع شوند، کاراکترهای بعدی میتواند یک حرف یا عدد یا زیرخط باشد. مثلاً این شناسه ها درستند: number و num_ber1_ و 123__ و حتی خود زیرخط بتنهایی. اما اینها نادرستند: 1number و 123 و 1_2. 3. حروف بزرگ و کوچک در تعریف شناسه تأثیر دارد. یعنی مثلاً number با Number متفاوت است. یک قاعده کلی در ++C :
    وجود هر تعداد فاصله یا خط جدید بین عبارات یا قسمت های مجزا از یک عبارت ایرادی ندارد. مثلاً تمام عبارات زیر درستند:

    کد قالب بندی شده:


    int a , b;
    int a,
    b;

    int a,b;
    حتی مورد آخر در تعریف چند متغیر از یک نوع میتواند خوانایی برنامه را بالا برد.
    uody

  10. 2 کاربر از پست مفید uody سپاس کرده اند .


  11. #6
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش برنامه نویسی با ++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 برنمی گرداند.
    uody

  12. 2 کاربر از پست مفید uody سپاس کرده اند .


  13. #7
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

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

    دستورات 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;
    **

    خروجی:

    CMD_Window.jpg (اندازه: 17.4 KB / دانلودها: 176)

    تحلیل:
    توضیحات (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).
    uody

  14. 2 کاربر از پست مفید uody سپاس کرده اند .


  15. #8
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

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

    آرایه ها
    وقتی نیاز به چندین متغیر با یک نوع و مرتبط به یک موضوع دارید، از آرایه استفاده کنید. یک آرایه فقط مجموعه ای از متغیرهای همنوع است، مثلاً آرایه ای از 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 چون مقداردهی اولیه نشده. در آخر نیز تعداد عناصر آرایه نمایش داده میشود.
    __________________
    uody

  16. 2 کاربر از پست مفید uody سپاس کرده اند .


  17. #9
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

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

    رشته های کاراکتری
    یک مجموعه از کاراکترها را یک رشته کاراکتری(یا بطور خلاصه 'رشته' یا string) میگویند. مثلاً "This is a string" یک نمونه از رشته هاست. یک ثابت رشته ای همیشه در دوتا " قرارمیگیرد. اما ما دونوع رشته داریم: 1.مجموعه ای از char ها(که به رشته های سبک C-style) C) (منظور زبان C است) هم معروف اند) 2.از نوع کلاس string

    رشته های سبک C
    رشته های اصلی ++C هستند. برای این به فرمت C مشهورند که قبل از ++C در C وجود داشتند. این رشته ها در اصل آرایه ای از کاراکترها هستند. مثلاً رشته "char str[7] = "String ، که از 6 کاراکتر بعلاوه کاراکتر پایان رشته(که خود کامپایلر اضافه میکند) تشکیل شده و در هنگام تعریف مقدار اولیه گرفته است.

    کاراکتر پایان رشته که به آن کاراکتر پوچ پایان دهنده (terminating null character) هم میگویند، در اصل یک کاراکتر است که وقتی چاپ شود یک فاصله چاپ خواهد شد(البته کاراکتر فاصله چیز دیگری است و کد اسکی آن 32 است)، و نام اصلی آن کاراکتر پوچ (null) است که در اینجا برای مشخص کردن پایان یک رشته از آن استفاده میشود. کد اسکی آن 0 است و بصورت کاراکتری '0\' نوشته میشود، بنابراین از کاراکتر '0' که کداسکی 48 دارد و یک 0 چاپ میشود متمایز میگردد. پس هر جایی که این کاراکتر در یک رشته قرار گیرد پایان آنرا مشخص میکند(حتی اگر بعد از آن کاراکترهای دیگری قرار داشته باشند) و در اعمال مختلفی که روی رشته انجام میشود معیار پایان آن قرار میگیرد. مثلاً وقتی یک رشته را با دستور cout << str چاپ کنید، فقط تا قبل از کاراکتر پوچی که در رشته قرار دارد چاپ میشود.

    هر ثابت رشته ای که در بین دوتا " قرار میگیرد شامل یک '0\' هم در پایان خود هست، هرچند که شما چنین چیزی را مشخص نمیکنید، بنابراین وقتی با دستور "char str[7] = "String یک رشته را تعریف میکنید، کاراکتر هفتم آن '0\' قرار میگیرد (و مثلاً کاراکتر ششم g هست).
    روش دیگر برای مقدار دهی یک آرایه کاراکتری(که در اصل نمایشگر یک رشته است) استفاده از مقداردهی هر کاراکتر بطور جداگانه است، مثلاً **'0\','char str[7] = **'S','t','r','i','n','g که همان String را نمایش میدهد، اما چون خودمان هر کاراکتر را مشخص کرده ایم، باید '0\' را هم مشخص کنیم.

    برای مقدار دهی اولیه تهی('0\') به تمام اعضای یک آرایه کاراکتری میتوانید از عبارت **'char str[7] = **'\0 استفاده کنید، یا اینکه بجای '0\' بگذارید 0 چراکه همانطور که میدانید میتوان بجای نوشتن یک کاراکتر بین دوتا ' کد اسکی آنرا نوشت.

    برای دریافت یک رشته از کاربر، اگر مثلاً [char str[7 را تعریف کرده باشیم، دستور cin >> str یک رشته را از کاربر دریافت میکند. البته باید تعداد کاراکترهای رشته ای که کاربر وارد میکند از طول آرایه کاراکتری ما کمتر باشد، یعنی برای str فقط 6 کاراکتر را از کاربر میتوان دریافت کرد(چرا که کاراکتر آخر را برای '0\' نگه میداریم و دستور cin بعد از دریافت رشته از سوی کاربر هفتمین کاراکتر را '0\' خواهد گذاشت). البته کاربر میتواند کمتر از 6 کاراکتر هم وارد کند، مثلاً اگر 3 تا وارد کند، کاراکتر چهارم مقدار '0\' خواهد گرفت و کاراکترهای پنجم تا هفتم تغییری نخواهند کرد.

    اما اگر میخواهید با این مشکل مواجه نشوید که کاربر تعداد بیشتری کاراکتر وارد کند و برنامه شما هنگ کند، از دستور ;('cin.getline(str,4,'y استفاده کنید، که با استفاده از تابع getline یک ورودی به طول 4(با حساب کردن '0\') را از کاربر میگیرد و در str قرار میدهد، اگر زودتر از آن به کاراکتر y برسد، تا قبل از آن را در str قرار میدهد (در اصل y در اینجا حائل(delimiter) است). هریک از str و 4 و y یک آرگومان تابع getline هستند که شما میتوانید بجای آنها هرچیز دیگری از همان نوع بگذارید. اما مقداری که برای آرگومان دوم(4) در نظر میگیرید، باید با حساب کردن '0\' حداکثر برابر طول آرایه ای که در آرگومان اول مشخص میکنید باشد. یعنی اگر طول آرایه شما 7 هست، حداکثر 7 را میتوانید برای آرگومان دوم در نظر بگیرید و getline شش کاراکتر را از ورودی گرفته و در str قرار میدهد و کاراکتر هفتم را '0\' میگذارد.چنانچه کاربر کاراکتر های بیشتری وارد کند، اگر بعداً دستورات ورودی بیشتری در برنامه داشته باشیم، این کاراکترها را دریافت خواهند کرد، یعنی هیچ وقت ورودی های کاربر از بین نمیروند و در بافر ورودی قرارمیگیرند تا اینکه با یک دستور ورودی خوانده شوند یا با دستوری دیگر یا رسیدن به انتهای برنامه حذف شوند.


    یکی از مزیت های getline به cin در دریافت رشته ها: getline رشته ای که بین آن فاصله وجود دارد را هم یکجا میگیرد، اما cin همیشه تاجایی که کاربر یک کاراکتر فاصله وارد کرده است میخواند. بنابراین getline میتواند کل 34 12 را با یک دستور بخواند، اما cin در هر بار فقط یک قسمت را میخواند، اول 12 وبعد 34 را دریافت میکند.

    توجه: 'توابع مفید برای کار برروی رشته ها' و 'رشته های نوع string' بعد از توضیح توابع در قسمت های بعدی آورده خواهند شد. getline یک نمونه دو پارامتری هم دارد، مثلاً مثال قبل را میتوانید اینگونه بنویسید: (cin.getline(str,4 با این دستور کاراکترها تا جایی از کاربر دریافت میشوند که کلید Enter زده شده باشد یا اینکه به حد 3 کاراکتر رسیده باشند(این نمونه از دستور مشابه ('cin.getline(str,4,'\n هست، چراکه فشاردادن کلید Enter مقدار 'n\' را تولید میکند). این شکل از دستور برای زمانی مناسب است که یک حداکثری برای اندازه ورودی کاربر در نظر گرفته ایم اما حداقلی در نظر نداریم.
    uody

  18. 2 کاربر از پست مفید uody سپاس کرده اند .


  19. #10
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

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

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

    به مقادیر یا متغیرهایی که عملگر بین یا قبل و بعد از آنها قرار میگیرد و عملی را با آنها انجام میدهد، عملوند میگویند. مثلاً در 4 + 5 اعداد 5 و 4 عملوندهای عملگر جمع هستند، پس عملگر جمع دو عملوند دارد(میگیرد).

    به عملگرهایی که فقط یک عملوند دارند یگانی(unary) میگویند. مثلاً عملگر جمعی که یک عملگر بگیرد هم داریم، که در اصل استفاده ای ندارد، چراکه مثلاً 2+ و 2 یکی هستند(اما عملگر یگانی منفی کاربرد برگرداندن مقدار منفی را دارد). عملگرهایی که دو عملوند میگیرند را دوتایی(binary) میگویند، مثل عملوند تفریق(-). عملوندهایی که سه تا عملوند میگیرند را سه تایی(ternary) میگویند، مثل عملگر انتخاب(:?). بعداً خواهید دید که رفتار عملگرها را میتوانید تغییر دهید.

    عملگرهای حسابی
    جمع : + ، تفریق(منفی) : - ، ضرب : * ، تقسیم : / ، باقیمانده : %

    عملگر منفی یک عملوند میگیرد و منفی آنرا برمیگرداند، مثلاً 2- عدد 2 را منفی میکند.

    عملگر / خارج قسمت تقسیم عملوند چپ به راستش را میدهد. اما میگوییم 'تقسیم صحیح' چراکه بعد از تقسیم دو عدد ممکن است باقیمانده ای ایجاد شود، میدانید که اگر تقسیم را ادامه دهیم باید در خارج قسمت ممیز قرار دهیم و جلو رویم، در آخر دیگر خارج قسمت یک عدد 'صحیح' نخواهد بود(اعشاری میشود). مثلاً خارج قسمت تقسیم 7 بر 2 ، 3.5 میشود، اما اگر خارج قسمت را صحیح در نظر بگیریم(یعنی قسمت اعشاری را در نظر نگیریم) میشود 3. در ++C هم عملگر تقسیم خارج قسمت را بصورت یک عدد صحیح میدهد، در نتیجه حاصل 7/2 میشود 3.

    عملگر % باقیمانده تقسیم عملوند سمت چپ بر راستش را میدهد، مثلاً حاصل 2%7 میشود 1 چون باقیمانده تقسیم 7 بر 2 یک میشود.

    اولویت عملگرها (Operator Precedence)
    وقتی عبارتی شامل چندین عملگر را مینویسید، هر عملگر کی محاسبه میشود؟ مثال مشهور ریاضی آن 4*3+2 است، که اگر اول 2 با 3 جمع شود(5) و بعد در 4 ضرب شود، حاصل 20 میشود، اما اگر اول 3 در 4 ضرب(12) و بعد با 2 جمع شود، حاصل 14 میشود، و 20 با 14 مساوی نیست! بنابراین اینکه حاصل کدام عملگر ابتدا محاسبه شود شاید در نتیجه عبارت تأثیرگذار باشد. پس در برنامه نویسی(مثل ریاضی) عملگرها اولویت گذاری شده اند. بنابراین مثلاً عملگر ضرب زودتر از جمع محاسبه میشود.

    اولویت عملگرهای حسابی
    هر دسته که در یک آکولاد قرار دارند اولویت یکسان دارند و از راست به چپ اولویت کم میشود:
    {منفی و مثبت یگانی** {ضرب و تقسیم و باقیمانده** {جمع و تفریق**

    شرکت پذیری عملگرها (Operator Associativity)
    اگر در یک عبارت چندین عملگر که اولویت یکسان دارند داشته باشیم(مثلاً چندین جمع و تفریق)، حالا هرکدام کی محاسبه میشوند؟ اینجا شرکت پذیری مهم میشود. شرکت پذیری دو حالت دارد : راست به چپ و چپ به راست. مثلاً + چپ به راست شرکت پذیر است. یعنی اینکه ابتدا چپ ترین جمع حساب میشود، سپس سمت راست آن و بترتیب تا راست ترین جمع. مثلاً در 4+3+2 ابتدا 2 با 3 جمع میشود و حاصل با 4 جمع میشود. البته دراینجا شرکت پذیری در نتیجه تأثیری نمیگذارد، اما در برخی عبارات حاصل را تغییر میدهد.

    شرکت پذیری عملگرهای حسابی
    چپ به راست: ضرب ، تقسیم ، باقیمانده ، جمع ، تفریق
    راست به چپ: منفی و مثبت یگانی

    در ++C اولویت و شرکت پذیری عملگرها مشخص شده است. میتوانید آنها را در قسمت Operator Precedence and Associativity از MSDN مشاهده کنید.

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

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

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

  20. 3 کاربر از پست مفید uody سپاس کرده اند .


صفحه 1 از 4 1234 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 1
    آخرين نوشته: 21st April 2012, 01:05 AM
  2. خبر: طوفان برلینی؛ گزارش نمایشگاه ifa 2010
    توسط Bad Sector در انجمن معرفی سایتها و وبلاگها
    پاسخ ها: 0
    آخرين نوشته: 2nd February 2011, 02:47 PM
  3. مقاله: بهسازی منابع انسانی در سازمانهای تحقیقاتی از طریق گردش شغلی
    توسط MR_Jentelman در انجمن مجموعه مدیریت اجرایی
    پاسخ ها: 0
    آخرين نوشته: 15th October 2010, 01:47 AM
  4. مطالعــه تطبیقی مدلهال برنامه ریزی استراتژیک
    توسط ریپورتر در انجمن مجموعه مدیریت اجرایی
    پاسخ ها: 0
    آخرين نوشته: 30th September 2010, 10:36 AM
  5. مقدمه ای بر زبان c
    توسط آبجی در انجمن برنامه نویسی تحت سیستم عامل
    پاسخ ها: 0
    آخرين نوشته: 24th June 2010, 02:32 PM

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

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

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