تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 10 اولاول 123456 ... آخرآخر
نمايش نتايج 11 به 20 از 96

نام تاپيک: آموزش ++C

  1. #11
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2006
    پست ها
    68

    پيش فرض

    توضيحاتت خوبه اما خيلي از اينور به اونور مي پري، ترتيبي تو آموزشت نداري يهو رفتي كلاس درس ميدي در حلي كه قبلش كلي مطالب بايد ميگفتي

  2. این کاربر از Peyman2003 بخاطر این مطلب مفید تشکر کرده است


  3. #12
    اگه نباشه جاش خالی می مونه IP007's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Esfahan
    پست ها
    482

    پيش فرض

    توضيحاتت خوبه اما خيلي از اينور به اونور مي پري، ترتيبي تو آموزشت نداري يهو رفتي كلاس درس ميدي در حلي كه قبلش كلي مطالب بايد ميگفتي
    برعکس خیلی هم خوب پیش میره، اگر با شی گرایی شروع کنیم خیلی به نفعمون میشه چون بعدا به هر چیزی به شکل یه آبجکت نگاه میکنی و ...(معلوماتم ته کشید)

  4. این کاربر از IP007 بخاطر این مطلب مفید تشکر کرده است


  5. #13
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2006
    پست ها
    68

    پيش فرض

    برعکس خیلی هم خوب پیش میره، اگر با شی گرایی شروع کنیم خیلی به نفعمون میشه چون بعدا به هر چیزی به شکل یه آبجکت نگاه میکنی و ...(معلوماتم ته کشید)
    من نميگم بد توضيح ميدن خيلي خوبه اما يهو پريدن به جايي واسه كسي كه هيچي نميدونه كمي عجيب ميشه! منم خودم يه زماني...
    به نظرم پله ها رو بالا پايين رفتن

  6. این کاربر از Peyman2003 بخاطر این مطلب مفید تشکر کرده است


  7. #14
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2006
    پست ها
    68

    پيش فرض

    من اگه خدا عمري بده از 5 شنبه به ايشون كمك ميكنم و كلاس رو كاملا توضيح ميدم اگه حالم خوش بودش آخه 5 شنبه كنكور كارشناسي دارم و فكر نمي كنم قبول بشم

  8. این کاربر از Peyman2003 بخاطر این مطلب مفید تشکر کرده است


  9. #15
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    سلام .
    ممنون از اظهارنظرهايي که کردين .

    در مورد آرايه ها و اشاره گرها به طور مختصر توضيح مي دم و يکراست ميرم سراغ شيء گرايي و مطالب باقيمونده به مرور تو اون بحث ها مطرح ميشه .
    آرايه :
    يه آرايه رو ، ساختمان داده اي فرض کنين که تمام اعضاي اون از يک نوع هستن . ( يا همشون int ، يا همشون char و ... )
    مي خوايم يه آرايه ي 5 عضوي تعريف کنيم از نوع int
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اينجا متغير a داراي 5 خانه است که تو هر کدوم ميشه يه متغير از نوع int جاي داد . حالا چجوري به اين خونه ها دسترسي داشته باشيم :
    فرض کنين آرايه مونو تعريف کرديم . مي خوايم مقاديري توي آرايه درج کنيم . اين آرايه در واقع شامل 5 متغير زير است :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    به اون اعدادي که توي دو تا علامت [] قرار مي گيره انديس يا index مي گيم . انديس آرايه از صفر شروع ميشه . به خاطر همين هميشه انديس آخرين خونه ي آرايه يکي کمتر از ظرفيت آرايه است . ( فهميدين که چي شد ؟ )
    دو تا مفهوم معمولا در مورد آرايه مطرح ميشه که خيلي مهمه :
    1 - انديس n ام .
    2 - n امين عضو .

    فرض کنين اين آرايه رو به شکل زير مقدار دهي کرديم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    وقتي ميگيم انديس سوم آرايه a ، يعني عدد 6 .
    وقتي ميگيم سومين عضو يعني عدد 5 .
    ديدين چقدر مهم بود ؟ .
    يه چيز ديگه .
    a يک آرايه است . يعني حاوي آدرس اولين خونش . چون اين آرايه از نوع int هست و int هم چهار خونه حافظه مي گيره پس آدرس خونه بعدي که انديس 1 باشه ميشه آدرس خونه اول + 4 .
    اين نکته خيلي جالبه ها . به غير از آرايه ها هيچ جا نميشه به صراحت گفت که آدرس دو خونه تو حافظه پشت سر هم باشه .

    مقدار دهي اوليه به آرايه ها:
    اگه تو تعريف آرايه که مقدار دهي کردين هيچ ، اگه نکردين تو يه جاي ديگه بايد دونه به دونه مقدار دهي کنين . مثل اون بالا کاري که من کردم .
    حالا فرض کنيم تو تعريف آرايه ميخوايم مقداردهي کنيم . چندين حالت داريم که نمي دونم چند حالته . حالا بگم بعد مي شمرم .
    اول اينکه اگه بخوايم تو تعريف آرايه مقدار دهي کنيم بايد ليست مقادير داخل آکلاد باز و بسته باشه .
    دستور زير رو در نظر بگيرين :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    مي بينين که ما يه آرايه 5 عضوي تعريف کرديم و براي چهار تا عضو مقدار اوليه مشخص کرديم . عضو آخر که مقدار نداره ، مقدار صفر مي گيره .
    حالا يه سوال :
    اگه بخوايم به همه صفر بديم ، چيکار کنيم راحت تره ؟
    .
    .
    .
    آفرين . درسته . دستور زير رو مي نويسيم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    به عضو اول صراحتا مقدار صفر داديم ، بقيه هم که مقدار نگرفتن ، به طور پيش فرض صفر مي گيرن .
    يه حالت هم اينه که اگه آرايه 5 عضوي تعريف کرديم ، 5 تا عدد تو ليست بنويسيم . تو اين هم که حرفي نيست . به طور صريح به همه مقدار داده ميشه .
    حالت سوم اينه که ليست مقدار اوليه بيشتر از طول آرايه ( تعداد اعضاي آرايه ) باشه . در اين حالت Compile Error‌.
    يه حالت هم اينه که :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    تو اين جا مي بينين که تعداد اعضا مشخص نشده . همون طور که احتمالا حدس زدين ، تعداد اعضا ميشه 7 . چون تو ليست مقدار اوليه ، 7 عدد مشخص شده . بنابراين از [ a [ 0 داريم تا [ a [ 6 .
    فکر کنم شد 4 حالت .


    حالا آرايه هاي کاراکتري :
    همون طور که قبلا اشاره شد نوع داده char فقط مي تونه يک کاراکتر يا همون حرف تو خودش داشته باشه . حالا اگه بخوايم چند کاراکتر يا همون به قول ++C ، رشته داشته باشيم مي تونيم آرايه اي از کاراکتر ها رو تعريف کنيم .
    تعريفش که فرقي نمي کنه . فقط نکاتي در مورد مقدار دهي اوليه مي گم .
    به دو روش مي تونيم به آرايه هاي کاراکتري مقدار اوليه بديم .
    روش اول :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    الان کامپايلر اين دستورو به شکل زير پردازش کرده :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    هميشه آخرين عضو يک آرايه کاراکتري 0\ در نظر گرفته ميشه .
    متوجه هستيد که در اينجا تعداد اعضا مشخص نبود. بنابراين تعداد اعضا برابر 11 ميشه .

    يه حالت مقدار دهي هم به شکل زير است :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    يعني کاراکترها رو دونه به دونه بهش ميديم و آخر سر هم حتما بايد کاراکتر 0\ رو ما مشخص کنيم . ولي در حالت اول نياز نبود . اگه بخوايم تعداد اعضاي آرايه رو خودمون مشخص کنيم ، حتما بايد يه جاي اضافي هم براي 0\ در نظر بگيريم . مثلا اگه مي خوايم sin‌ رو داشته باشيم بايد به جاي 3 خانه ، 4 خانه در نظر بگيريم . در غير اين صورت Compile Error‌

    نکته مهم : اگه نمي خوايم تو تعريف آرايه مقداردهي رو انجام بديم ، حتما بايد تعداد اعضا ذکر بشه . مثلا دستور زير = Compile Error .
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    آرايه هاي دو بعدي :
    آرايه هاي اخير که بحث شد همه يک بعدي بودن . مفاهيم آرايه هاي دوبعدي هم تقريبا همينه .
    براي تعريف آرايه دوبعدي 3 در 4 :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اين يعني 4 سطر و 5 ستون . ( چون انديس گذاري آرايه ها از صفر شروع ميشه . )
    دستور زير رو در نظر داشته باشين :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    مقدار دهي فوق به صورت زير پردازش ميشه :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    البته آرايه هاي بيش از دو بعدي هم داريم . مفاهيم همينا هستن . معمولا از آرايه هاي سه بعدي به بعد به ندرت استفاده ميشه .
    اين هم از آرايه ها ...................

  10. 4 کاربر از sin2x=2sinxcosx بخاطر این مطلب مفید تشکر کرده اند


  11. #16
    اگه نباشه جاش خالی می مونه sherlockholmz's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    دنياي قبل از مرگ
    پست ها
    439

    پيش فرض

    جناب آقاي (ويا به احتمال 1% خانم) sin2x=2sinxcosx :
    با سلام
    با تشكر مجدد از جنابعالي، مطمئنا" بسياري از اين مساعي مستفيض مي گردند كه بنده نيز در اين حلقه ام.لذا مستدعيست مراتب باي نحو كان پيگيري و سعايت بدگويان مانع از ادامه تلمذ نگردد .صحت مسير تائيد و روش خلاقانه اتان دريافت نهايه را ميسور مي نمايد.زياده جسارت است.حق يارتان
    دوست كوچكتر شما

  12. 2 کاربر از sherlockholmz بخاطر این مطلب مفید تشکر کرده اند


  13. #17
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Sep 2008
    پست ها
    253

    پيش فرض

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

  14. این کاربر از CppBuilder2006 بخاطر این مطلب مفید تشکر کرده است


  15. #18
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    سلام . باز هم ممنون از دوستان عزيز بابت اظهارنظرهايي که فرمودن .
    در مورد اينور و اونور پريدن : باشه ديگه تکرار نمي شه . ( همون طوري که ديدين تو بحث آرايه ها ديگه اين کارو نکردم . )
    در مورد فهرست هم : چشم براي از اين به بعد فهرست مي ذارم .
    ولي باز هم جمله قبليمو تکرار مي کنم :
    "خواهشا از هيچ گونه اشتباه علمي و املايي چشم پوشي نکنيد و حتما تذکر دهيد ."

    فهرست مطالبي که بعدا بحث ميشه :
    1- نابود کننده ها يا Destructor ها
    2- اشياء Const و توابع Const
    3- کلاس ها و توابع Friend و مفهوم دوستي در کلاس ها
    4- اشاره گر this
    5- عملگر هاي new و delete
    6- اعضاي static کلاس و مفهوم static بودن
    7- بحثي کامل در مورد Operator Overloading يا همون سربارگذاري عملگر ها
    8- ارث بري و مفاهيم مربوط به آن
    9- مبحث Polymorphism و توابع Virtual
    10- بحث در مورد توابع بازگشتي
    11- اشاره گرها
    12- کار با فايل ها
    13- مباحثي در مورد ساختمان داده ها ( صف و پشته و ليست پيوندي و ... )
    14- آشنايي با وپژگي هاي کلاس string و نحوه استفاده از آن
    15- حل مسائل گوناگون مطرح در زبان ++C

    ان شاءالله که عمري باقي باشه و بتوان به تمامي اين موارد رسيد .

    موفق باشيد .............

  16. 2 کاربر از sin2x=2sinxcosx بخاطر این مطلب مفید تشکر کرده اند


  17. #19
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    سلام. اگه اجازه بدين اشاره گرها رو شروع کنيم .
    چون بعدا نياز ميشه .

    اشاره گرها يه نوع متغير هستن . اما به جاي يک مقدار ، يک آدرس متغير رو تو خودشون نگه مي دارن .
    در زير من يک متغير اشاره گر که به يک مقدار صحيح ( يعني int ) اشاره مي کند ، معرفي مي کنم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگه بخوايم بيش از يک متغير اشاره گر رو تو يک خط معرفي کنيم بايد قبل از هر کدوم يه star ( * ) بذاريم . عملگر * تو بالا نشون ميده که متغير aPtr يک اشاره گر به int هست .
    به غير از آدرس يک متغير ، عدد صفر تنها مقداري است که مي تواند در يک متغير اشاره گر قرار گيرد .
    با عملگر & ميشه به آدرس يه متغير دسترسي داشت . مثلا در زير ما با آدرس يک متغير به اشاره گر بالايي مون مقدار ميديم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    آدرس يه متغير يه همچين عدديه : 0015F670 . لازم به ذکره که خود متغيرهاي اشاره گر داراي آدرس هستن .
    همون طوري که ديدين ، آدرس متغير a رو تو يه اشاره گر به int قرار داديم . حالا هر تغييري که تو مقدار اين اشاره گر ميشه ، تو a هم اعمال ميشه .
    فرش کنين که a = 3 باشه . ما اگه بخوايم aPtr رو چاپ کنيم يه آدرس ( آدرس متغير a ) چاپ ميشه . اگه بخوايم مقدار اون محلي که اين اشاره گر به اون جا اشاره مي کنه چاپ بشه از عملگر * به شکل زير استفاده مي کنيم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    الان عدد 3 چاپ ميشه .
    يه مطلب مهم تو آرايه ها و اشاره گرها که يه کمي دقت مي خواد :
    قبلا تو آرايه ها گفتيم که آدرس خونه هاي يک آرايه پشت سر هم هستن . فرض کنين آرايه b رو با 4 عضو داريم . يعني :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    يه اشاره گر هم داريم که آدرس خونه اول اين آرايه رو داره . يعني :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همون طور که مي دونين اسم آرايه معادل آدرس خونه اول آرايه است . يعني دستور زير با دستور بالايي فرقي نداره :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حالا ++bPtr باعث ميشه که bPtr به جاي عضو اول به عضو دوم اشاره کنه . دستور bPtr +=2 باعث ميشه که اشاره گر bPtr به عضو سوم آرايه اشاره کنه .
    يادتونه گفتم ؟
    "به غير از آرايه ها هيچ جا نميشه به صراحت گفت که آدرس دو خونه تو حافظه پشت سر هم باشه ."
    اين جا هم يه چيزي ميگم :
    استفاده از اين گونه محاسبات روي اشاره گري که به يک آرايه اشاره نمي کند خطاي منطقيه .
    اين دو جمله کاملا به هم مربوطن .

  18. 3 کاربر از sin2x=2sinxcosx بخاطر این مطلب مفید تشکر کرده اند


  19. #20
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    خوب حالا تقريبا ميشه گفت به طور کامل وارد بحث کلاس ها و شيء گرايي شديم . از اين به بعد هر چقدر بگين مطلب رو کشش مي ديم . هر سوالي در اين رابطه هست بپرسين . يا من و يا اگر من هم بلد نباشم اين جا اساتيد حضور دارن که مي تونن راهنمايي کنن .

    Destructor يا نابود کننده :
    همون طوري که گفتيم سازنده يا Constructor تابع عضو خاصي از يه کلاسه که زماني فراخواني ميشه که يک شيء از اون کلاس ايجاد ميشه . جاي ديگه نمي تونيم به طور صريح اين تابع رو فراخواني کنيم . در مقابل Constructor ، نابود کننده يا Destructor قرار داره . Destructor هم به طور اتوماتيک احضار ميشه . خوب کي ؟
    همون طوري که احتمالا حدس زدين ، زماني که يک شيء نابود ميشه .
    خب شيء نابود ميشه يعني چي ؟
    فرض کنين شيء رو داخل يه تابع تعريف کرديم . تابع با آکلاد باز شروع ميشه و با آکلاد بسته تموم ميشه . تموم ميشه يعني کار تابع به پايان مي رسه و اجرا خاتمه مي يابه . پس بنابراين وقتي اجراي برنامه به آکلاد بسته مي رسه يعني Scope اي که شيء تو اون تعريف شده ترک ميشه و اين به معناي نابودي شيء هست . وقتي برنامه رو Trace کنين ( يعني خط به خط اجرا کنين و تغييرات رو هر لحظه ببينين ) متوجه ميشين که وقتي اجراي برنامه به آکلاد بسته مي رسه ، Destructor‌ احضار ميشه .
    نابود کننده هم مثل سازنده هيچ چيزي برنمي گردونه . بنابراين در مورد Destructor هم از کلمه void به عنوان نوع داده برگشتي استفاده نمي کنيم . حالا نابود کننده بر خلاف سازنده هيچ آرگوماني هم نمي تونه بگيره . بنابراين ليست پارامترهاي نابود کننده هميشه خاليه . حالا چجوري به کامپايلر بفهمونيم که کدوم تابع عضو ما Destructor هست ؟
    مثل سازنده بايد دقيقا اسم کلاس باشه ، فقط قبلش يه علامت tilde ( ~ ) هم مي ذاريم .
    خوب من اون بالا يه جمله اي گفتم : "چجوري به کامپايلر بفهمونيم که کدوم تابع عضو ما Destructor هست ؟"
    چه اصراريه به کامپايلر اينو بفهونيم ؟
    بله درسته ...
    چون کامپايلر سازنده و نابودکننده رو احضار ميکنه نه برنامه نويس . بنابراين بايد براش بشناسونيم .

    يه فرق ديگه اي که سازنده با نابودکننده داره اينه که تو هر کلاس ميشه چند تا سازنده داشت ولي نابود کننده يدونه است .

  20. 2 کاربر از sin2x=2sinxcosx بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

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

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •