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

نام تاپیک: تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎

  1. #1

    Question تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎

    سلام
    من با C#‎‎‎ اشنایی ندارم و میخوام این الگوریتم و تابع بازگشتی رو به صورت برنامه در C#‎‎‎ اجرا کنم ولی نمیدونم چطوری هست ممنون میشم راهنمایی کنید
    این الگوریتم 4 همبند برای پر کردن و رنگ کردن پیکسل هاس

    bf4(int x,int y,int fc ,int bc)

    {
    int ic;
    Getpixel(x,y,ic);
    if(ic!=bc)&&(ic!=fc))
    {
    Setpixel(x,y,fc)
    bf4(x+1,y,fc,bc)
    bf4(x-1,y,fc,bc)
    bf4(x,y+1,fc,bc)
    bf4(x,y-1,fc,bc)
    }

    }










    fc =fill color
    bc=border color
    ic=interior color
    این باید در محیط Form application بنویسیم یا consol application?

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1390
    محل زندگی
    قم
    پست
    39

    نقل قول: تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎

    این کدی که نوشتی تفاوت خاصی با کدهای سی شارپ نداره به غیر اینکه موقع تعریف تابع bf4 باید اولش public void رو اضافه کنی و آخر کدهایی که توی if نوشتی هم حتما سیمیکلون وجود داشته باشه
    جدا از این حرفا 2 تا تابع هم داری که فقط اسمشون اومده Getpixel و Setpixel

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

  3. #3

    نقل قول: تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎‎

    الان این یه برنامه دیگه هست که تابع داره :

      private void pictureBox1_Click(object sender, EventArgs e)
    {
    int xc = 100, yc = 100, r = 30;
    int x = 0, y = r, p = 1 - r;
    Bitmap bmp1 = new Bitmap(150, 150);
    bmp1.SetPixel(x, y, Color.Red);
    while(x<y)
    {
    x++;
    if(p<0)
    p=p+2*x+1;
    else
    {
    --y;
    p=p+2*(x-y)+1;
    plot8pixel(xc, yc, x, Color.Blue);
    }
    }
    }
    public void plot8pixel(int xc,int yc,int x,int y,int color)
    {
    Bitmap bmp1 = new Bitmap(150, 150);
    bmp1.SetPixel(xc + x, yc + y, Color.Red);
    bmp1.SetPixel(xc + x, yc - y, Color.Red);
    bmp1.SetPixel(xc - x, yc + y, Color.Red);
    bmp1.SetPixel(xc - x, yc - y, Color.Red);
    bmp1.SetPixel(xc + y, yc + x, Color.Red);
    bmp1.SetPixel(xc + y, yc - x, Color.Red);
    bmp1.SetPixel(xc - y, yc + x, Color.Red);
    bmp1.SetPixel(xc - y, yc - x, Color.Red);
    pictureBox1.Image = bmp1;
    }

    }

    }

    مشکلش چیه ؟
    به جای color تو فراخوانی تابع چی باید گذاشت تو C#‎ ?

  4. #4

    نقل قول: تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎

          private void button1_Click(object sender, EventArgs e)
    {
    int xc = 100, yc = 100, r = 30;
    int x = 0, y = r, p = 1 - r;
    Bitmap bmp1 = new Bitmap(150, 150);
    bmp1.SetPixel(x, y, Color.Red);
    while (x < y)
    {
    x++;
    if (p < 0)
    p = p + 2 * x + 1;
    else
    {
    --y;
    p = p + 2 * (x - y) + 1;
    }
    bmp1.SetPixel(xc + x, yc + y, Color.Red);
    bmp1.SetPixel(xc + x, yc - y, Color.Red);
    bmp1.SetPixel(xc - x, yc + y, Color.Red);
    bmp1.SetPixel(xc - x, yc - y, Color.Red);
    bmp1.SetPixel(xc + y, yc + x, Color.Red);
    bmp1.SetPixel(xc + y, yc - x, Color.Red);
    bmp1.SetPixel(xc - y, yc + x, Color.Red);
    bmp1.SetPixel(xc - y, yc - x, Color.Red);
    pictureBox1.Image = bmp1;
    }

    }

    الان این همون برنامه بالا بدون تابع هست ولی تابع تبدیل میکنم نمیشه

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1390
    محل زندگی
    قم
    پست
    39

    نقل قول: تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎

    اگه قراره فقط از یه رنگ استفاده بشه قسمت توی تعریف تابع و فراخوانیش نیازی به color نیست:
    public void plot8pixel(int xc,int yc,int x,int y)

  6. #6

    نقل قول: تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎

    نقل قول نوشته شده توسط mofid002006@gmail.com مشاهده تاپیک
    اگه قراره فقط از یه رنگ استفاده بشه قسمت توی تعریف تابع و فراخوانیش نیازی به color نیست:
    public void plot8pixel(int xc,int yc,int x,int y)
    همین کارم میکنم برنامه ارور نداره ولی خروجی برنامه اشکال داره و فقط 4 پیکسل رسم میکنه در حالی که بدون تابع دایره رسم میشه
    اگر امکانش هست ممنون میشم خودتون برنامه رو اجرا کنید ببینید مشکلش چیه

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1390
    محل زندگی
    قم
    پست
    39

    نقل قول: تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎

    کد زیر رو نگاه کن، تغییرات رو ببین خروجی رو هم ببین :


    Bitmap bmp1 = new Bitmap(150, 150);
    public void plot8pixel(int xc, int yc, int x, int y)
    {
    bmp1.SetPixel(xc + x, yc + y, Color.Red);
    bmp1.SetPixel(xc + x, yc - y, Color.Red);
    bmp1.SetPixel(xc - x, yc + y, Color.Red);
    bmp1.SetPixel(xc - x, yc - y, Color.Red);
    bmp1.SetPixel(xc + y, yc + x, Color.Red);
    bmp1.SetPixel(xc + y, yc - x, Color.Red);
    bmp1.SetPixel(xc - y, yc + x, Color.Red);
    bmp1.SetPixel(xc - y, yc - x, Color.Red);
    pictureBox1.Image = bmp1;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    int xc = 100, yc = 100, r = 30;
    int x = 0, y = r, p = 1 - r;
    bmp1.SetPixel(x, y, Color.Red);
    while (x < y)
    {
    x++;
    if (p < 0)
    p = p + 2 * x + 1;
    else
    {
    --y;
    p = p + 2 * (x - y) + 1;
    }
    plot8pixel(xc, yc, x, y);
    }
    }

  8. #8

    نقل قول: تبدیل این الگوریتم بازگشتی به برنامه ای قابل اجرا در C#‎‎

    در مورد الگوریتم اول که گفتید مبهمه من دو تا دیگه پیدا کردم از سایت های خارجی که اونا هم c رو پیدا کرده بودن و دنبال C#‎‎‎‎‎ میگشتن :
    http://social.msdn.microsoft.com/For...7-83a8f7dff7f6


    1.void boundaryfill4 ( int x,int y, int fillcolor, int bordercolor)
    2.{
    3.int interiorcolor;
    4.getpixel ( x, y ,interiorcolor);
    5.if (( interiorcolor!= bordercolor)&&( interior!= fillcolor))
    6.
    7. { setcolor(fillcolor);
    8. setpixel(x,y);
    9.
    10. boundaryfill4(x+1,y,fillcolor,brodercolor);
    11. boundaryfill4(x-1,y,fillcolor,brodercolor);
    12.
    13. boundaryfill4(x,y+1,fillcolor,brodercolor);
    14.
    15. boundaryfill4(x,y-1,fillcolor,brodercolor);
    16. }
    17.}

تاپیک های مشابه

  1. مقاله: برنامه ضرب دو عدد بزرگ با الگوریتم بازگشتی
    نوشته شده توسط dousti_design در بخش C#‎‎
    پاسخ: 8
    آخرین پست: سه شنبه 01 بهمن 1392, 23:09 عصر
  2. تبدیل این برنامه VB6 به vb.net
    نوشته شده توسط star_star در بخش VB.NET
    پاسخ: 3
    آخرین پست: چهارشنبه 14 تیر 1391, 15:41 عصر
  3. کدام زبان برنامه نویسی بدون نیاز به هیچ برنامه ای قابل اجرا می باشد ؟
    نوشته شده توسط sa_ostad در بخش مباحث و مقالات فراگیر مهندسی نرم افزار
    پاسخ: 9
    آخرین پست: پنج شنبه 02 مهر 1388, 18:36 عصر
  4. تبدیل این کوئری از SQL-Server به زبان قابل فهم واسه Access
    نوشته شده توسط Developer Programmer در بخش SQL Server
    پاسخ: 8
    آخرین پست: پنج شنبه 06 دی 1386, 17:08 عصر
  5. نحوه تبدیل یک رشته به فرمان قابل اجرا در برنامه دلفی
    نوشته شده توسط masood1350 در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: یک شنبه 02 اسفند 1383, 16:18 عصر

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

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