Файл: Контрольная работа по дисциплине Программирование Тема Вариант 9 Исполнитель студент i курса очнозаочной формы обучения ино группы индо озб би22 сб воронова А. Е.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 16

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.













Министерство образования и науки Российской Федерации
Уральский государственный экономический университет



Контрольная работа по дисциплине: Программирование


Тема: Вариант 9


Исполнитель: студент I курса

очно-заочной формы обучения ИНО

группы ИНДО ОЗБ БИ-22 СБ Воронова А.Е.










Екатеринбург

2023






Вариант 9.

Разработать программу для построения графика функции у=2*sin(x)*eх/5. Считать из файла, указанного пользователем значения абсциссы Х, рассчитать для них значения ординаты У, записать результат вычисления в новый файл в формате Х1 – У1

Х2 – У2…

Решение:

// Функция, график которой надо построить
Function f(x:real):real;
begin
f:=2*Sin(x)*exp(x/5);
end;// строит трафик функции
procedure GrOfFunc;
var
xl,x2:real; // границы изменения аргумента функции
yl,y2:real; // границы изменения значения функции
x:real; // аргумент функции
у:real; // значение функции в точке х
dx:real; // приращение аргумента
l,b:integer; // левый нижний угол области вывода графика
w,h:integer; // ширина и высота области вывода графика
mx,my:real; // масштаб по осям X и Y
хО,уО:integer; // точка — начало координатbegin
// область вывода графика "
1:=10; // X — координата левого верхнего
// угла
b:=Forml.ClientHeight-20; // Y — координата левого верхнего
// угла
h:=Forml.ClientHeight-40; // высота
w:=Forml.Width-40; // ширина xl:=0; // нижняя граница диапазона аргумента

х2:=25; // верхняя граница диапазона аргумента
dx:=0.01; // шаг аргумента // найдем максимальное и минимальное значения
// функции на отрезке [xl,x2]
yl:=f(xl); // минимум
y2:=f(xl); //максимум
х:=xl;
repeat
у := f(x);
if у < yl then yl:=y;
if у > у2 then y2:=y;
x:=x+dx;
until (x>=x2);
// вычислим масштаб
my:=h/abs(y2-yl); // масштаб по оси Y
mx:=w/abs(x2-xl); // масштаб по оси X // оси
хО:=1;
уО:=b-Abs(Round(yl*my)); with forml.Canvas do
begin
// оси
MoveTo(l,b);LineTo(l,b-h);
MoveTo(xO,yO);LineTo(xO+w, yO) ;
TextOut (l+5,b-h,FloatToStrF(y2,ffGeneral,6,3) ) ;
TextOut(1+5,b,FloatToStrF(yl,ffGeneral, 6,3) ) ;
// построение графика
x:=xl;
repeat
y:=f(x);
Pixels[xO+Round(x*mx),yO-Round(y*my)]:=clRed;
x:=x+dx;
until (x>=x2);
end;
end;
procedure TForml.FormPaint(Sender: TObject);
begin
GrOfFunc;
end;// изменился размер окна программы
procedure TForml.FormResize(Sender: TObject);
begin
// очистить форму
forml.Canvas.FillRect(Rect(0,O,ClientWidth,ClientHeight));
// построить график
GrOfFunc;
end;