Ребят!Подалуйста составьте программку для построения любого графика в PascalABC(ну там y=x

Ребят!Подалуйста составьте программку для построения хоть какого графика в PascalABC(ну там y=x в квадрате,или y=x в кубе.И сходственные).Очень вас прошу.

Задать свой вопрос
Лещеня Злата
https://znanija.com/task/29235227https://znanija.com/task/28568509
1 ответ

uses

 graphABC; //Подключаем графический модуль

const

 W = 800; H = 500;//Размеры графического окна

function F(x: real): real;

begin

 F := (x + 1) * (x - 2) * (x - 3); //Функция

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 и b обязано нацело делится на dx:

 a := -2; b := 6; dx := 0.5;

 //Интервал по Y; fmin и fmax должно нацело делится на dy:

 fmin := -10; fmax := 20; dy := 2;

 //Устанавливаем масштаб:

 mx := (xRight - xLeft) / (b - a); //масштаб по Х

 my := (yRight - yLeft) / (fmax - fmin); //масштаб по Y

 //начало координат:

 x0 := trunc(абс(a) * mx) + xLeft;

 y0 := yRight - trunc(abs(fmin) * my);

 //Живописуем оси координат:

 line(xLeft, y0, xRight + 10, y0); //ось ОХ

 line(x0, yLeft - 10, x0, yRight); //ось ОY

 SetFontSize(12); //Размер шрифта

 SetFontColor(clBlue); //Цвет шрифта

 TextOut(xRight + 20, y0 - 15, 'X'); //Подписываем ось OX

 TextOut(x0 - 10, yLeft - 30, 'Y'); //Подписываем ось OY

 SetFontSize(8); //Размер шрифта

 SetFontColor(clRed); //Цвет шрифта

  Зарубки по оси OX:

 n := round((b - a) / dx) + 1; //количество засечек по ОХ

 for i := 1 to n do

 begin

   num := a + (i - 1) * dx; //Координата на оси ОХ

   x := xLeft + trunc(mx * (num - a)); //Координата num в окне

   Line(x, y0 - 3, x, y0 + 3); //живописуем засечки на оси OX

   str(Num:0:1, s);

   if абс(num) gt; 1E-15 then //Исключаем 0 на оси OX

     TextOut(x - TextWidth(s) div 2, y0 + 10, s)

 end;

  Зарубки на оси OY:

 n := round((fmax - fmin) / dy) + 1; //количество засечек по ОY

 for i := 1 to n do

 begin

   num := fMin + (i - 1) * dy; //Координата на оси ОY

   y := yRight - trunc(my * (num - fmin));

   Line(x0 - 3, y, x0 + 3, y); //живописуем засечки на оси Oy

   str(num:0:0, s);

   if абс(num) gt; 1E-15 then //Исключаем 0 на оси OY

     TextOut(x0 + 7, y - TextHeight(s) div 2, s)

 end;

 TextOut(x0 - 10, y0 + 10, '0'); //Нулевая точка

  График функции строим по точкам:

 x1 := a; //Изначальное значение довода

 while x1 lt;= b do

 begin

   y1 := F(x1); //Вычисляем значение функции

   x := x0 + round(x1 * mx); //Координата Х в графическом окне

   y := y0 - round(y1 * my); //Координата Y в графическом окне

   //Если y попадает в границы [yLeft; yRight], то ставим точку:

   if (y gt;= yLeft) and (y lt;= yRight) then SetPixel(x, y, clGreen);

   x1 := x1 + 0.001 //Увеличиваем абсциссу

 end

end.



Бишенкевич Ева
а какой у вас паскаль?
Максим
ABC
Подмазо Алина
pascalABC
Игорь Либстер
а хоть какой график можно вписать?
Витек
да
Владимир Бровчук
спасибо
Aleksandra Kobylchenko
этот козел не заработал
Бурымова Мирослава
аааа
Вячеслав Висовский
почему?
Shulginov Danka
незнаю.Разговаривает какая то ошибка там где h=50
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт