лаба8_2
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Информатика»
Лабораторная работа №8-1
«Разработка проекта, решающего задачу вычисления сложного выражения с условием и выбора наименьшего (наибольшего) из нескольких значений»
по теме:
«Циклические алгоритмические структуры. Регулярные
циклические структуры и их программная реализация»
по дисциплине
«Информатика»
Выполнил: студент гр. БИН2104 Зайцева О.С.
С/б №1БИН21092
Вариант 9
Проверил:
Москва, 2021 г.
Содержание
1) Индивидуальное задание на разработку программного проекта 3
2) Формализация и уточнение задачи 3
3) Схема алгоритмов проекта 3
4) Программный код проекта 5
5) Результаты выполнения проекта 6
6) Доказательство правильности работы программы 8
Индивидуальное задание на разработку программного проекта
Создать проект согласно общему заданию для формирования таблицы значений функции
а также для подсчёта суммы и произведения значений данной функции при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c;d] с шагом h2. (a=0.1, b=1.5, h1=0.1, c=2, d=3, h2=0.1)
Формализация и уточнение задачи
Для реализации задания разработаем следующие пользовательские функции:
Функция f, вычисляющая z(x, y) при заданных значениях x и y;
Функция Resh, формирующая и выводящая таблицу значений z(x, y) на заданных отрезках изменения x и y, а также определяющая сумму и произведение значений функции;
Функция get, выполняющая ввод исходных данных: границ отрезков [a;b] и [c;d], шагов табуляции h1 и h2;
Функция put, выводящая найденную сумму и произведение значений z(x, y);
Главная функция main, последовательно вызывающая функции get, Resh и put.
Для представления вещественных чисел будем использовать тип данных с обычной точностью float.
Схема алгоритмов проекта
Схема алгоритма функции Resh решения задачи и формирования таблицы значений функции z=f(x, y) на заданных отрезках изменения x и y изображена на рисунке 1.
Рисунок 1- Схема алгоритма Resh
Схема алгоритма функции func вычисления значения заданной функции в одной точке изображена на рисунке 2.
Рисунок 2- Схема алгоритма процедуры func
Программный код проекта
//Файл getput.cpp
#include <iostream>
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, double s)
{
cout << "произв S=" << S << endl;
cout << "сумма s= " << s;
}
//Файл calc.cpp
#include <cmath>
#include <iostream>
using namespace std;
double func(double x, double y)
{
double z;
z = x * pow((x - 1 + y), 0.333333);
return z;
}
double Resh(double a, double b, double h1, double c, double d, double h2, double& s)
{
setlocale(LC_ALL, "rus");
double x, y, S = 1, z;
s = 0;
int n1 = int((b + h1 / 2 - a) / h1) + 1;
int n2 = int((d + h2 / 2 - c) / h2) + 1;
cout << "Таблица значений функции:" << endl;
cout << "\tx\ty\tz" << endl;
for (int i = 1; i <= n1; i++)
{
x = a + (i - 1) * h1;
for (int j = 1; j <= n2; j++)
{
y = c + (j - 1) * h2;
z = func(x, y);
cout <<"\t"<<x<<"\t"<<y<<"\t"<<z<<endl;
S = S * z;
s = s + z;
}
}
return S;
}
//Файл main.cpp
#include <iostream>
using namespace std;
void Get(double&, double&, double&, double&, double&, double&);
double Resh(double, double, double, double, double, double, double&);
void Put(double, double);
int main()
{
double a, b, h1, c, d, h2, S, s;
Get(a, b, h1, c, d, h2);
S = Resh(a, b, h1, c, d, h2, s);
Put(S, s);
cout << endl;
return 0;
}
Результаты выполнения проекта
Результаты выполнения проекта при заданных значениях исходных данных приведены на рисунке 3-4.
Рисунок 3- Результат выполнения программы при исходных данных
Рисунок 4- результат выполнения программы при исходных данных
Доказательство правильности работы программы
Подставив исходные значения в Microsoft Excel, вычисления сошлись, а значит программа работает верно. Проверка некоторых вычислений показана на рисунке 5
Рисунок 6 - проверка вычисления значения функции