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

نام تاپیک: کمک ارور این برنامه رو برام حل کنید

  1. #1

    کمک ارور این برنامه رو برام حل کنید

    سلام.کسی میتونه ارور این برنامه رو برام حل کنه.اگه سوالی در پیرامون برنامه خواستید در خدمتم.
    c-cpp.rar

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

    نقل قول: کمک ارور این برنامه رو برام حل کنید

    لطفا برنامه رو قبل از هر چیز از نظر ظاهر اصلاح کنید و مرتب تر در سایت قرار بدید.
    تمام برنامه ی شما در یک خط نوشته شده دوست گرامی!

  3. #3
    کاربر دائمی آواتار mohsensaghafi
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    و نپرسیم کجاییم. بو کنیم اطلسی تازه بیمارستان را
    پست
    338

    نقل قول: کمک ارور این برنامه رو برام حل کنید

    سلام دوست عزیز.
    اصلا کد قابل خوندن نیست.

  4. #4

    نقل قول: کمک ارور این برنامه رو برام حل کنید

    برای من که باز شده
    دوباره میزارم
    c-cpp.rar
    کافیه اونو با word باز کنی.حالا اگه بازم نشد.کافیه اینو یه کپی پیست کنید.بازم شرمنده
    #include <stdio.h>
    #include <math.h>

    #define DEG_TO_RAD 0.0174532925

    #define SIDE_DOWN_RIGHT 0
    #define CORNER_DOWN_DOWN 1
    #define SIDE_DOWN_DOWN 2
    #define CORNER_DOWN_LEFT 3
    #define SIDE_DOWN_LEFT 4
    #define CORNER_LEFT_LEFT 5
    #define SIDE_UP_LEFT 6
    #define CORNER_UP_LEFT 7
    #define SIDE_UP_UP 8
    #define CORNER_UP_RIGHT 9
    #define SIDE_UP_RIGHT 10
    #define CORNER_RIGHT_RIGHT 11

    #define MOVE_DOWN 0
    #define MOVE_DOWN_LEFT 1
    #define MOVE_UP_LEFT 2
    #define MOVE_UP 3
    #define MOVE_UP_RIGHT 4
    #define MOVE_DOWN_RIGHT 5

    int GetRingSize(int ring)
    {
    if(ring == 0) return 1;
    return ring * 6;
    }

    int GetRingOffset(int ring)
    {
    int offset = 0, i;
    for(i=0; i<ring; i++)
    offset += GetRingSize(i);
    return offset;
    }

    int GetRing(int pos)
    {
    int ring=0;;
    while( GetRingOffset(ring) < pos )
    ring++;
    return ring;
    }

    void SpiralTo2D(int pos, int *x, int *y)
    {
    int ring = GetRing(pos)-1;
    int step = pos - GetRingOffset(ring);
    int sector_size = 360 / GetRingSize(ring);
    int deg = (sector_size * step) - 240;
    *x = (int)(sin(deg*DEG_TO_RAD) * ring * 10.0);
    *y = (int)(cos(deg*DEG_TO_RAD) * ring * 10.0);
    }

    int GetRotation(int pos)
    {
    int ring = GetRing(pos);
    int size = GetRingSize(ring-1);
    int offset = GetRingOffset(ring-1);
    int sector = size / 6;
    int rotation = 0;
    int step = pos - offset - 1;
    int x, y;

    for(x=0; x<6; x++)
    {
    // Side
    for(y=0; y<sector-1; y++)
    if(step == (x*sector)+y)
    return rotation;
    rotation++;
    // Corner
    if(step == (x*sector)+y)
    return rotation;
    rotation++;
    }
    return -1;
    }


    int MoveToNextTile(int pos, int dir)
    {
    int rot = GetRotation(pos);

    if(pos == 1) return 2+dir;

    int ring = GetRing(pos)-1;
    int ring_size = GetRingSize(ring);
    int inner_size = GetRingSize(ring-1);
    int offset = GetRingOffset(ring);

    switch(rot)
    {
    case 0:
    switch(dir)
    {
    case MOVE_DOWN: return pos + ring_size + 1;
    case MOVE_DOWN_LEFT: return pos + 1;
    case MOVE_UP_LEFT: return pos - inner_size;
    case MOVE_UP: return (pos == offset+1)? pos-1: pos-inner_size-1;
    case MOVE_UP_RIGHT: return (pos == offset+1)? pos+ring_size-1: pos-1;
    case MOVE_DOWN_RIGHT: return pos + ring_size;
    default: return -1;
    }
    case 1:
    switch(dir)
    {
    case MOVE_DOWN: return pos + ring_size + 1;
    case MOVE_DOWN_LEFT: return pos + ring_size + 2;
    case MOVE_UP_LEFT: return pos + 1;
    case MOVE_UP: return (ring > 1)? pos - inner_size -1: 1;
    case MOVE_UP_RIGHT: return (ring > 1)? pos - 1: 7;
    case MOVE_DOWN_RIGHT: return pos + ring_size;
    default: return -1;
    }
    case 2:
    switch(dir)
    {
    case MOVE_DOWN: return pos + ring_size + 1;
    case MOVE_DOWN_LEFT: return pos + ring_size + 2;
    case MOVE_UP_LEFT: return pos + 1;
    case MOVE_UP: return pos - inner_size -1;
    case MOVE_UP_RIGHT: return pos - inner_size -2;
    case MOVE_DOWN_RIGHT: return pos-1;
    default: return -1;
    }
    case 3:
    switch(dir)
    {
    case MOVE_DOWN: return pos + ring_size + 1;
    case MOVE_DOWN_LEFT: return pos + ring_size + 2;
    case MOVE_UP_LEFT: return pos + ring_size + 3;
    case MOVE_UP: return pos + 1;
    case MOVE_UP_RIGHT: return (pos == 3)? 1: pos - inner_size - 2;
    case MOVE_DOWN_RIGHT: return pos - 1;
    default: return -1;
    }
    case 4:
    switch(dir)
    {
    case MOVE_DOWN: return pos - 1;
    case MOVE_DOWN_LEFT: return pos + ring_size + 2;
    case MOVE_UP_LEFT: return pos + ring_size + 3;
    case MOVE_UP: return pos + 1;
    case MOVE_UP_RIGHT: return pos - inner_size - 2;
    case MOVE_DOWN_RIGHT: return pos - inner_size - 3;
    default: return -1;
    }
    case 5:
    switch(dir)
    {
    case MOVE_DOWN: return pos - 1;
    case MOVE_DOWN_LEFT: return pos + ring_size + 2;
    case MOVE_UP_LEFT: return pos + ring_size + 3;
    case MOVE_UP: return pos + ring_size + 4;
    case MOVE_UP_RIGHT: return pos + 1;
    case MOVE_DOWN_RIGHT: return (pos == 4)? 1: pos - inner_size -3;
    default: return -1;
    }
    case 6:
    switch(dir)
    {
    case MOVE_DOWN: return pos - inner_size - 4;
    case MOVE_DOWN_LEFT: return pos - 1;
    case MOVE_UP_LEFT: return pos + ring_size + 3;
    case MOVE_UP: return pos + ring_size + 4;
    case MOVE_UP_RIGHT: return pos + 1;
    case MOVE_DOWN_RIGHT: return pos - inner_size - 3;
    default: return -1;
    }
    case 7:
    switch(dir)
    {
    case MOVE_DOWN: return (pos == 5)? 1: pos - inner_size - 4;
    case MOVE_DOWN_LEFT: return pos - 1;
    case MOVE_UP_LEFT: return pos + ring_size + 3;
    case MOVE_UP: return pos + ring_size + 4;
    case MOVE_UP_RIGHT: return pos + ring_size + 5;
    case MOVE_DOWN_RIGHT: return pos + 1;
    default: return -1;
    }
    case 8:
    switch(dir)
    {
    case MOVE_DOWN: return pos - inner_size - 4;
    case MOVE_DOWN_LEFT: return pos - inner_size - 5;
    case MOVE_UP_LEFT: return pos - 1;
    case MOVE_UP: return pos + ring_size + 4;
    case MOVE_UP_RIGHT: return pos + ring_size + 5;
    case MOVE_DOWN_RIGHT: return pos + 1;
    default: return -1;
    }
    case 9:
    switch(dir)
    {
    case MOVE_DOWN: return pos + 1;
    case MOVE_DOWN_LEFT: return (pos == 6)? 1: pos - inner_size - 5;
    case MOVE_UP_LEFT: return pos - 1;
    case MOVE_UP: return pos + ring_size + 4;
    case MOVE_UP_RIGHT: return pos + ring_size + 5;
    case MOVE_DOWN_RIGHT: return pos + ring_size + 6;
    default: return -1;
    }
    case 10:
    switch(dir)
    {
    case MOVE_DOWN: return pos + 1;
    case MOVE_DOWN_LEFT: return pos - inner_size - 5;
    case MOVE_UP_LEFT: return pos - inner_size - 6;
    case MOVE_UP: return pos -1;
    case MOVE_UP_RIGHT: return pos + ring_size + 5;
    case MOVE_DOWN_RIGHT: return pos + ring_size + 6;
    default: return -1;
    }
    case 11:
    switch(dir)
    {
    case MOVE_DOWN: return pos + 1;
    case MOVE_DOWN_LEFT: return offset + 1;
    case MOVE_UP_LEFT: return (pos == 7)? 1: pos - inner_size - 6;
    case MOVE_UP: return pos - 1;
    case MOVE_UP_RIGHT: return pos + ring_size + 5;
    case MOVE_DOWN_RIGHT: return pos + ring_size + 6;
    default: return -1;
    }
    default: return -1;
    }
    }

    // Gets next step
    int GetNextTile(int location, int target)
    {
    int i;
    for(i=0; i<6; i++)
    if(MoveToNextTile(location, i) == target)
    return MoveToNextTile(location, i);

    int l_x, l_y, t_x, t_y; // Location and target co-ords
    SpiralTo2D(location, &l_x, &l_y);
    SpiralTo2D(target, &t_x, &t_y);

    if(l_x == t_x) // Move up or down only
    if(l_y < t_y)
    return MoveToNextTile(location, MOVE_UP);
    else
    return MoveToNextTile(location, MOVE_DOWN);
    else if(l_x > t_x)// Move left
    if(l_y > t_y)
    return MoveToNextTile(location, MOVE_DOWN_LEFT);
    else
    return MoveToNextTile(location, MOVE_UP_LEFT);
    else //Move Right
    if(l_y > t_y)
    return MoveToNextTile(location, MOVE_DOWN_RIGHT);
    else
    return MoveToNextTile(location, MOVE_UP_RIGHT);

    }

    int MoveToTarget(int origin, int destination)
    {
    int location = origin;
    int steps = 0;
    printf("%i\n", location);
    while(location != destination)
    {
    location = GetNextTile(location, destination);
    printf("%i\n", location);
    if((steps++) > 1000000) return -1;
    }
    printf("Move took %i steps\n", steps);
    return 0;
    }


    int main()
    {
    int pos, target;
    printf("Enter location to move from: ");
    scanf("%i", &pos);
    printf("Enter location to move to: ");
    scanf("%i", &target);
    MoveToTarget(pos, target);
    getchar();
    getchar();
    return 0;
    }

  5. #5
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    نقل قول: کمک ارور این برنامه رو برام حل کنید

    خوب این شد یک سورس مرتب.
    من برنامه رو کامپایل کردم.مشکلی نداشت!
    اجراشم کردم.
    شما دقیقا با چه خطایی مواجه می شی؟شاید ایراد از کامپایلرتون باشه!

  6. #6

    نقل قول: کمک ارور این برنامه رو برام حل کنید

    اقا دمت گرم پس چرا روی pc من اجرا نمیشه.من از برنامه++ turbo c استفاده میکنم.یه سوال داشتم برنامه ورودی از شما چی میخاد(باید 2عدد بگیره و یه عدد خروجی بده).سوال 2 هم اینه که شما لینک دانلود برنامه c رو ندارید؟ توی این عکس خطا هارو نشون دادم.ممنون که به فکر مایی

  7. #7
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    نقل قول: کمک ارور این برنامه رو برام حل کنید

    من از کامپایلر Borland C++‎ v 5.02 استفاده کردم.
    توربو سی خیلی مشکلات بی خود داره و ایرادات بی هوده می گیره.بهتون توصیه می کنم از توربو استفاده نکنید.

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

    نقل قول: کمک ارور این برنامه رو برام حل کنید

    براساس این عکس باید بگم که نمیدونم چرا پسوند فایلتون HTM هست ؟
    آفرین.انسان تیز بینی هستید.
    به این نکته اصلا توجه نکردم.

  9. #9

    نقل قول: کمک ارور این برنامه رو برام حل کنید

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

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

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