Построение графика функции - Pascal ABC (14805)
Формулировка задачи:
Помогите построить график функции x*(x-1)*(x-1)*(x-1)*(x-1). Значения функции на картинке.
Буду очень благодарен.
Решение задачи: «Построение графика функции»
textual
Листинг программы
Program Grafik; Uses CRT, GRAPHABC; const kat='c:\Programs\Pascal\BGI'; var g : string; j,yo,r,q,v,w : integer; Ymax,Ymin,Xmax,x,m,h : real; Function F(x:real):real; Begin F:=x*(x-1)*(x-1)*(x-1)*(x-1); End; Begin Ymax:=66; Ymin:=0; Xmax:=PI; SetWindowSize(640,480); SetFontSize(6); m:=460/(Ymax-Ymin); yo:=8+Round(m*Ymax); r:=yo-Trunc(yo/23)*23; Line(39,yo,639,yo); textOut(632,yo-3,'>'); Line(39,468,39,0); textOut(36,0,'^'); Line(39,468,639,468); for q:=0 to Trunc((468-r)/23) do begin for j:=1 to 20 do Putpixel(39+30*j,r+23*q,14); Str((yo-r-23*q)/m:5:2,g); if yo=(r+23*q) then g:=' 0'; TextOut(0,r+23*q-3,g); end; TextOut(39,472,'0'); for q:=1 to 10 do begin Str(q*Xmax/10:4:2,g); TextOut(8+60*q,472,g); TextOut(36+60*q,465,'+'); end; h:=Xmax/600; x:=0; SetPencolor(clYellow); for j:=1 to 600 do begin Line (j+38,yo-Round(F(x)*m),j+39,yo-Round(F(x+h)*m)); x:=x+h; // Delay(500); end; g:=Readkey; End.
Объяснение кода листинга программы
- Создание программы Grafik с использованием библиотек CRT и GRAPHABC.
- Объявление переменных: g (строка), j, yo, r, q, v, w (целые числа), Ymax, Ymin, Xmax, x, m, h (числа с плавающей запятой).
- Определение функции F(x), которая вычисляет значение функции для переданного аргумента x.
- Начальная установка размеров окна и шрифта.
- Вычисление значения m как 460/(Ymax-Ymin).
- Вычисление значения yo как 8+Round(m*Ymax).
- Вычисление значения r как yo-Trunc(yo/23)*23.
- Отрисовка линии от 39 до 639 по оси Y, от 0 до 468 по оси X, и текста
>
. - Отрисовка линии от 39 до 639 по оси Y, от 0 до 0 по оси X, и текста
^
. - Отрисовка линии от 39 до 639 по оси Y, от 468 до 468 по оси X.
- Цикл for q:=0 до Trunc((468-r)/23) do:
- Отрисовка 20 прямоугольников на оси Y от r+23q до r+23q.
- Вывод значения переменной g с шагом 10 для каждого прямоугольника.
- Если значение переменной yo равно (r+23*q), то вывести пробел.
- Вывод текста
0
на оси X, где должен быть прямоугольник.
- Цикл for q:=1 до 10 do:
- Вывод значения Xmax/10 с шагом 10 для каждого q.
- Вывод текста
+
, где должна быть точка.
- Вычисление значения h как Xmax/600.
- Вычисление значения x как 0.
- Установка цвета пера на желтый.
- Цикл for j:=1 до 600 do:
- Отрисовка линии от j+38 до j+39 по оси Y, от j+38 до j+39 по оси X.
- Вычисление значения F(x) и F(x+h) и выравнивание линий.
- Увеличение значения x на h.
- Получение ввода с клавиатуры и завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д