Нужно перевести с 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;
}
}
}