نمایش نتایج 1 تا 13 از 13

نام تاپیک: آموزش زبانC++‎ (برای آشنایان با C )

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Cool آموزش زبانC++‎ (برای آشنایان با C )

    سلام بر همه دوستان و کاربران
    در این تاپیک قصد دارم که زبان برنامه نویسی C++‎ رو برای افرادی که با زبان برنامه نویسی c آشنایی دارند آموزش بدم
    این آموزش در واقع بیشتر برای دانشجوییانی است که در یک ترم زبان C را فرا گرفته و می خواهند با زبان C++‎ نیز آشنا و برنامه بنویسند, ولی کلیه افرادی که با زبان c آنایی دارن و برنامه نوشتند
    نیز امید وارم مفید واقع شود.
    از اساتید و بزرگان خواهش دارم اگر در بخشی این بنده دچار اشتباه شدم به بنده اطلاع بدن (در پروفایلم تو این سایت).
    از مدیران هم تقاضا دارم به این موضوع توجه نشون بدن .چون واقعا خیلی بدهکه سایت برنامه نویسی باشه یه تاپیک ثابت و مهم برای آموزش برنامه نویسی تو هیچ کدوم از بخش هاش نباشه و کسی همه بر روش مدیریت نکنه و همه ی تاپیک ها بی سرپرست باشند و...
    امید وارم این آموزش برای جامعه برنامه نویسی مفید باشه.

  2. #2

    Cool نقل قول: آموزش زبانC++‎‎‎‎ (برای آشنایان با C )

    جلسه اول :
    اشاره گر:
    بخشی از حافظه که فقط آدرسی دارد.(آدرس ها 16 بیتی هستند=2بایت )

    نحوه تعریف اشاره گر:
    ; نام اشاره گر* نوع اشاره گر
    مثال:
    int *p;

    در مثال بالا ما یک اشاره گر از نوع صحیح (اینتیجر)ساختیم

    انواع حالاتی که اشاره گر در یک برنامه دارد:
    p*
    محتوای جایی که اشاره گر به آن اشاره میکند.
    p&
    آدر س خانه ای از حافظه که اشاره گر در آن قرار دارد.
    p
    محتوای اشاره گر(توش آدرس هست )

    مثال:
    خروجی قطعه کد زیر چیست ؟
    }()main
    در این قسمت ما یک متغییر از نوع اینت میسازیم و مقدار 7 را توش میریزیم int i=7;
    در این قسمت یک اشاره گر از نوع اینت میسازیم int *p;
    در این بخش هم آدرس خونه یi رو در اشاره گر p میریز ه p=&i;
    cout<<i<<*p;
    مقدار i رو نمایش بده و نیز دراین قسمت هم میگیم محتوای جایی که اشاره گر به اون اشاره میکند را نمایش بده باp*(از اونجایی که آدرس خونه i در اشاره گر p قرار دارد پس اشاره گر p به خونه i اشاره میکند و محتوای خونه i نیز همان 7 یعنی مقداری است که در i ریخته شده)
    خروجی:
    7 7
    که اولی برای i ودومی برای p*
    در اشاره گر ها زمانی که با p* کار میکنید بدانید که این یعنی همان متغییری که آدرسش را وارد این میکنید

    مثلا در مثال بالا p* یعنی همون i و هر کاری و هر اتفاقی که روی p* بیفتد روی i نیز می افتد که از این امکان می توان

    برای استفاده یک متغییر در توابع مختلف و برگرداندن مقدار های مختلف توسط یک تابع و...استفاده کرد(تنها فرقی که

    این p* و i با هم دارند در این می تواند باشد که خانه هر دو با هم متفاوت هست مثالا p در خانه 100 و i ممکن است در

    خانه 70 قرار داشته باشد که در بالا اگر به جای *(در بخش cout) علامت&بود یعنی آدرس خانه ای از حافظه که در اشاره

    گر p قرار دارد رو نشون بده ,که آدرس خونه i تو p وجود داره پس p& در بخش cout آدرس خونهiرو که مثال زدیم 70 رو

    چاپ میکنه , دقت کنید در i مقدار 7 و لی در p آدرس خونه i قرار دارد که با قرار گرفتن * در پشت p به صورت p* محتوای iمورد بررسی قرار میگیرد)
    آخرین ویرایش به وسیله friendchp : یک شنبه 06 تیر 1389 در 07:14 صبح

  3. #3
    کاربر تازه وارد آواتار sadegh-hut
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    شهركرد
    پست
    46

    Smile نقل قول: آموزش زبانC++‎‎ (برای آشنایان با C )

    نقل قول نوشته شده توسط friendchp مشاهده تاپیک
    سلام بر همه دوستان و کاربران
    در این تاپیک قصد دارم که زبان برنامه نویسی C++‎‎ رو برای افرادی که با زبان برنامه نویسی c آشنایی دارند آموزش بدم
    این آموزش در واقع بیشتر برای دانشجوییانی است که در یک ترم زبان C را فرا گرفته و می خواهند با زبان C++‎‎ نیز آشنا و برنامه بنویسند.

    اتفاقا منم مي خواستم اين بحث رو شروع كنم البته به عنوان كسي كه مي خواد ياد بگيره نه كسي كه بخواد ياد بده !
    چون منم ‍C رو خوندم و مي خوام ++ ‍C ياد بگيرم .حالا داري از اولش ميگي ديگه ؟؟ آره؟؟؟

    ممنون!

  4. #4

    Cool نقل قول: آموزش زبانC++‎‎ (برای آشنایان با C )

    // حاشیه ها{
    سلام دوست عزیز وممنون بابت حمایتتون
    بنده فرض رو بر این گرفتم که شما ها در c توابع و آریه ها و رو خونده باشید
    وبنده از اشاره گر شروع کردم
    درضمن با این آموزش شما هیچ وقت نمی تونید بشید یه برنامه نویس حر فه ای(این کار فقط با یاد گیری کامل و جامع و تجربه در امر نوشتن برنامه ها ی مختلف از کوچک به بزرگ در طی چند سال محقق می شود)
    ولی برای درک بهتر زودتر مفاهیم C++‎ و یاد گیری و نوشتن برنامه ها به زبان شیرین C++‎
    امید وارم مفید واقع شود.}

  5. #5

    Cool نقل قول: آموزش زبانC++‎‎ (برای آشنایان با C )

    جلسه دوم:
    ادامه اشاره گر:

    خروجی قطعه کد زیر چیست؟
    main(){
    1. int i=6,j=9;
    2. int *p,*q;
    3. p=&i;
    4. q=&j;
    5. i++;
    6. cout<<i<<j<<*p<<*q<<endl;
    7. *p=*q+1;
    8. cout<<i<<j<<*p<<*q<<endl;
    9. p=q;
    10. cout<<i<<j<<*p<<*q<<endl;


    خروجی:
    9 7 9 7
    9 10 9 10
    9 9 9 10


    در خط اول دومتغییر از نوع اینتیجر(صحیح) تعریف کرد و دو مقدار 6 و 9 رو به ترتیب در i, j ریخته است و سپس در خط دوم

    دو اشاره گر از نوع اینتیجر ساخت
    در خط سوم آدرس خانه i را در اشاره گر p قرار می دهد و در خط چهارم آدرس j را در q میریزد
    در خط پنجم مقدار موجود در خانه i رو یک مقدار افزایش می دهدیعنی مقدارش از 6 به هفت افزایش میابد
    در خط ششم نیز مقادیر را چا پ میکند:
    i که همون مقدارش یعنی 7چاپ میشه ,j هم همینطور9 , در بخش بعدی p* اومده پس اشاره میکنه به محتوای آدرسی که در خود p وجود داره و اون محتوا یعنی مقدار 7 که در i هست رو نشون میده یعنی7 چون آدرس i در p قرار دارد وp* به محتوای خونه i اشاره میکنه
    در q* نیز به همین صورت حالا برایj یعنی مقدار 9


    در خط هفتم: گفتیم که p* یعنی همون متغییری که آدرسشو توش ریختیم پس در اینجا یعنی i -> پس در اینجا داریم =i و q* هم مثل بالا یعنی j در نتیجه یعنی i=j+1 در نتیجه مقدار i برابر می شود با مقدار j+1 که یعنی 10
    در خط هشتم نمایش میدهد 9 10 9 10

    در خط نهم هم خود p رو برابر با q قرار می دهد و از اونجایی که ما در بالا آدرس j رو در اشاره گر ً q قرار دادیم پس الان مقدار موجود در q همون ادرس خونه j هست که در این خط این ادرس به درون p ریخته میشه در نتیجه هر دو اشاره گر دارای یک آدرس در خودشون و یعنی به یک ادرس یعنی همون آدرس خونه q اشاره میکنند.
    در خط دهم هم مقدار 10 برای i مقدار 9 برای j و مقدار 9 برای p* و مقدار9 برای q* چاپ میشود



  6. #6

    Cool نقل قول: آموزش زبانC++‎‎ (برای آشنایان با C )

    جلسه سوم:
    نکته:
    اشاره گر فرقی نمی کند از چه نوعی باشد, چون فقط آدرس می گیرد همیشه 2بایتی هست.
    اما وقتی که می خواهیم دوتا اشاره گر یکی از نوع اینت و دیگری از نوع فلوت رابرابر هم قرار دهیم (مثلا pاینت و q فلوت وبنویسم)p=q , خوب گفتیم که ادرس همیشه دوبایتی هست و طبق این موضوع این عبارت باید درست باشد و درست عمل کند , اما در واقع این عمل نادرست است چون :
    1. دو متغییر اشاره گر از دو نوع مختلف هستند
    2.اگر هم کامپایلر اشکالی ایجاد نمی کرد یعنی ارور نمی داد باز هم در برنامه مشکلات منطقی پیش میومد .(مثلا فرض کنید q++ شود آنگاه آدرسی که در q وجود داشت به اندازه 4بایت به جلو میرود, اما اگر p++ شود آدرس مورد نظر 2بایت به جلو میرود )
    این تفاوت بین دو نوع از تعریف اشاره گر می باشد.

  7. #7

    نقل قول: آموزش زبانC++‎‎ (برای آشنایان با C )

    call by refrence(فراخوانی با ارجاع, از طریق اشاره گر):
    زمانی که یک تابع را تعریف میکنیم ممکن است تابع بسته به نوع استفاده اش مقداری برنگرداند یا یک مقدار را برگرداند و یا توسط یک تابع چند مقدار برگردانده شود .
    اما گاهی نیاز به این داریم که در یک تابع چند مقدار تغییر کرده و مورد استفاده در main قرار گیرند,(یعنی وقتی که یک متغییر در یک تابع تعریف میشود در تابع دیگری قابل استفاده نیست مثلا اگر i در main تعریف شود در تابع دیگری قابل استفاده و دستکاری نیست ولی این کار با اشاره گر امکان پذیر خواهد بود.
    به مثال زیر توجه کنید:
    #include <iostream>

    using namespace std;
    1. void test ( int *p,int *q)
    {
    2. cout<<*p<<*q<<endl;
    3. *p=*p+2;
    4. *q=*q-2;
    5. cout<<*p<<*q<<endl;
    }
    int main()
    {
    6. int a,b;
    7. cin>>a>>b;
    8. cout<<a<<b<<endl;
    9. test(&a,&b);
    10. cout<<a<<b<<endl;
    return 0;
    }

    مثلا وارد کردیم به ترتیب 5 برای a و 2برای b
    خروجی:
    5 2
    5 2
    7 0
    7 0
    خوب همونطور که دیدید متغییر های a ,b نیز دچار تغییر شدند ,همونطور که گفته بودیم p* یعنی همون a پس در تابع دیگر نیز ما در واقع همون a رو دستکاری میکردیم
    اما اگر در خط1 متغییر های p q را اشاره گر تعریف نمی کردیم او نوقت خروجی این میشد :
    5 2
    5 2
    7 0
    5 2
    علتشم اینه که اونوقت p q دومتغییر محلی که در تست تعریف شده و دو مقدار در خود دارند که فقط تغییرات بر خودشون اعمال میشه
    اما همونطور که دیدین توسط تابع تست که دو اشاره گر تعریف کردیم توانستیم دو مقدار را دستکاری کرده و و به تابع مین برگردانیم
    به این عمل توسط یه تابع ,فراخوانی با ارجاع میگویند حالا چه بخواد یه متغییر باشه چه 100تا
    که برای یک تابع بدون اشاره گر حداکثر یک مقدار ولی برای یک تابع با با وجود اشاره گر می توان هر میزان که نیاز داشته باشیم مقدار برگردونیم به تابع مین(مقدار برگردوندن هم یعنی اینکه مثلا در مثال بالا متغییر اشاره گر p دارای یک مقدار نهایی در تابع تست شده است و می خواهیم این مقدار به یک متغییر موجود در مین مثل A ریخته شود که اینکار در تابع تست توسط همین اشاره گر انجام شده است )
    آخرین ویرایش به وسیله friendchp : یک شنبه 06 تیر 1389 در 08:36 صبح

قوانین ایجاد تاپیک در تالار

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