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

Подалуйста составьте программу для построения любого графика в pascalabc(ну там y=x в квадрате,или y=x в кубе.и подобные). вас

Показать ответ
Ответ:
abrikosikhii
abrikosikhii
21.08.2020 21:48

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(abs(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 abs(num) > 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 abs(num) > 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 <= b do

 begin

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

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

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

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

   if (y >= yLeft) and (y <= yRight) then SetPixel(x, y, clGreen);

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

 end

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота