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

نام تاپیک: راهنمايي در مورد برنامه ي فاكتوريل.

  1. #1
    کاربر جدید آواتار آزاد87
    تاریخ عضویت
    آبان 1387
    محل زندگی
    در نيم كره ي شمالي
    پست
    24

    راهنمايي در مورد برنامه ي فاكتوريل.

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

    #include "stdafx.h"
    #include <conio.h>
    #include <iostream>

    using namespace std;
    using namespace System;

    void main()
    {
    int a[500],b[500],x,i,c,r=0,t=1,p=499,d,s,z,w=0;
    cout<<"Please Enter a number (For 0-100): ";
    L1:
    x=7;
    //cin>>x;
    if (x>100)
    {
    if (r==3)
    {
    cout<<"I'm cannot to answer you.Please enter any key to Exit.";
    _getch();
    return ;
    }
    cout<<"Your number out of a reange Please Enter again : ";
    r++;
    goto L1;
    }
    if (x==0)
    {
    cout<<"Your fact is : "<<1;
    _getch();
    return;
    }
    for (c=0;c<=501;C++‎)
    a[c]=1;
    for (c=0;c<=501;C++‎)
    b[c]=0;
    for (i=1;i<=x;i++)
    {
    s=0;
    for (r=499,z=499;p<=z;z--)
    {
    t=r-1;
    a[r]*=i;
    for (;10<=a[r];)
    {
    if (a[r]==10)
    {
    a[r]/=10;
    r--;
    s=1;
    w++;
    }
    else
    {
    d=a[r]%10;
    a[t]+=(d-1);
    a[r]/=10;
    p--;
    r--;
    z--;
    s=1;
    w++;
    }
    }
    if (s==0)
    r--;
    }
    for (r=500;0<=r;r--)
    if (b[r]==1)
    {
    a[r]++;
    b[r]=0;
    }
    }
    cout<<endl<<"Your Fact is : ";
    for (r=0;r<=p;r++)
    {
    cout<<a[r];
    }
    _getch();
    }
    البته اگر برنامه ي ديگري داريد كه بهتر بود بازم بگذاريد.البته اگر شد ايراد همين برنامه را بگيريد.
    اگر امكان داشت اشكال انگليسي نگيريد .
    پيشاپيش ممنون.

  2. #2
    کاربر دائمی آواتار SamaPic
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد مقدس
    پست
    329

    نقل قول: راهنمايي در مورد برنامه ي فاكتوريل.

    با سلام خدمت دوست عزيز.
    اين برنامه اي كه شما گذاشتين و اين جوري كه گذاشتين كسي جواب نمي ده چون خيلي طول مي كشه به هر حال من برنامه ي زير را گذاشتم شايد بتوانيد راه خود را اصلاح كنيد.


    #include "stdafx.h"
    #include<iostream>
    #include<conio.h>
    using namespace System;
    using namespace std;

    void main()
    {
    int a[500],i,f,c=0,x,r=0,t=1;
    char ans;
    while (t)
    {
    if (r==1)
    cout<<endl;
    cout<<"Please Enter a number(0-100) :";
    L2:
    cin>>x;
    if (x==0)
    {
    cout<<"Your Fcat is 1 ."<<endl;
    goto L3;
    }
    if (x>100)
    {
    if (r==3)
    {
    cout<<"I can't answer you Please any key to exit.";
    _getch();
    return;
    }
    cout<<"The number out of the range.Please Enter again : ";
    r++;
    goto L2;
    }
    a[0]=0;
    for (i=2;i<500;i++)
    a[i]=0;
    a[1]=1;
    for (f=1;f<=x;f++)
    {
    for (i=1;i<500;i++)
    a[i]=f*a[i];
    for (i=1;i<500;i++)
    {
    if (a[i]>9)
    {
    a[i+1]=a[i+1]+a[i]/10;
    / a[i]=a[i]&&percnt;10;
    }
    }
    }
    for (i=1499;i>=1;i--)
    {
    if(a[i]!=0)
    {
    c=i;
    break;
    }
    }
    cout<<"Fct is : ";
    for(i=c;i>=1;i--)
    cout<<a[i];
    L3:
    cout<<"Do you want to countinue (Y/N) ?";
    r=0;
    L1:
    if (r==3)
    {
    cout<<"I can't answer you Please any key to exit.";
    _getch();
    return;
    }

    cin>>ans;
    switch (ans)
    {
    case ('Y'):
    t=1;
    break;
    case ('N'):
    t=0;
    break;
    case ('y'):
    t=1;
    break;
    case ('n'):
    t=0;
    break;
    default:
    cout<<"Charecter entery not avaibile.Please Enter agin : ";
    r++;
    goto L1;
    }
    }
    }

    خدانگهدا شما.

  3. #3
    کاربر دائمی آواتار deopen
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    افکارم.
    سن
    33
    پست
    150

    نقل قول: راهنمايي در مورد برنامه ي فاكتوريل.

    متاسفانه من کد شما رو مطالعه نکردم, و بسیار تعجب کردم, برنامه ی فاکتوریل چند خط بیشتر نیست , شاید منظور شما فورمول پیچیده تریه .

    برنامه ساده فاکتوریل :


    #include
    <iostream>
    using std::cin;
    using std::cout;
    using std::endl;
    int main() {
    int num=0;
    cout<<
    "Enter I-num : ";cin>>num;

    int i=num;
    while(i>2) {
    i--;
    num*=i;
    }
    cout<<
    "fact : "<<num;
    cin>>num;
    return 0;
    }

  4. #4
    کاربر دائمی آواتار SamaPic
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد مقدس
    پست
    329

    نقل قول: راهنمايي در مورد برنامه ي فاكتوريل.

    با سلام خدمت دوست عزيز.
    اين برنامه فاكتوريل اعداد 2 رقمي است و با برنامه ي ساده ي شما حل نمي شود چرا كه int داراي بازه ي كوچكي است (حدود 32 هزار) و اگر از اين مفدار بيشتر شود بطور حتم پاسخ صحيح نخواهد دارد .
    با استفاده از long و unsiged هم فقط مي توان تا فاكتوريل 25 پيش رفت و مابقي مي شود همين.
    بنابراين بايد بوسيله ي آرايه ها كاري كرد كارستان مطابق نمونه.
    اميدوارم قانع شده باشيد .
    خدانگهدار.

  5. #5
    کاربر جدید آواتار آزاد87
    تاریخ عضویت
    آبان 1387
    محل زندگی
    در نيم كره ي شمالي
    پست
    24

    نقل قول: راهنمايي در مورد برنامه ي فاكتوريل.

    سلام به دوست عزيزم Samapic.
    من اين كه شما نوشتي را نمي خوام.
    من مي خوام برنامه ي خودم به گونه اي اصلاح بشه لطفا كمكم كنيد چون خيلي عجله دارم.
    حالا نشد كامل مشكلش برطرف بشه نشد يكم كه مي شه خطا هاش رو كمتر كرد.

  6. #6
    کاربر دائمی آواتار SamaPic
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد مقدس
    پست
    329

    نقل قول: راهنمايي در مورد برنامه ي فاكتوريل.

    با سلام خدمت دوست عزيز.
    اين كار نياز مند وقت و حوصله ي ف فراوان است . كسي انقدر بي كار نيست كه براي شما چنين كاري انجام دهد.
    از اينكه iostream بدون .h گذاشتيد معلوم است كه از ويژال استفاده مي كنيد.شما مي توانيد برنامه را خط به خط اجرا كنيد تا ايراد آن آشكار شود.
    شما مي توانيد از برنامه ي بنده برنامه خود را اصلاح كنيد.
    خدانگهدار .

  7. #7

    نقل قول: راهنمايي در مورد برنامه ي فاكتوريل.

    آزاد جان،
    به عنوان یه توصیه واسه برنامه هات ، وقتی میخوای متغییری تعریف کنی، اسمش رو چیزی انتخاب کن که هرکس با دیدن اون متغیر بدونه وظیفه اون متغیر چیه.
    استفاده از p , r, s, w ناشیانه است.

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

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