صفحه 1 از 5 123 ... آخرآخر
نمایش نتایج 1 تا 40 از 172

نام تاپیک: مشكلات من با ++C

  1. #1
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    مشكلات من با ++C

    سلام دوستان من دارم برنامه نويسي ++C كار ميكنم براي همين وقتي به مشكل بر مي‌خورم كسي نيست كه ازش سوال كنم بهم جواب بده
    حالا اگه ممكنه شما دوستان كمك كنيد به بنده (البته ناراحت نشيد من يكم گيراييم كمه) باسه همين ممنون ميشم با صبر و شكيبايي كمك كنيد به بنده تا شايد حرفه اي شم مرسي ممنون

  2. #2
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    خوب دوستان شروع ميكنيم من خوندم و رسيدم به ساختار تكرار do......while
    در مثالي ميخواهيم كه برنامه اي بنويسيم كه تعدادي عدد از ورودي خوانده وارون آنها را به خروجي مي‌برد مثلا يه عدد مثل 1357 بگيره و 7531 رو در خروجي نمايش بده
     #include <iostream.h>
    #include <conio.h>
    int main()
    {
    int num, digit;
    clrscr();
    while(1){
    cout<<"\nEnter a number:"
    cin>>num;
    cout<<"inverse=";
    do{
    digit= num%10;
    cout<<digit;
    num/=10;
    } while(num !=0);
    }//end of while(1)
    //return 0;
    }



    خوب دوستان سوالات من
    1- مگر ساختار do........while به اين صورت نيست:
    }do
    دستور 1
    دستور 2
    ..........
    دستور n
    ;(شرط) while{
    پس اگر اينطوره چرا در تمرين بالا اول while اومده بعدش do ؟
    2- مگر در while نبايد يه متغير رو مقدار بديم مثلا بگيم while(r=2)پس چرا اينجا گفته while (1) اصلا اين يعني چي؟
    3- چرا برنامه داراي تابع ()getch نيست و چرا تابع return 0 در توضيحات اومده؟
    ممنون ميشم اينو حسابي توضيح بديد

  3. #3
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    نقل قول: مشكلات من با ++C

    سلام دوست عزيز
    خوب دوست عزيز من تبريك ميگم بهتون كه به سي ++ علاقه مند شديد و شروع به ياد گيري كرديد!! مطمئن باشيد كه بنده و دوستان و اساتيد محترم هر چقدر كه بتونيم كمكتون خواهيم كرد!!
    حالا در مورد اين مسئله بنده توضيحاتي عرض مي كنم كه اميدوارم جواب سوالاتتون رو بگيريد!!

    ** كاري كه اين برنامه انجام ميده اينه كه يه عدد رو از كاربر ميگيره و اون رو به طور برعكس چاپ مي كنه و اين كار رو تا بينهايت انجام ميده!! يعني چي!؟ يعني بعد از نمايش عكس يك عدد، عدد بعدي رو ميگيره و همين كار رو تكرار مي كنه!! در واقع يعني برنامه پاياني نداره!! ( مگر اينكه كاربر دستي برنامه رو ببنده!!)
    ** بنابراين در اين برنامه از دو حلقه استفاده شده كه يكي برايه تكرار برنامه مي باشد كه همان حلقه

    while(1){


    }//end of while(1)
    مي باشد! اين حلقه دارايه يك شرط شروع مي باشد كه در اينجا برابر 1 مي باشد!! اين بدين معني است كه هميشه شرط حلقه true مي باشد و حلقه هميشه اجرا مي شود!!( در اصطلاح حلقه بينهايت مي باشد!!)
    و حلقه ديگر برايه انجام عمل مربوط به برنامه مي باشد كه همان حلقه

    do{


    }while(num!=0)
    مي باشد!! اين حلقه نيز دارايه يك شرط خاتمه مي باشد كه در اينجا num!=0 مي باشد!!
    **تفاوت اين دو نوع while تنها در اين مي باشد كه حلقه do...while هميشه حداقل يكبار اجرا ميشود!! يعني حتي اگر شرط حلقه false باشد اين حلقه يكبار اجرا مي شود ولي حلقه while در صورت غلط بودن شرط اجرا نخواهد شد!!
    **در مورد تابع getch هم بايد بگم كه دليل استفاده آن در پايان هر برنامه تنها برايه آن است كه برنامه بشته نشده و بتوان خروجي را مشهاده كرد!! اما در اين برنامه چون بعد از اتمام عمليات عدد بعدي گرفته مي شود و برنامه بشته نمي شود مي توان خروجي را ديد پس نيازي به اين تابع نمي باشد!!
    ** در مورد return 0 هم احتمالا چون برنامه خاتمه نخواهد يافت آن را در توضيحات آورده اند!! ولي منطقي نيست و احتمالا برنامه موقع كامپايل يه warning در اين مورد نشان ميدهد!!

    موفق باشيد

  4. #4
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    دوست من دستت درد نكنه خيلي خوب توضيح دادي فهميدم ولي برنامه بدون ارور كار كرد
    يعني وقتي return 0 رو در // زدم هيچ اروري نداد احتمالا بخاطر اين بوده كه برنامه خاتمه پيدا نميكرده
    البته بگم من بدون// هم برنامه رو اجرا كردم ارور داد
    و اصلا return 0 رو هم حذف كردم بازم ارور داد

  5. #5
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: مشكلات من با ++C

    برنامه در هیچ حالتی ارور نمیده فقط وقتی return0 جز خطوط اجرایی باشه warning میده که طبیعیه چون خطی در برنامه هست که هرگز اجرا نخواهد شد

  6. #6
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    درسته منظور من هم همون warning بود اما چرا هميشه return 0 جزء خطوط اجرايي بود و اجرا مي‌شد اما الان تو اين برنامه نبايد جزء خطوط اجرايي باشه و بايد تو توضيحات بياد.
    تازه وقتي هم كه از خطوط اجرايي پاكش كردم باز هم warning داد
    يعني بخاطر همون(1)while هست كه return 0 جزء خطوط اجرايي نيست؟

  7. #7
    کاربر دائمی آواتار clover
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان - اراک
    پست
    646

    نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط majmaji مشاهده تاپیک
    درسته منظور من هم همون warning بود اما چرا هميشه return 0 جزء خطوط اجرايي بود و اجرا مي‌شد اما الان تو اين برنامه نبايد جزء خطوط اجرايي باشه و بايد تو توضيحات بياد.
    تازه وقتي هم كه از خطوط اجرايي پاكش كردم باز هم warning داد
    يعني بخاطر همون(1)while هست كه return 0 جزء خطوط اجرايي نيست؟
    شما تابع main را از نوع int تعریف کردید و معناش این هست که تابع یک مقدار برگشتی از نوع int داره . کامپایلر کاری به این که حلقه تا بی نهایت تکرار میشه نداره . مهم اینه که main یک تابع از نوع int هست و وقتی دستور ;return 0 را از برنامه حذف کنی کامپایلر اخطار میده که تابع شما نوع مورد نظر را برگشت نداد ، همین .

  8. #8
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط clover مشاهده تاپیک
    شما تابع main را از نوع int تعریف کردید و معناش این هست که تابع یک مقدار برگشتی از نوع int داره . کامپایلر کاری به این که حلقه تا بی نهایت تکرار میشه نداره . مهم اینه که main یک تابع از نوع int هست و وقتی دستور ;return 0 را از برنامه حذف کنی کامپایلر اخطار میده که تابع شما نوع مورد نظر را برگشت نداد ، همین .
    خوب پس چرا در مثال بالا تو توضيحات نوشته شده؟

  9. #9
    کاربر دائمی آواتار clover
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان - اراک
    پست
    646

    نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط majmaji مشاهده تاپیک
    خوب پس چرا در مثال بالا تو توضيحات نوشته شده؟
    خیلی ساده باید بگم که این کار اشتباه بوده . می تونست تابع main را از نوع void تعریف کنه ، اما به نظر من تعریف تابع main به صورت int و بعد قید ;return 0 به عنوان توضیح کار اشتباهی بوده ، به همین سادگی .

  10. #10
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: مشكلات من با ++C

    با نظر دوستمون موافقم بهتر بود ازنوع void تعریف می شد اما چون هرگز اجرا نمیشد(تو برنامه مورد نظر)به عنوان توضیحات اومده بود تا بگه که این خط جز برنامه است البته من اینجوری فکر میکنم ولی بهتر بود این کارو نمیکرد

  11. #11
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    دوستان عزيز راهنمايياتون بسيار عالي بود. خيلي ممنون كه به بنده اهميت ميديد و باعث رشد بنده در امر برنامه نويسي ميشيد.
    در ادامه به ساختار هاي تصميم ميرسيم
    ساختار تصميم if
    در تمريني كه داريم ميخواهيم برنامه اي بنويسيم كه يك جمله از ورودي بگيره و تعداد كاركتر و كلمه جمله رو به خروجي ببره و نمايش بده.
     #include <iostream.h>
    #include <conio.h>
    int main()
    {
    int charcount=0, wordcount=0;
    char ch;
    clrscr();
    cout<<"\nEnter a statement(and press Enter):";
    while((ch=getch()) != '\r'){
    if(ch==' ')
    wordcount++;
    }//end of while
    cout<<"\nChar count="<<charcount<<",Wordcount="<<wordcount+1;
    getch();
    return 0;
    }

    خوب دوستان من اين مثال رو قشنگ فهميدم بجز اينجا while((ch=getch()) != '\r')
    اين رو ميتونيد توضيح بديد.
    بعد يه سوال ديگه چرا ساختار تصميم if در ساختار كنترلي while قرار داره؟

  12. #12
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    نقل قول: مشكلات من با ++C

    با عرض سلام دوباره به دوستان
    خوب دوست عزيز در مورد اين مثالي كه نوشتي اول يه مسئله رو بگم و اون اينكه يك خط تويه كدت جا افتاده!! شما بايد بعد از حلقه while و قبل از شرط if كد زير رو بنويسيد!!

    charcount++;
    خوب اگه اجازه بديد حالا من توضيحي راجع به اين برنامه بدم!!
    اين برنامه قراره يك جمله رو از كاربر بگيره و تعداد كاراكترها و كلمات اين جمله رو به كاربر نمايش بده!!
    حالا اين برنامه به اين روش عمل مي كنه كه در يك حلقه كاركتر به كاركتر از ورودي مي خونه و هربار به متغير charcount يك واحد اضافه مي كنه، و با استفاده از if بررسي ميكنه كه اگه كاراكتر وارد شده جايخالي باشد، به معني يه كلمه مي باشد، و يك واحد به متغير wordcount اضافه ميكند!!
    نكته اينجاست كه اين حلقه تا وارد كردن كاركتر سطر بعد ('r\') ادامه پيدا ميكند!! كه اين كاراكتر با زدن كليد Enter وارد مي شود!!
    *** البته به نظر بنده بايد به جايه كاركتر 'r\' از كاركتر 'n\' استفاده شود!!
    پس بنابراين حلقه اي كه اشاره كرديد براي تشخيص كليد enter يا همان پايان جمله مي باشد كه شرط اتمام حلقه است!!
    ضمنا فكر ميكنم جواب اينكه چرا شرط if در داخل حلقه استفاده شده است، را هم گرفتيد!!!

    اميدوارم كه توضيحات كافي باشه!!
    موفق باشيد


  13. #13
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    درسته من اون خط رو جا انداختم ممنون از تذكرتون
    خوب اينكه بفهمه آخر جمله كجاست ميتونست يطور ديگه بگه بدون استفاده از ch=getch() !='\n
    مثلا اينطوري
     for(count=0; cin.get() !='.'; count++);


    يه سوال ديگه من نفهميدم چرا if رو تو while به كار برد.

  14. #14
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    نقل قول: مشكلات من با ++C

    خوب دوست عزيز مي دونيد فرق اين كدي كه گفتيد با getch چيه!!؟
    ببينيد تابع زير هر بار تنها يك كاراكتر مي خونه و به محض وارد كردن يك كاراكتر به دستور بعدي ميره!!

    c=getch();
    ولي دستور زير با خوندن يك يا چند كاراكتر كنترل برنامه رو به دستور بعدي نمي بره، و كاربر تا كليد enter رو نزنه به دستور بعدي نميره!!

    cin.get();
    حالا در اين برنامه تنها هدف تعداد كاركترها نيست. بلكه بايد تعداد كلمات را هم پيدا كرد، كه برايه اين كار با استفاده از دستوري كه شما گفتيد ،بايد كاركتري كه با دستور cin.get كاربر وارد مي كنه را در يك متغير ذخيره كنيد، و سپس در داخل حلقه آن مقدار را با جايخالي مقايسه كنيد (مانند مثال قبل) و اگر برابر بود، مقدار wordcount رو هم يك واحد اضافه كنيد!!!
    ***اما اگر اين كد را پياده سازي كنيد در اين حالت كاربر بايد بعد از هر كاركتر يك بار كليد Enter را فشار دهد!! دليل اين هم همان است كه در بالا عرض كردم!!!
    دليل استفاده از getch فقط و فقط برايه اين است كه به محض ورود هر كاراكتر به خط بعد و دستور بعد ميرود و ديگر نيازي به زدن Enter بعد از هر كاراكتر نمي باشد!!

    حال اگر شما مي خواهيد كه از كاراكتر نقطه به عنوان انتهاي جمله استفاده بشه خوب مي تونيد از حلقه زير استفاده كنيد!!

    while(c=getch() !='.')

    اما در مورد استفاده دستور if در داخل حلقه!! چون بعد از خواندن هر كاركتر با دستور getch و بررسيه اون اگر مخالف 'n\' باشه كنترل برنامه داخل حلقه وارد ميشود بنابراين در داخل حلقه بايد بررسي نمود كه آيا كاراكتر وارد شده برابر جايخالي است يا خير!!!؟ كه اين عبارت همان دستور if است، پس بايد در داخل حلقه بررسي شود!!

    موفق باشي دوست عزيز

  15. #15
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    ممنون از همه دوستاي خوبم
    خوب دوستان اميدوارم طاعات و عبادات شما در اين ماه مبارك قبول باشه ما رو هم دعا كنيد ممنون
    در ادامه ميرسيم به برنامه اي براي جدول كد اسكي
     #Include <iostream.h>
    #include <conio.h>
    int main()
    {
    int i;
    char ch;
    clrscr();
    for(i=41; i<=120; i++){
    ch= i;
    cout<<i<<"="<<" "<<ch<<" ";
    if(i% 5==0)
    cout<<"\n"
    }//end of for
    getch();
    return 0;
    }

    خوب دوستان من فقط دو تا سوال دارم در اونجا كه كاركتر ch را با عدد صحيح i برابر كرده ميتونست بر عكس بنويسه يعني بنويسه i=ch;
    و سوال بعدي در cout هست اون فاصله هايي كه خالي گذاشته براي چيه؟

  16. #16
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: مشكلات من با ++C

    سلام جواب سوال اولت منفیه چون قراره مقدار i را بریزه توی ch و نه برعکس(مقدار متغیر سمت راست در متغیر سمت چپ ریخته میشه)
    جواب سوال 2:صرفا برای اینه که وقتی میخواد بعدی رو چاپ کنه با قبلی قاتی نشه.امیدوارم کافی و مفید بوده باشه.
    موفق باشی

  17. #17
    کاربر جدید آواتار sia abedi
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    P30WORLD
    پست
    29

    Thumbs up نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط majmaji مشاهده تاپیک
    ممنون از همه دوستاي خوبم
    خوب دوستان اميدوارم طاعات و عبادات شما در اين ماه مبارك قبول باشه ما رو هم دعا كنيد ممنون
    در ادامه ميرسيم به برنامه اي براي جدول كد اسكي
     #Include <iostream.h>
    #include <conio.h>
    int main()
    {
    int i;
    char ch;
    clrscr();
    for(i=41; i<=120; i++){
    ch= i;
    cout<<i<<"="<<" "<<ch<<" ";
    if(i% 5==0)
    cout<<"\n"
    }//end of for
    getch();
    return 0;
    }
    خوب دوستان من فقط دو تا سوال دارم در اونجا كه كاركتر ch را با عدد صحيح i برابر كرده ميتونست بر عكس بنويسه يعني بنويسه i=ch;
    و سوال بعدي در cout هست اون فاصله هايي كه خالي گذاشته براي چيه؟
    سلام دوستان ما هم در بحثتون قبول كنيد
    اول از همه چرا در coutاون فاصله ها را زده بايد بگم اين كار كاملا سليقه اي هست يعني اون كسي كه اين برنامه را نوشته(كه به نظر مياد جعفر نژاد باشه)مي‌خواسته هر كد اسكي با كد بعديش پشت سر هم چاپ نشه تا شما وقتي برنامه را اجرا مي‌كنيد گيج نشيد به طور مثال بنويسه:
    41= ) 42= * 43= + ...
    ولي اگر اون فاصله ها را نمي‌گذاشت مي‌شد:
    41=)42=*43=+...
    البته بهتر بود به جاي فاصله \tميگذاشت تا به جاي يك فاصله 8 تا فاصله(به اندازه‌ي يك تب)مي‌داد.البته دوستمون آقاي afi_programهم درست گفته بودند ولي من احساس كردم كه براي يك تازه وارد كم توضيح داده بودند
    و اما سوال اولي:
    شما احتمالا منظور كسي كه برنامه را نوشته خوب نفهميديد منظور ايشان از اين كار اين بوده:
    كلا در C++‎‎‎‎‎‎دو نوع تبديل نوع(type casting) داده داريم:
    1.تبديل نوع ضمني:
    اين تبديل نوع ضمن عمل انتساب صورت مي‌گيرد سعي مي‌كنم با زدن مثال فهم قضيه را آسون تر كنم:
    1.int x='a'
    2.float y='b'
    3.char ch=97.8
    4.int a=123.56
    5.char ch=97

    توضيحات:
    1.منظور از مثال اولي اينه كه متغير xكه از نوع intاست را برابركد اسكيaيعني 97 قرار دهد
    2.منظور از مثال دومي اينه كه متغير y كه از نوع floatاست را برابر كد اسكي 'b'كه همان 98است قرار دهد ولي چون yاز نوعfloat است98به صورت 98.0نگهداري مي‌كند.
    3.منظور از مثال سومي اينه كه متغير ch كه از نوعcharهست را برابر97 كند چون متغر هاي charنمي‌تونن مقدار اعشاري را در خود نگه دارن(در واقع چون كد اسكي اعشاري نداريم اين اتفاق مي‌افتد)براي همين 97 در داخل ch نگهداري مي‌شود و در نهايت به كاركتري كه كد اسكي آن 97 است تبديل مي‌شود كه همان a است.
    4.منظور از مثال چهارمي اينه كه متغير a كه از نوع intاست را برابر 123 قرار دهد چون متغير هاي int نمي‌توانند مقدار اعشاري را در خود نگه دارند براي همين 56. حذف مي‌شود.
    5.منظور از مثال پنجمي اينه كه متغير ch كه از نوع charهست را برابر 97 قرار دهد كه در نهايت تبديل به كاركتري مي‌شود كه كد اسكي آن 97است كه همان'a'است.
    حالا منظور كسي كه اين برنامه را نوشته مثل مثال 5 بوده.
    راستي يك نوع تبديل نوع ديگر هم داريم كه به تبديل نوع صريح معروفه.چون تبديل نوع صريح ربطي به موضوع ما نداشت براي همين اون را توضيح ندادم ولي اگر خواستي بگو تا توضيح بدم.
    مي‌دونم كه سرت رفت ولي اين خواسته ي خودت بود كه به طور كامل توضيح بديم منم فقط همين كار را كردم.اگر باز هم منظورم را نفهميدي بگو تا بهتر توضيح بدم.

  18. #18
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط sia abedi مشاهده تاپیک
    سلام دوستان ما هم در بحثتون قبول كنيد
    اول از همه چرا در coutاون فاصله ها را زده بايد بگم اين كار كاملا سليقه اي هست يعني اون كسي كه اين برنامه را نوشته(كه به نظر مياد جعفر نژاد باشه)مي‌خواسته هر كد اسكي با كد بعديش پشت سر هم چاپ نشه تا شما وقتي برنامه را اجرا مي‌كنيد گيج نشيد به طور مثال بنويسه:
    41= ) 42= * 43= + ...
    ولي اگر اون فاصله ها را نمي‌گذاشت مي‌شد:
    41=)42=*43=+...
    البته بهتر بود به جاي فاصله \tميگذاشت تا به جاي يك فاصله 8 تا فاصله(به اندازه‌ي يك تب)مي‌داد.البته دوستمون آقاي afi_programهم درست گفته بودند ولي من احساس كردم كه براي يك تازه وارد كم توضيح داده بودند
    و اما سوال اولي:
    شما احتمالا منظور كسي كه برنامه را نوشته خوب نفهميديد منظور ايشان از اين كار اين بوده:
    كلا در C++‎‎‎‎‎‎‎دو نوع تبديل نوع(type casting) داده داريم:
    1.تبديل نوع ضمني:
    اين تبديل نوع ضمن عمل انتساب صورت مي‌گيرد سعي مي‌كنم با زدن مثال فهم قضيه را آسون تر كنم:
    1.int x='a'
    2.float y='b'
    3.char ch=97.8
    4.int a=123.56
    5.char ch=97

    توضيحات:





    حالا منظور كسي كه اين برنامه را نوشته مثل مثال 5 بوده.
    1.منظور از مثال اولي اينه كه متغير xكه از نوع intاست را برابركد اسكيaيعني 97 قرار دهد 2.منظور از مثال دومي اينه كه متغير y كه از نوع floatاست را برابر كد اسكي 'b'كه همان 98است قرار دهد ولي چون yاز نوعfloat است98به صورت 98.0نگهداري مي‌كند. 3.منظور از مثال سومي اينه كه متغير ch كه از نوعcharهست را برابر97 كند چون متغر هاي charنمي‌تونن مقدار اعشاري را در خود نگه دارن(در واقع چون كد اسكي اعشاري نداريم اين اتفاق مي‌افتد)براي همين 97 در داخل ch نگهداري مي‌شود و در نهايت به كاركتري كه كد اسكي آن 97 است تبديل مي‌شود كه همان a است. 4.منظور از مثال چهارمي اينه كه متغير a كه از نوع intاست را برابر 123 قرار دهد چون متغير هاي int نمي‌توانند مقدار اعشاري را در خود نگه دارند براي همين 56. حذف مي‌شود. 5.منظور از مثال پنجمي اينه كه متغير ch كه از نوع charهست را برابر 97 قرار دهد كه در نهايت تبديل به كاركتري مي‌شود كه كد اسكي آن 97است كه همان'a'است.
    راستي يك نوع تبديل نوع ديگر هم داريم كه به تبديل نوع صريح معروفه.چون تبديل نوع صريح ربطي به موضوع ما نداشت براي همين اون را توضيح ندادم ولي اگر خواستي بگو تا توضيح بدم.
    مي‌دونم كه سرت رفت ولي اين خواسته ي خودت بود كه به طور كامل توضيح بديم منم فقط همين كار را كردم.اگر باز هم منظورم را نفهميدي بگو تا بهتر توضيح بدم.
    من اصلا اين آخري رو نفهميدم

  19. #19
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    نقل قول: مشكلات من با ++C

    سلام دوست عزيز
    منظورتون از آخري كدومه!!؟
    اگه منظورتون مثال آخر بايد بگم كه به طور كلي منظور دوستمون sia abedi اينه كه در زبان سي يا سي++ شما در يك متغير نوع char يا نوع int حتما نبايد به ترتيب مقادير كاراكتري و عددي صحيح قرار بديد!
    شما مي تونيد در يك متغير نوع int يه مقدار كاراكتري هم بريزيد (مثال 1) كه در اين صورت كد اسكي كاراكتر در متغير ذخيره ميشود كه دوستمون در مثالشون توضيح دادند!!
    همچنين شما مي تونيد در يك متغير نوع char مقدار عددي هم بريزيد(مثال 5) كه در اين صورت عدد به عنوان كد اسكي در نظر گرفته شده و كاراكتر معادل آن كد اسكي در متغير ذخيره ميشود كه اين هم دوستمون در مثال 5 توضيح دادند!!
    اميدوارم كه تونسته باشم خوب توضيح بدم!!
    موفق باشيد!!

  20. #20
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    آها فهميدم چي شد :D
    خوب بريم سراغ مثال بعدي
    در مثال بعدي ما برنامه اي نوشتيم كه توسط كامپيوتر يك عدد در نظر ميگيره و كاربر بايد آن عدد رو حدس بزنه.
    من اين مثال رو خيلي خوب فهميدم فقط نفهميدم چرا getch(); قبل از return 0; نيومده و در if اومده؟
     #include <iostream.h>
    #include <stdlib.h>
    #include <conio.h>
    int main()
    {
    int magic, guess;
    char ans='y';
    magic=rand();
    do{
    cout<<"\nGuess a number:";
    cin>>guess;
    if(guess==magic){
    cout<<"****right****";
    cout<<"%d is the magic number";
    getch();
    ans= 'n';//end of while
    }//end of if
    else {
    cout<<"****wrong****";
    if(guess>magic){
    cout<<"your guess is to hihg";
    else
    cout<<"your guess is to low";
    cout<<"do you want to countinu?(y/n)";
    cin>>ans;
    }//end of else
    }while (ans=='y');
    return o;
    }

  21. #21
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    نقل قول: مشكلات من با ++C

    سلام دوست عزيز
    خوب ببينيد قبلا هم در مورد دليل اين نوع استفاده getch بهتون گفتم كه برايه نگهداشتن روند اجرايه برنامه است كه خروجي رو كاربر ببينه!! اينجا هم به همين دليل getch استفاده شده!! وقتي كه كاربر عدد رو درست حدس بزنه خروجي نمايش داده ميشه و getch باعث ميشه كه برنامه منتظر بمونه تا كاربر خروجي رو ببينه!!
    بنابراين چون خروجي در داخل if نمايش داده ميشه دستور getch هم در if بعد از دستور خروجي قرار مي گيره!!
    اميدوارم كه متوجه علت شده باشيد!!
    تذكر: دوست عزيز در كدي كه نوشتيد دستور زير درست نيست!!

    cout<<"%d is the magic number";
    كه بايد به شكل زير اصلاح بشه!!

    cout<<magic<<" is the magic number";
    **در دستور cout از كاركتر هايي مثل d% استفاده نميشه!!

    موفق باشيد

  22. #22
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط Yasersadegh مشاهده تاپیک
    سلام دوست عزيز
    خوب ببينيد قبلا هم در مورد دليل اين نوع استفاده getch بهتون گفتم كه برايه نگهداشتن روند اجرايه برنامه است كه خروجي رو كاربر ببينه!! اينجا هم به همين دليل getch استفاده شده!! وقتي كه كاربر عدد رو درست حدس بزنه خروجي نمايش داده ميشه و getch باعث ميشه كه برنامه منتظر بمونه تا كاربر خروجي رو ببينه!!
    بنابراين چون خروجي در داخل if نمايش داده ميشه دستور getch هم در if بعد از دستور خروجي قرار مي گيره!!
    اميدوارم كه متوجه علت شده باشيد!!
    تذكر: دوست عزيز در كدي كه نوشتيد دستور زير درست نيست!!

    cout<<"%d is the magic number";
    كه بايد به شكل زير اصلاح بشه!!

    cout<<magic<<" is the magic number";
    **در دستور cout از كاركتر هايي مثل d% استفاده نميشه!!

    موفق باشيد
    درسته درسته.
    پس يعني ما هر موقع كه خواستيم يه خروجي رو به نمايش بگذاريم بايد getch رو بكار ببريم.

  23. #23
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: مشكلات من با ++C

    البته یه راهش اینه که همین راه برای برنامه هایی که یکبار قرار اجرا بشن خوبه.در حقیقت با این کار برنامه منتظر دریافت کلیدی هست که این به معنای توقف برنامه تا دریافت کلید هست.
    موفق باشی

  24. #24
    کاربر جدید آواتار sia abedi
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    P30WORLD
    پست
    29

    نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط majmaji مشاهده تاپیک
    درسته درسته.
    پس يعني ما هر موقع كه خواستيم يه خروجي رو به نمايش بگذاريم بايد getch رو بكار ببريم.
    بله تقريبا حرفتون درسته ولي هميشه نه ببين بگذار دقيقتر بگم
    شما تكه برنامه‌ي زير را در نظر بگير:
    cin>>a;
    cout<<a;

    وقتي برنامه ران ميشه به سرعت دستورات اجرا ميشه ولي اگر به برنامه‌ي بالا نگاه كني مي‌بيني كه در خط اول متغير aاز ورودي خوانده مي‌شود براي همين تا عدد يا كاراكتري از صفحه‌ي كيبورد زده نشه و كليد Enter فشار داده نشود كامپايلر ادامه‌ي برنامه را اجرا نمي‌كند ولي در دستور دوم كامپايلر aرا در خروجي چاپ مي‌كند و به سرعت به سراغ دستور بعدي مي‌رود براي همين اگر در آخر برنامه ي ما دستور coutيا دستوراتي مثل آن باشد بايد getch را گذاشت تا برنامه بعد از انجام دستور اجازه‌ي رويت اثرات اون دستور را به كاربر بدهد شما فرض كنيد كه getch مثل cinمي‌مونه كه به كامپايلر ميگه كه بايد منتظر بمونه ولي cinمنتظر مي‌مونه تا از ورودي چيزي را بخونه ولي getch چيزي را از ورودي نمي‌خونه
    البته من ديدم كه بعضي ها با getch از ورودي متغير مي‌خونن از دوستان مي‌خوام كه در مورد استفاده‌ي getch براي خوندن متغير از ورودي يك مقداري توضيح بدن (طريقه ي استفادش چه جوريه؟ چه فرقي با cinداره؟ و ... .)
    البته يك نكته‌اي هم را بايد متذكر بشم كه كامپايلر هاي جديد خودشون getch را مي‌گذارند فقط براي اينكه شما گيج نشيد بايد بگم كه سعي كن قبل از return 0در همه‌ي برنامه ها getchرابگذاري حالا شايد اين سوال براتون به وجود بياد كه چرا بعد از return 0 نگذارم؟ بايد در مورد اين سوال اين نكته را متذكر بشم كه هر دستوري كه بعد از return 0 باشد اجرا نمي‌شود يعني return 0به سيستم مي‌گويد كه ديگر دستوري نمانده و برنامه تمام شده.
    اميدوارم كه منظورم را متوجه شده باشيد.

  25. #25
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    بله ممنون توضيحات خوب و عالي بود

    اما در مورد مثال بعدي
     #include <iostream.h>
    #include <conio.h>
    int main()
    {
    int grade;
    clrscr();
    cout<<"\nEnter a grade:";
    cin>>grade;
    while(grade){
    if(grade>=17 &&grade<=20)
    cout<<"grade="<<grade<<"score="<<'A';
    if(grade>=15 &&grade<=17)
    cout<<"grade="<<grade<<"score="<<'B'
    if(grade>=12 &&grade<=15)
    cout<<"grade="<<grade<<"score="<<'C'
    if(grade<12)
    cout<<"grade="<<grade<<"score="<<'D'
    cout<<"\nEnter a grade:";
    cin>>grade;
    }//end of while
    return 0;
    }

    خوب چند تا سوال چرا در اول و آخر اين برنامه دوبار لقشيث رو از كاربر ميگيره؟
    نميشه با كاركتر ans كه يا y هست يا n شرط تكرار حلقه رو برقرار كنيم؟

  26. #26
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: مشكلات من با ++C

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

  27. #27
    کاربر دائمی آواتار behnam-s
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    CPU
    پست
    207

    نقل قول: مشكلات من با ++C

    سلام
    خوب چند تا سوال چرا در اول و آخر اين برنامه دوبار grade رو از كاربر ميگيره؟
    ببینید cin>>grade اول داخل حلقه نیست و فقط یکبار اجرا میشه. و چون شرط ورودی حلقه grade هست مجبور شده این کارو بکنه. که می شد با یک cin به روش زیر هم انجامش داد.
    while(1){       "شرط "1" همیشه بر قرار است. یعنی شرط اجرای حلقه هیچ وقت false  نمی شود
    cin>>grade;
    if(!grade)
    break; "خروج از حلقه و ادامه برنامه بعد ار حلقه
    if(grade>=17 &&grade<=20)
    cout<<"grade="<<grade<<"score="<<'A';
    {

    نميشه با كاركتر ans كه يا y هست يا n شرط تكرار حلقه رو برقرار كنيم؟
    چرا نشه؟. ولی این کار باعث می شه کاربر برای وارد کردن هر نمره یه بار به سوال جواب بده. که یه کم خسته کنندست.

  28. #28
    کاربر جدید آواتار sia abedi
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    P30WORLD
    پست
    29

    نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط afi_program مشاهده تاپیک
    برای سوال اول:دلیل خصی نداره فقط باتوجه به نوع نوشتن برنامه چون برای بقیه ی نمرات در آخر حلقه نمره را میگیره برای اولی خارج از حلقه گرفته همین.
    سوال دوم:چرا میتونستی یک کاراکتر تعریف کنی و در آخر حلقه از کاربر بگیری که مایل به ادامه ی برنامه هست یا نه که در این صورت بهتره نمره را در اول حلقه بگیری و دیگه اول برنامه نمره دریافت نکنی.اما در این مثالی که گذاشتی برای خروج بر اساس نمره وارد شده تصمیم گیری میشه.امیدوارم واضح و کافی بوده باشه.
    موفق باشی
    نقل قول نوشته شده توسط behnam-s مشاهده تاپیک
    سلام

    ببینید cin>>grade اول داخل حلقه نیست و فقط یکبار اجرا میشه. و چون شرط ورودی حلقه grade هست مجبور شده این کارو بکنه. که می شد با یک cin به روش زیر هم انجامش داد.
    while(1){       "شرط "1" همیشه بر قرار است. یعنی شرط اجرای حلقه هیچ وقت false  نمی شود
    cin>>grade;
    if(!grade)
    break; "خروج از حلقه و ادامه برنامه بعد ار حلقه
    if(grade>=17 &&grade<=20)
    cout<<"grade="<<grade<<"score="<<'A';
    {


    چرا نشه؟. ولی این کار باعث می شه کاربر برای وارد کردن هر نمره یه بار به سوال جواب بده. که یه کم خسته کنندست.


    نظر هر دوي دوستان درسته و اين كار كاملا سليقه‌ايه

  29. #29
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    سلام دوستان خوبید
    ببخشیدا بعد از وقفه ای که تو کارم افتاد (چون فکر کردم بهتره به جای یادگرفتن برنامه نویسی برم شبکه رو اول بخونم) حالا که یکم شبکه یاد گرفتم میخوام دوباره برنامه نویسی رو از سر بگیرم.
    دوستان به من پیشنهاد کردن که کتاب دایتل رو بگیرم من هم گرفتم پس از همین الان کار رو با کتاب دایتل و کامپایلر dev-C++‎ شروع میکنیم
    امیدوارم بازم مثل سابق به کمک من بیایید و در حل مشکلات برنامه های تمرینی ++C کمکم کنید.
    ممنون

  30. #30
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    Question نقل قول: مشكلات من با ++C

    خوب دوستان من تا فصل 3 پیش رفتم حالا این مشکلات برام پیش اومد
    این برنامه رو در نظر بگیرید
    این برنامه تعریف یک کلاس با تابع عضو هست یک مثال ساده از تعریف کلاس با تابع عضو که تابع عضو هیچ پارامتری نداره
    #include <cstdlib>
    #include <iostream>
    #include <conio.h>

    using std::cout;
    using std::endl;

    class gradebook
    {
    public:
    void displayMessage()
    {
    cout<<"welcome to the gradebook"<<endl;

    }
    };
    int main()
    {
    gradebook mygradebook;
    mygradebook.displayMessage();
    getch();
    return 0;
    }

    این مثال ساده بود و من تونستم بفهمم
    اما مثال بعدی مربوط میشه به تعریف تابع عضو با یک پارامتر
    #include <cstdlib>
    #include <iostream>
    #include <conio.h>
    #include <string>

    using namespace std;



    class GradeBook
    {
    public:
    void displayMessage(string courseName)
    {
    cout << "welcome to the gradeBooj for\n" << courseName << "!" << endl;
    }
    };
    int main()
    {
    string name0fcourse;
    GradeBook myGradeBook;
    cout << "please enter the course name:" << endl;
    getline( cin, name0fcourse );
    cout << endl;
    myGradeBook.displayMessage(name0fcourse);
    getch();
    return 0;
    }

    حالا سوالات من:
    تابع عضو displayMessage یک پارامتر داره با نام string courseName و داخل تابع main هم یک متغیر از نوع string تعریف شده. آیا این دو تا به هم ربط داره؟
    داخل همون تابع main بعد از اینکه یک رشته رو چاپ میکنه که میگه please enter the course name: بجای اینکه از <<cin استفاده کنه اومده از getline استفاده چرا؟
    داخل همون
    cin و name0fcourse چه کاری رو انجام میدن؟
    مثال اول رو یه بار دیگه نگاه کنید اونجا که یک شی از کلاس رو تعریف کرده و اونجایی که با استفاده از شی تابع عضو کلاس رو فراخوانده. نگاه کردید
    حالا بیایید مثال دوم تا اونجایی که شی رو تعریف کرده یکی هستند ولی بجای اینکه بیاد تابع displayMessage(string courseName) رو بخونه اومده تابع displayMessage(name0fcourse) رو خونده. چرا؟

  31. #31
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    داداش نیما اینجا کسی دوست نداره به کمک ما بیاد بازم اگه میشه زحمت اینارو بکش

  32. #32
    کاربر دائمی آواتار mabbaszadegan
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    185

    نقل قول: مشكلات من با ++C

    سلام رفیق
    میشه دقیقا بگی مشکلت چیه ؟!

    شرمنده حال خوندن این همه پست رو ندارم

  33. #33
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    رفیق شرمندمون کردی مشکل من اینه:
    خوب دوستان من تا فصل 3 پیش رفتم حالا این مشکلات برام پیش اومد
    این برنامه رو در نظر بگیرید
    این برنامه تعریف یک کلاس با تابع عضو هست یک مثال ساده از تعریف کلاس با تابع عضو که تابع عضو هیچ پارامتری نداره
    کد:
    #include <cstdlib>
    #include <iostream>
    #include <conio.h>

    using std::cout;
    using std::endl;

    class gradebook
    {
    public:
    void displayMessage()
    {
    cout<<"welcome to the gradebook"<<endl;

    }
    };
    int main()
    {
    gradebook mygradebook;
    mygradebook.displayMessage();
    getch();
    return 0;
    }
    این مثال ساده بود و من تونستم بفهمم
    اما مثال بعدی مربوط میشه به تعریف تابع عضو با یک پارامتر
    کد:
    #include <cstdlib>
    #include <iostream>
    #include <conio.h>
    #include <string>

    using namespace std;



    class GradeBook
    {
    public:
    void displayMessage(string courseName)
    {
    cout << "welcome to the gradeBooj for\n" << courseName << "!" << endl;
    }
    };
    int main()
    {
    string name0fcourse;
    GradeBook myGradeBook;
    cout << "please enter the course name:" << endl;
    getline( cin, name0fcourse );
    cout << endl;
    myGradeBook.displayMessage(name0fcourse);
    getch();
    return 0;
    }
    حالا سوالات من:
    تابع عضو displayMessage یک پارامتر داره با نام string courseName و داخل تابع main هم یک متغیر از نوع string تعریف شده. آیا این دو تا به هم ربط داره؟
    داخل همون تابع main بعد از اینکه یک رشته رو چاپ میکنه که میگه please enter the course name: بجای اینکه از <<cin استفاده کنه اومده از getline استفاده چرا؟
    داخل همون
    cin و name0fcourse چه کاری رو انجام میدن؟
    مثال اول رو یه بار دیگه نگاه کنید اونجا که یک شی از کلاس رو تعریف کرده و اونجایی که با استفاده از شی تابع عضو کلاس رو فراخوانده. نگاه کردید
    حالا بیایید مثال دوم تا اونجایی که شی رو تعریف کرده یکی هستند ولی بجای اینکه بیاد تابع displayMessage(string courseName) رو بخونه اومده تابع displayMessage(name0fcourse) رو خونده. چرا؟

  34. #34
    کاربر دائمی آواتار mabbaszadegan
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    185

    نقل قول: مشكلات من با ++C

    1. تا منظورت از ربط چی باشه ؛
    خب تابع عضو displayMessage برای اجرا شدن نیاز داره تا یه string رو بگیره ؛ حالا
    الف) این string رو میتونه مستقیم برنامه نویس به تابع بده ، مثلا :
     
    myGradeBook.displayMessage("mohammad");
    ب) کاربر string رو به تابع بدهد ؛ دقیقا همین اتفاقی که توی مثال شما افتاده ؛
    یعنی یه string توی تابع main تعریف کرده ، بعد اونو از کاربر گرفته و در خروجی چاپ میکنه ، ببین :
     
    string name0fcourse;
    GradeBook myGradeBook;
    cout << "please enter the course name:" << endl;
    getline( cin, name0fcourse );
    cout << endl;
    myGradeBook.displayMessage(name0fcourse);

    2. هیچ فرقی نداره ، درواقع شکل اصلیه دستور cin همینه ، زیاد توضیح نمیدم ، چون تو فصل 11 کامل یاد میگیری ، فعلن بدون که اینم میشه

    3. نمیگم فعلن حفظ کن که اینم میشه ، تو فصل 11 کامل میگیری قضیه رو
    البته میتونی از همون cin معمولی استفاده کنی ، یعنی اون خط رو پاک کن ، به جاش بنویس :
     
    cin>>name0fcourse;

    4. جواب سوال 1 رو دوباره بخون
    فرقی نداره که ؛ فقط اسم عوض شده ، ماهیت هیچ فرقی نکرده


    به نظرم خوب داری پیش میری ، اگه بازم سوالی بود ، من درخدمتم

    فقط یه سوال :
    دایتل زبان اصلی رو میخونی ؟

  35. #35
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    میدونی من زبان اصلیشو خریدم داشتم میخوندم بعد دیدم یکی از بچه ها دو جلد فارسیشو داره گرفتم ترجمه خودم رو باهاش مقایسه میکنم

  36. #36
    کاربر دائمی آواتار mabbaszadegan
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    185

    نقل قول: مشكلات من با ++C

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

    اگه بازم مشکلی داشتی بپرس ، من تا اونجا که بلد باشم کمکت میکنم

  37. #37
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    خوب با اجازت یه سوال دیگه
    در مورد همون 4
    گفتی ماهیتشون یکی یعنی یه کار رو انجام میدن فقط اسمشون عوض شده درسته
    یعنی من میتونم تو تعریف تابع داخل displayMessage بنویسم majid و داخل تابع main بنویسم mohammad؟
    آیا این خاصیت بخاطر string هست؟
    اگه آره که ما میتونستیم اسم رو عوض نکنیم و اصلا name0fcourse رو تعریف نکنیم نکنیم و توی خط آخر اونجا که با استفاده از شی تابع رو خونده داخل تابع همون پارامتر coursename رو بگذاریم
    اگر هم نه پس چرا تو تعریف کلاس اونجا که تابع رو تعریف کرده از لفظ string استفاده کرده ایا استفاده از این لفظ اجباریه؟

  38. #38
    کاربر دائمی آواتار mabbaszadegan
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    185

    نقل قول: مشكلات من با ++C

    تاحدودی داری درست میگی
    بذار اینجوری واست بگم :

    تو واسه تابع اینطور تعریف کردی که یه string بگیره و بش سلام کنه
    حالا اسم این string برای تابع مهم نیست ، فقط مهم اینه که string باشه

    حالا واسه اینکه فک نکنی این خاصیت فقط تو string تعریف شده ، به جای string (هم توی تعریف تابع و هم توی تابع main ) بنویس int

    حالا برنامه رو اجرا کن و یه عدد صحیح وارد کن ؛

    دیدی ؟!

    حالا دوباره برنامه رو اجرا کن و ایندفه یه اسم وارد کن ......


    احتمالن بازم واست سوال پیش میاد ، منتظرم

  39. #39
    کاربر تازه وارد آواتار majmaji
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    34
    پست
    96

    نقل قول: مشكلات من با ++C

    نه سوال پیش نیومد
    چون string یک رشته از کارکتر ها رو میگیره و int یک عدد صحیح رو میگیره اگه با int یک سری رشته کارکتری وارد کنی اونا رو به صورت یک رشته از اعداد در میاره البته تا جایی که int جواب بده اگه رشته کارکتری طولانی بود برای اطمینان از تبدیل شدن تمام کارکترها به عدد از long int استفاده کنیم

  40. #40
    کاربر دائمی آواتار mabbaszadegan
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    185

    نقل قول: مشكلات من با ++C

    نقل قول نوشته شده توسط majmaji مشاهده تاپیک
    نه سوال پیش نیومد
    چون string یک رشته از کارکتر ها رو میگیره و int یک عدد صحیح رو میگیره اگه با int یک سری رشته کارکتری وارد کنی اونا رو به صورت یک رشته از اعداد در میاره البته تا جایی که int جواب بده اگه رشته کارکتری طولانی بود برای اطمینان از تبدیل شدن تمام کارکترها به عدد از long int استفاده کنیم
    ای ول
    خوشم اومد ازت ، همینطور ادامه بده

    هرجاش باز به مشکل خوردی ، بگو ؛ تا اونجا که بتونم کمکت میکنم

    موفق باشی

صفحه 1 از 5 123 ... آخرآخر

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

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