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

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




صفحه 5 از 326 اولاول 1234567891555105 ... آخرآخر
نمايش نتايج 41 به 50 از 3257

نام تاپيک: سوالات مبتدی و عمومی (++C, C) خود را اینجا بپرسید

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

    پيش فرض

    بازم برنامه ی اشکال دار و باز هم درخواست از یه نفر برای حل مشکل:
    این برنامه ی محاسبه ی sin بر اساس دنباله ی مربوطشه.
    این برنامه نیاز داره که فاکتوریل بعضی اعداد رو محاسبه کنه که من برای این کار fact رو تعریف کردم و بعد در زیر برنامه ی fact رو نوشتم اما وقتی اجرا می کنم ارور می ده و می گه این function تعریف شده نیست و اصلا به آخر برنامه توجه نمی کنه حالا چی کار باید بکنم؟
    #include <stdio.h>
    #include <math.h>
    void main (void)
    {
    float x,sin=0;
    scanf("%f",&x);
    int i;
    for(i=1;i<10;i++)
    sin=sin+pow(x,2*i-1)*pow(-1,i-1)/Fact(2*i-1);
    printf("Sin%f=%f",x,sin);
    }
    int Fact(int n)
    {
    int i,result=1;
    for(i=1;i<=n;i++)
    result=result*i;
    return result;
    }
    برنامه شما متاسفانه اشكال زياد داشت،تصحيح آن بصورت زير است:


    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    double fact(int n)
    {int i;
    double result=1;
    for(i=1;i<=n;i++)result*double(1);
    return result;
    }
    void main (void)
    {long int i;
    float x;
    double sin;
    while(1)
    {clrscr();
    printf("Enter your angle(radian):");
    scanf("%f",&x);
    sin=0;
    for(i=0;i<50;i++)
    sin=sin+pow(x,2*i+1)*pow(-1,i)/fact(2*i+1);
    printf("\nsin%5.2f=%lf",x,sin);
    printf("\n\nDo you want to continue(y/n)?");
    if(getch()=='y')continue;
    break;
    }
    printf("\nGOOD LUCK!");
    getch();
    }


  2. #42
    آخر فروم باز seyyedi's Avatar
    تاريخ عضويت
    Jul 2007
    محل سكونت
    بوشهر
    پست ها
    1,764

    پيش فرض

    دوستان سلام
    میگم من جواب ندارم یا اینکه به مبتدی ها جواب نمیدید؟؟؟؟؟؟؟؟؟؟؟

  3. #43
    داره خودمونی میشه farnaz_bahall's Avatar
    تاريخ عضويت
    Sep 2007
    پست ها
    80

    پيش فرض

    جناب شرلوک هلمز فرق برنامه ی من باشما در باطن، جابجا کردن جای fact با main بوده با تفاوت های ظاهری.
    اما جالبیت مسئله این جاست که هیچ کدوم جواب درست رو نمی ده.

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

    پيش فرض

    جناب شرلوک هلمز فرق برنامه ی من باشما در باطن، جابجا کردن جای fact با main بوده با تفاوت های ظاهری.
    اما جالبیت مسئله این جاست که هیچ کدوم جواب درست رو نمی ده.
    بله ،درباز نويسي برنامه اشتباهي رخ داده كه با عرض پوزش برنامه صحيح را برايتان قرار مي دهم:



    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    double fact(int n)
    {int i;
    double result=1;
    for(i=1;i<=n;i++)result=result*double(i);
    return result;
    }
    void main (void)
    {long int i;
    float x;
    double sin;
    while(1)
    {clrscr();
    printf("Enter your angle(radian):");
    scanf("%f",&x);
    sin=0;
    for(i=0;i<50;i++)
    sin=sin+pow(x,2*i+1)*pow(-1,i)/fact(2*i+1);
    printf("\nsin%5.2f=%lf",x,sin);
    printf("\n\nDo you want to continue(y/n)?");
    if(getch()=='y')continue;
    break;
    }
    printf("\nGOOD LUCK!");
    getch();
    }

    برنامه فوق را اجرا كنيد(اشتباه در اين خط بود;(for(i=1;i<=n;i++)result=result*double(i)
    واگر جواب داد اين نكات را بخاطر بسپاريد:
    1-بدليل داشتن دو تابع سريعا" صعودي(توان و فاكتوريل) انتخاب نوع متغيرها مهم است ومتغيرهاي ساده مانند int سريعا" پر شده وجواب نمي دهد.(پيشنهاد مي شود مبحث انواع متغيرها را به دقت مطالعه بفرمائيد،البته فقط پيشنهاد مي شود)
    2- در c قبل از استفاده از هر تابع در يك بلوك، بايد آن تابع تعريف شود.همانطور كه براي استفاده از توابع كليدي بايد header مربوطه در بالاي برنامه قرارگيرد، تابع fact نيز قبل از استفاده در بلوك main بايدتعريف گردد.حال شما يا مي توانيد مانند من كل تابع را قبل از main بنويسيد ويا مانند خودتان اصل تابع را بعد از main بنويسيد ولي تابع را قبل از main تعريف نمائ.
    3- و سرانجام توچين نوشتن، اضافه كردن دستور پاك كردن screen ، اضافه كردن توضيحات لازم، اضافه سازي دستور نگه دارنده و ... 2 حسن دارد اولا" به ريبائي و شكيل بودن برنامه كمك مي كند و ثانيا" كسي راكه مستقيما" به برنامه شما ويا فايل اجرائي آن برمي خورد راهنمائي مي نمايد.
    موفق باشيد.

  5. #45
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض

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

  6. #46
    داره خودمونی میشه farnaz_bahall's Avatar
    تاريخ عضويت
    Sep 2007
    پست ها
    80

    پيش فرض

    بله ،درباز نويسي برنامه اشتباهي رخ داده كه با عرض پوزش برنامه صحيح را برايتان قرار مي دهم:



    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    double fact(int n)
    {int i;
    double result=1;
    for(i=1;i<=n;i++)result=result*double(i);
    return result;
    }
    void main (void)
    {long int i;
    float x;
    double sin;
    while(1)
    {clrscr();
    printf("Enter your angle(radian):");
    scanf("%f",&x);
    sin=0;
    for(i=0;i<50;i++)
    sin=sin+pow(x,2*i+1)*pow(-1,i)/fact(2*i+1);
    printf("\nsin%5.2f=%lf",x,sin);
    printf("\n\nDo you want to continue(y/n)?");
    if(getch()=='y')continue;
    break;
    }
    printf("\nGOOD LUCK!");
    getch();
    }


    برنامه فوق را اجرا كنيد(اشتباه در اين خط بود;(for(i=1;i<=n;i++)result=result*double(i)


    واگر جواب داد اين نكات را بخاطر بسپاريد:


    1-بدليل داشتن دو تابع سريعا" صعودي(توان و فاكتوريل) انتخاب نوع متغيرها مهم است ومتغيرهاي ساده مانند int سريعا" پر شده وجواب نمي دهد.(پيشنهاد مي شود مبحث انواع متغيرها را به دقت مطالعه بفرمائيد،البته فقط پيشنهاد مي شود)


    2- در c قبل از استفاده از هر تابع در يك بلوك، بايد آن تابع تعريف شود.همانطور كه براي استفاده از توابع كليدي بايد header مربوطه در بالاي برنامه قرارگيرد، تابع fact نيز قبل از استفاده در بلوك main بايدتعريف گردد.حال شما يا مي توانيد مانند من كل تابع را قبل از main بنويسيد ويا مانند خودتان اصل تابع را بعد از main بنويسيد ولي تابع را قبل از main تعريف نمائ.


    3- و سرانجام توچين نوشتن، اضافه كردن دستور پاك كردن screen ، اضافه كردن توضيحات لازم، اضافه سازي دستور نگه دارنده و ... 2 حسن دارد اولا" به ريبائي و شكيل بودن برنامه كمك مي كند و ثانيا" كسي راكه مستقيما" به برنامه شما ويا فايل اجرائي آن برمي خورد راهنمائي مي نمايد.


    موفق باشيد.



    این برنامه درست کار کرد ممنون.
    اما چند تا سوال و توضیح:
    1 چرا در همین دستور به جای این که در i ضرب بشه در double(i)ضرب شده؟
    2 در vb بعد while یک شرط می گذاشتیم اما این جا شما عدد یک گذاشتید این دستور چه معنی دارد؟
    3 در دستور sin%5.2f=%lf چرا از %f معمولی استفاده نکردید چه فرقی دارد ؟
    4 تابع fact رو چه طور می توان قبل از main تعریف کرد که بعد از main بلوک fact را قرار داد؟
    5 درباره ی آخرین نکته ای هم که گفتید حرف شما رو قبول دارم اما وقتی هنوز اصل برنامه درست در نمی یاد این جور توجه به ظاهر برنامه که قبول دارم لازمه در اولویت دوم قرار می گیره و گر نه من تو برنامه های vb به این نکته دقت می کردم اما الان تو c برنامه اول باید درست کار کنه بعد.

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

    پيش فرض

    خدمت Farnaz_Bahal گرامي عرض كنم كه:
    1-چون result يك متغير double است و i يك متغير int ،براي يكسان سازي نوع متغيرها اين عمل صورت پذيرفته است.
    2-اين هم ((while(1) ) يك شرط است تنها با اين تفاوت كه هميشه درست است.پس با اين عمل ما يك حلقه ائي ساختيم كه همواره شرطش درست است.حال براي خروح از آن چه كنيم؟ از دستورات continue و break استفاده كرده ايم.(توجه ضروري : در حلقه هاي همواره درست مانند اين،شرط خروج بسيار مهم است،چون اگر شرط بطور صحيح انتخاب نگردد، برنامه تا بي نهايت در loop باقي خواهد ماند!)
    3-f%، فورمتي بصورت *******.****... دارد .به بيان ديگر تعداد رقمهاي اعشاري كه نشان مي دهد، بيش از اندازه معمولي است و در صورتي كه عددي هم نباشد بجاي آن صفر قرار مي دهد.مثلا" اگر جواب 2.56 باشد بصورت 2.560000000 نشان مي دهد كه قبول كنيد شكيل نيست(من قبول كردم).5.2f % فورمت خاصي به عدد اعشاري شما مي دهد،بدين صورت كه 5 مجموع تعداد ارفام صحيح و اعشاري ومميز است و 2 تعداد ارقام پس از مميز را نشان مي دهددر واقع شكل كلي را به صورت **.** معين مي كند.
    4-خيلي ساده، تابع كامل را بعد از بلوك main مينويسيم و قبل از بلوك main اين خط را اضافه ميكنيم:

    double fact(int n);
    به علامت ; در پايان خط توجه شود.در واقع اسم تابع را نوشته با يك ; آنرا مي بنديم.
    5-صلاح مملكت خويش خسروان دانند ولي به نظر من از پايه رعايت نكات راحتتر است چون آدم عادت مي كند و سپس ترك آن مشكل است.در هر صورت موفق باشيد.



  8. #48
    اگه نباشه جاش خالی می مونه egoldfars's Avatar
    تاريخ عضويت
    Mar 2005
    پست ها
    205

    پيش فرض

    سلام
    اعداد تام به چه معنی هست و چه اعدادی هستند؟
    مثلا اعداد تام ا تا 1000 چه طوری به دست میاد؟
    راهنمایی کنید
    Last edited by egoldfars; 18-11-2007 at 23:10.

  9. #49
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2007
    پست ها
    205

    پيش فرض

    یه نگاه به اینجا بندازین [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] در مورد اعداد تام هست

  10. #50
    اگه نباشه جاش خالی می مونه egoldfars's Avatar
    تاريخ عضويت
    Mar 2005
    پست ها
    205

    پيش فرض

    دوستان سلام
    من می خوام ابتدایی ترین سوال ممکن رو بپرسم چون مبتدی هستم
    بین #c و ++C و vb کدوم رو برا یادگیری انتخاب کنم؟؟؟؟
    معیارم هم کمی سرگرم شدن و خیلی بیشتر آینده اون هست
    این سوالو تو تاپیک vb هم مطرح کردم
    ممنون میشم جواب من مبتدی رو هم بدید
    با سلام خدمت دوستم باید بگم اگر برای سرگرمی میخوای کار کنی VB چونکه یاد گیریش آسان تر هست اما اگر می خوای حرفه ای تو برنامه نویسی بیشی #c و ++C رو انتخاب کن چونکه اگر ++ C رو کامل بلد شی میتونی بادیگر زبانهای برنامه نویسی مثل PHP و JAVA و.... هم کار کنی چونکه این زبانها شبیه ++C هستند.میشه گفت C مادر تمام زبان هاست مثل انگلیسی که زبان بین المللیست.اینا نظر من هست نمیدونم ایا نظر اساتید با من یکی هست یا خیر چونکه من خودم 3هفته برنامه نویسی با C رو شروع کردم قبلا با VB کار میکردم.
    امیدوارم که موفق باشی ....................

Thread Information

Users Browsing this Thread

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

User Tag List

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

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