Нужно перевести с pascal abc net на с# - C#

Узнай цену своей работы

Формулировка задачи:

Времени в обрез, а препод не принимает на паскале(( помогите пожалуйста
program pushka;
 
uses
  graphABC;
 
var
  
  x0, y0, x1, y1, x2, y2, t, r, f, k, b, u: real;
 
const
  M = 1000;
 
procedure qwe(x0, x1, f: real; var x2: real);
begin
  x2 := f * x1 * t * t - x0 + 2 * x1;
end;
 
procedure asd(y0, y1, f: real; var y2: real);
begin
  y2 := f * y1 * t * t - y0 + 2 * y1;
end;
 
procedure zxc(r: real; var f: real);
begin
  f := -k * M / (abs(r * r) * abs(r))
end;

begin
  setwindowsize(1000,800);
  setbrushcolor(clyellow);
  circle(250, 250, 30);
  x0 := 150;
  y0 := -200;
  b := 6 ;
  u := 0;
  k := 10;
  t := 0.5;
  x1 := x0 + b * t;
  y1 := y0 + u * t;
  r := sqrt((x1 * x1) + (y1 * y1));
  
  repeat
    zxc(r, f);
    qwe(x0, x1, f, x2);
    asd(y0, y1, f, y2);
    r := sqrt((x2 * x2) + (y2 * y2));
    
    setbrushcolor(clblue);
    Circle(round(x2 + 250), round(250 - y2), 10);
    sleep(10);
    ClearWindow;
    setbrushcolor(clyellow);
  circle(250, 250, 30);
    x0 := x1; x1 := x2;
    y0 := y1; y1 := y2; 
  until r<30
  
end.
вот я попробовала, но движения не происходит
namespace lab9
{
    public partial class Form1 : Form
    {
        double x0, y0, x1, y1, x2, y2, r, f, k, b, u;
        double t;
        const int M= 1000;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }
  void qwe(double x0, double x1, double f, double x2)
       {
        x2= f * x1 * t * t - x0 + 2 * x1;
        }

        void asd(double y0, double y1, double f, double y2)
        {
          y2= f* y1 * t* t - y0 + 2 * y1;
        }
 
        void zxc(double r, double f)
        {
            f = -k * M / (Math.Abs(r * r) * Math.Abs(r));
        }
 
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = panel1.CreateGraphics();
            SolidBrush br1 = new SolidBrush(Color.Yellow);
            g.FillEllipse(br1, 250, 250, 50, 50);
        x0= 150;
        y0= -200;
        b= 6;
        u= 0;
        k= 10;
        t= 0.5;
        x1= x0 + b * t;
        y1= y0 + u * t;
        r= Math.Sqrt((x1 * x1) + (y1 * y1));
            while (r<50)
                {
                zxc(r, f);
                qwe(x0, x1, f, x2);
                asd(y0, y1, f, y2);
                r= Math.Sqrt((x2 * x2) + (y2 * y2));
                SolidBrush br2 = new SolidBrush(Color.Blue);
                g.FillEllipse(br2, (float)Math.Round(x2+250), (float)Math.Round(250-y2), 20, 20);
                
                System.Threading.Thread.Sleep(10);
                g.Clear(Color.White);
                
                g.FillEllipse(br1, 250, 250, 50, 50);
            x0= x1; x1= x2;
            y0= y1; y1= y2;
            }
        }
    }
}

Решение задачи: «Нужно перевести с pascal abc net на с#»

textual
Листинг программы
        double x0, y0, x1, y1, x2, y2, r, f, k, b, u;
        double t;
        const int M = 1000;
 
        void qwe(double x0, double x1, double f)
        {
            x2 = f * x1 * t * t - x0 + 2 * x1;
        }
 
        void asd(double y0, double y1, double f)
        {
            y2 = f * y1 * t * t - y0 + 2 * y1;
        }
 
        void zxc(double r)
        {
            f = -k * M / (Math.Abs(r * r) * Math.Abs(r));
        }
 
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.FillEllipse(Brushes.Yellow, 250, 250, 50, 50);
            x0 = 150;
            y0 = -200;
            b = 6;
            u = 0;
            k = 10;
            t = 0.5;
            x1 = x0 + b * t;
            y1 = y0 + u * t;
            r = Math.Sqrt((x1 * x1) + (y1 * y1));
 
            while (r < 395)//Значение нужно уточнить
            {
                zxc(r);
                qwe(x0, x1, f);
                asd(y0, y1, f);
                r = Math.Sqrt((x2 * x2) + (y2 * y2));
 
                e.Graphics.FillEllipse(Brushes.Blue, (float)Math.Round(x2 + 250), (float)Math.Round(250 - y2), 20, 20);
 
                System.Threading.Thread.Sleep(10);
                e.Graphics.Clear(panel1.BackColor);
 
                e.Graphics.FillEllipse(Brushes.Yellow, 250, 250, 50, 50);
 
                x0 = x1; x1 = x2;
                y0 = y1; y1 = y2;
            }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5