Другие языки программирования и технологии
Написать программу в Паскале для построения графика функций. К программе желательно составить алгоритм.
Написать программу в Паскале для построения графика функций. К программе желательно составить алгоритм. Помогите пожалуйста)
uses
graphABC; //Подключаем графический модуль
const
W = 800; H = 500;//Размеры графического окна
function F(x: real): real;
begin
//F := (x + 1) * (x - 2) * (x - 3); //Функция
f:=sin(x) - 1.3*x*x +exp(x-1);
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;
a:=-3; b:=3; 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.
graphABC; //Подключаем графический модуль
const
W = 800; H = 500;//Размеры графического окна
function F(x: real): real;
begin
//F := (x + 1) * (x - 2) * (x - 3); //Функция
f:=sin(x) - 1.3*x*x +exp(x-1);
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;
a:=-3; b:=3; 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.
cyberforum.ru/pascalabc/thread554910.html
"составить алгоритм" Это что значит. Программы без него не бывает
вот по этому сценарию
https://www.youtube.com/watch?v=DrmAL-95aCg
"составить алгоритм" Это что значит. Программы без него не бывает
вот по этому сценарию
https://www.youtube.com/watch?v=DrmAL-95aCg
Всегда готовы помочь. А функция то какая? И на каком отрезке рисовать?
Серик Есимов
спасибо, любая
Серик Есимов
Желательно по компактней, чтобы на доске в аудитории можно было написать
"в Паскале "
1 Этих Паскалей как собак нерезаных.
2 и их удобно использовать только для начального обучения новичков.
3 поэтому людям, желающим стать профессиональными программистами и получать хорошую зарплату, разумнее сразу начинать с DELPHI коорая имеет множество как стандартных средств, так и разработанных энтузиастами и организациями всяческих пакетов и компонент.
1 Этих Паскалей как собак нерезаных.
2 и их удобно использовать только для начального обучения новичков.
3 поэтому людям, желающим стать профессиональными программистами и получать хорошую зарплату, разумнее сразу начинать с DELPHI коорая имеет множество как стандартных средств, так и разработанных энтузиастами и организациями всяческих пакетов и компонент.
Серик Есимов
Я студент шараги, на понедельник сказали это сделать. Чтобы можно было, если учитель спросит - написать это на доске. У него паскаль досовский. У меня на пк абс.нет стоит. Мне бы оценку нормальную получить. Профессионалом не буду. С делфи мы работает параллельно, но конкретно это задание по паскалю он сказал.
Похожие вопросы
- Нужно написать программу (помогите с алгоритмом) с++
- Нужно написать программу на паскале
- Возможно ли в теории написать программу, которая по изображению графика функции будет определять саму функцию?
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!
- Напишите программу на языке Паскаль для решения задачи:
- Как написать программу в паскале
- Написать программу в паскале и составить блок схему
- Паскаль написать программу помогите. срочно. Пожалуйста
- Помогите написать программу на паскале
- Нужно написать программа на ассемблере для функции СигнумХ . Как правильно это сделать?