Построение 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д