Построить кривую синусоиду по уравнению - Turbo Pascal
Формулировка задачи:
x=a*t*t/(1+t*t)
y=a*t*t*t/(1+t*t),a>0,t E(от минус бесконечности до +бесконечности)
Решение задачи: «Построить кривую синусоиду по уравнению»
textual
Листинг программы
procedure TForm1.FormPaint(Sender: TObject); var x0,y0,x,y:integer; a,t:real; begin x0:=ClientWidth div 2; y0:=ClientHeight div 2; a:=120; t:=-2*pi; while t<=2*pi do begin if 1+t*t<>0 then begin x:=x0+round(a*t*t/(1+t*t)); y:=y0-round(a*t*t*t/(1+t*t)); Canvas.Pixels[x,y]:=clRed; end; t:=t+0.001; end; end;
Объяснение кода листинга программы
- В процедуре
FormPaint
объявлены переменныеx0
,y0
,x
,y
,a
,t
. Переменныеx0
,y0
представляют координаты центра прямоугольника, в котором будет построена синусоида. Переменнаяa
представляет амплитуду синусоиды, а переменнаяt
- угол поворота синусоиды относительно оси X. - Установлены начальные значения для переменной
t
равными -2*пи. - Запущен цикл
while t<=2*pi do
, который будет выполняться до тех пор, пока значение переменнойt
не станет равным 2*пи. - Внутри цикла проверяется условие
if 1+t*t<>0 then
. Если это условие истинно, то выполняется следующий блок кода. - Внутри блока кода вычисляются значения переменных
x
иy
как средние значения по осям X и Y синусоиды. - Затем с помощью команды
Canvas.Pixels[x,y]:=clRed;
рисуется точка на синусоиде красным цветом. - После завершения цикла значение переменной
t
увеличивается на 0.001. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д