Построение sin(x) через vcl - Pascal ABC
Формулировка задачи:
Добрый день. Прошу помочь, требуется, чтобы к программе был подключен модуль vcl, в котором создана форма и в нее вводится количество. От этого числа(которое введено), программа рисует столько графиков y=sin(x) белого цвета.
И, если это возможно, то ограничить высоту для построения от 0 до 150 по y(вниз).
Решение задачи: «Построение sin(x) через vcl»
textual
Листинг программы
- uses vcl;
- var
- MainForm: Form;
- L:TextLabel;
- E:Edit;
- B1,B2: Button;
- P:PaintBox;
- procedure B1Click;
- var x,y,mx,my:real;
- n,i,x0,y0:integer;
- begin
- n:=strtoint(E.Text);
- mx:=10;
- my:=20;
- for i:=1 to n do
- begin
- x0:=P.width div 2-200+random(401);
- y0:=45+random(51);
- x:=-pi;
- P.Canvas.Pen.Color:=clWhite;
- while x<=pi do
- begin
- if x=-pi then P.Canvas.MoveTo(x0+round(x*mx),y0-round(sin(x)*my))
- else P.Canvas.LineTo(x0+round(x*mx),y0-round(sin(x)*my));
- x:=x+0.01;
- end;
- end;
- end;
- procedure B2Click;
- begin
- MainForm.Close;
- end;
- begin
- randomize;
- MainForm:=Form.Create(Screen.Width div 2-250,Screen.Height div 2-250,500,500);
- MainForm.Caption:='SIN';
- L:=TextLabel.Create(20,435,30,25);
- L.Caption:='N=';
- E:=Edit.Create(50,430,100,25);
- B1:=Button.Create(200,430,100,25);
- B1.Caption:='ГЌГ*ðèñîâГ*ГІГј';
- B1.OnClick:=B1Click;
- B2:=Button.Create(350,430,100,25);
- B2.Caption:='Âûõîä';
- B2.OnClick:=B2Click;
- P:=PaintBox.Create(20,20,450,400);
- P.Canvas.Brush.Color:=clBlue;
- P.Canvas.rectangle(0,0,P.width,P.height);
- end.
Объяснение кода листинга программы
- Создается форма с именем MainForm.
- Создается метка TextLabel и устанавливается ее положение и размер.
- Создается Edit с именем E.
- Создаются две кнопки B1 и B2 с различными названиями и устанавливаются их положение и размер.
- Устанавливается обработчик события для кнопки B1Click.
- Внутри обработчика события B1Click создаются переменные x, y, mx и my типа real.
- Создается цикл for, который выполняется n раз (n - это значение, введенное в Edit).
- Внутри цикла создаются случайные координаты x0 и y0 типа integer.
- Вычисляется значение x как -π.
- В цикле while x <= π выполняется следующее:
- Если x равно -π, то перемещается курсор к точке (x0 + round(xmx), y0 - round(sin(x)my)).
- Иначе, рисуется линия от точки (x0 + round(xmx), y0 - round(sin(x)my)) до текущей точки.
- Значение x увеличивается на 0.01.
- После завершения цикла while, значение x становится больше π, поэтому цикл завершается.
- Устанавливается обработчик события для кнопки B2Click.
- Форма закрывается при нажатии на кнопку B2Click.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д