лаюба 8.2 вариант 2. Разработка проекта, решающего задачу построения таблицы значений функции двух переменных
Скачать 183.17 Kb.
|
Федеральное агентство связи Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики» Кафедра информатики ЛАБОРАТОРНАЯ РАБОТА № 8.2 по дисциплине “Информатика” на тему «Разработка проекта, решающего задачу построения таблицы значений функции двух переменных» Выполнил: студент гр. Проверил: Москва 2021 г. Оглавление Задание на разработку проекта и вариант задания……………………....3 Формализация и уточнение задания………………………………………3 Схемы алгоритмов пользовательских функций………………………….3 Программный код проекта……………………………………………..…5 Результаты выполнения проекта………………………………………….7 Доказательство правильности работы…………………………………..12 1.Задание на разработку проекта и вариант задания Создать проект согласно общему заданию 19 варианта (Рисунок 1): Рисунок 1 – Общее задание 2.Формализация и уточнение задания Для реализации задания разработаю следующие пользовательские функции: Функция fun, вычисляющая z(x,y) при заданных значениях x и y; Функция Tab, формирующая и выводящая таблицу значений z(x,y) на заданных отрезках изменения x и y, а так же считающая сумму и количество значений функции при z>0; Функция Get, выполняющая ввод исходные данных: границ отрезков [a;b] и [c;d], шагов табуляции h1 и h2; Функция Put, выводящая вычисленную сумму и количество положительных значений функции; Главная функция main, последовательно вызывающая функции Get,Tab и Put. Для представления вещественных чисел будем использовать типа данных с двойной точностью double. 3.Схемы алгоритмов пользовательских функций Схема алгоритма функции Resh() решения задачи и формирования таблицы значений функции z=f(x,y) на заданных отрезках изменения x и y. (Рисунок 2) Рисунок 2 – Схема алгоритма процедуры Resh() Cхема алгоритма функции func() вычисления значения заданной функции в одной точке .(рисунок 3) Рисунок 3 – Схема алгоритма процедуры func() 4.Программный код проекта Главная функция main() #include using namespace std; void Get(double&, double&, double&, double&, double&, double&); double Resh(double, double, double, double, double, double,int&); void Put(double,int ); int main() { double a, b, h1,c,d,h2, S; int m; Get(a, b, h1, c, d, h2); S = Resh(a, b, h1, c, d, h2,m); Put(S,m); cout << endl; return 0; } Функция Resh() #include #include using namespace std; double func(double x,double y) { double z; z = 1/(x+6.28-y)-sin(x); return z; } double Resh(double a, double b, double h1, double c, double d, double h2,int& s) { setlocale(LC_ALL, "rus"); double x, y,S=0,z; s = 0; int n1 = ceil((b - a) / h1) ; int n2 = ceil((d - c) / h2) ; cout << "Таблица значений функции:" << endl; cout << "x= y= z=" << endl; for (int i = 0; i <= n1; i ++) { x = a+i*h1; for (int j = 0; j <= n2; j ++) { y = c + j*h2; z = func(x, y); cout << x << " " << y <<" "< if (z>0) { S = S+z; s++; } } } return S; }Функция Get() и Put() #include using namespace std; void Get(double& a, double& b, double& h1, double& c, double& d, double& h2) { setlocale(LC_ALL, "rus"); cout << "Введите начало отрезка a= "; cin >> a; cout << "Введите конец отрезка b= "; cin >> b; cout << "Введите шаг табулирования h1= "; cin >> h1; cout << "Введите начало отрезка c= "; cin >> c; cout << "Введите конец отрезка d= "; cin >> d; cout << "Введите шаг табулирования h2= "; cin >> h2; } void Put(double S,int s) { cout << "Сумма значение S=" << S< cout << "Кол-во значений s= " << s; } 5.Результаты выполнения проекта Вывод данного проекта (Рисунок 4-7 ) Рисунок 4 – результат выполнения программы при исходных данных Рисунок 5 – результат выполнения программы при исходных данных 6.Доказательство правильности работы Подставив исходные значения в Microsoft Excel, вычисления сошлись, а значит программа работает верно. Проверка некоторых вычислений показана на (рисункe 7) Рисунок 7 – проверка вычисления значения функции |