ПаскальАВСРазработать программку построения графика функции [tex] y=x^2 -x [/tex] на
ПаскальАВС
Создать программку построения графика функции на участке
Полина Колено
x^2-x это парабола. Нужно просто отсечь излишнее на участке?
Akusheva Stefanija
Т.е. должна получится кривая от 1 до 2.5 по x?
Nadezhda Vure
Да, но не запамятовай, что это ПаскальАБЦ, так что там с модулем graph
Гена Седлик
Могу сделать на PascalABC.NET. Там модуль graphABC.
1 ответ
Агата Сахинова
Uses
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(абс(a) * mx) + xLeft;
y0 := yRight - trunc(абс(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) gt; 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) gt; 1E-15 then
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);
if ((x1 gt;= 1) and (x1 lt;= 2.5)) then
begin
x := x0 + round(x1 * mx);
y := y0 - round(y1 * my);
if (y gt;= yLeft) and (y lt;= yRight) then SetPixel(x, y, clBlue);
end;
x1 := x1 + 0.001
end
end.
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(абс(a) * mx) + xLeft;
y0 := yRight - trunc(абс(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) gt; 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) gt; 1E-15 then
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);
if ((x1 gt;= 1) and (x1 lt;= 2.5)) then
begin
x := x0 + round(x1 * mx);
y := y0 - round(y1 * my);
if (y gt;= yLeft) and (y lt;= yRight) then SetPixel(x, y, clBlue);
end;
x1 := x1 + 0.001
end
end.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов