
ПаскальАВС Разработать программу построения графика функции на участке


Ответы на вопрос

graphABC;
const
W = 800; H = 500;
function F(x: real): real;
begin
F := x * x - x;
end;
var
x0, y0, x, y, xLeft, yLeft, xRight, yRight, n: integer;
a, b, fmin, fmax, x1, y1, mx, my, dx, dy, num: real;
i: byte;
s: string;
begin
SetWindowSize(W, H);
xLeft := 50;
yLeft := 50;
xRight := W - 50;
yRight := H - 50;
a := -2; b := 5; dx := 0.5;
fmin := -2; fmax := 5; dy := 0.5;
mx := (xRight - xLeft) / (b - a);
my := (yRight - yLeft) / (fmax - fmin);
x0 := trunc(abs(a) * mx) + xLeft;
y0 := yRight - trunc(abs(fmin) * my);
line(xLeft, y0, xRight + 10, y0);
line(x0, yLeft - 10, x0, yRight);
SetFontSize(12);
SetFontColor(clBlue);
TextOut(xRight + 20, y0 - 15, 'X');
TextOut(x0 - 10, yLeft - 30, 'Y');
SetFontSize(7);
SetFontColor(clRed);
n := round((b - a) / dx) + 1;
for i := 1 to n do
begin
num := a + (i - 1) * dx;
x := xLeft + trunc(mx * (num - a));
Line(x, y0 - 3, x, y0 + 3);
str(Num:0:1, s);
if abs(num) > 1E-15 then
TextOut(x - TextWidth(s) div 2, y0 + 10, s)
end;
n := round((fmax - fmin) / dy) + 1;
for i := 1 to n do
begin
num := fMin + (i - 1) * dy;
y := yRight - trunc(my * (num - fmin));
Line(x0 - 3, y, x0 + 3, y);
str(num:0:1, s);
if abs(num) > 1E-15 then
TextOut(x0 + 7, y - TextHeight(s) div 2, s)
end;
TextOut(x0 - 10, y0 + 10, '0');
x1 := a;
while x1 <= b do
begin
y1 := F(x1);
if ((x1 >= 1) and (x1 <= 2.5)) then
begin
x := x0 + round(x1 * mx);
y := y0 - round(y1 * my);
if (y >= yLeft) and (y <= yRight) then SetPixel(x, y, clBlue);
end;
x1 := x1 + 0.001
end
end.



Для построения графика функции на участке в PascalABC можно воспользоваться графическим модулем Graph. Давайте разработаем программу, которая будет строить график функции на определенном участке.
Первым шагом будет подключение модуля Graph:
``` uses Graph; ```
Далее нужно инициализировать графический режим:
``` var GraphDriver, GraphMode: SmallInt; begin GraphDriver := VGA; GraphMode := VGAHi; InitGraph(GraphDriver, GraphMode, ''); end. ```
Теперь, чтобы построить график функции, мы должны определить функцию самостоятельно. Допустим, мы хотим построить график функции y = x^2 на участке [-10, 10].
``` var x, y: Real; begin SetColor(White); SetLineStyle(SolidLn, 0, NormWidth); SetBkColor(Black);
for x := -10 to 10 do begin y := x * x; PutPixel(Round(x * 10) + GetMaxX div 2, GetMaxY div 2 - Round(y * 10)); end;
ReadLn; CloseGraph; end. ```
Мы установили цвет линии графика SetColor(White), задали сплошной стиль линии SetLineStyle(SolidLn, 0, NormWidth) и задали черный цвет заднего фона SetBkColor(Black).
Затем мы пробегаемся по каждому значению x на участке от -10 до 10 и вычисляем соответствующее значение y = x^2. Для каждой точки графика мы рисуем пиксель на экране с помощью функции PutPixel. Значения x и y масштабируются для отрисовки на экране, чтобы график был виден.
Наконец, мы ожидаем нажатия клавиши на клавиатуре и закрываем графический режим с помощью функции CloseGraph.
Это пример простой программы для построения графика функции на определенном участке в PascalABC. Вы можете модифицировать ее для своих нужд, определяя другие функции и изменяя участок построения.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili