лабы / Laba_varik1_8.2
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХКОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Информатика»
Лабораторная работа №8.2
«Разработка проекта, решающего задачу построения таблицы значений функции двух переменных»
По теме:
«Циклические алгоритмические структуры.
Регулярные циклические структуры и их программная реализация»
по дисциплине
«Информатика»
Выполнил:
Проверил:
Москва, 2021 г
Общее задание на разработку программного проекта
Изучите вопросы программирование алгоритмов вложенных регулярных циклических структур.
Выберите вариант задания из таблицы 8-2.
Проведите формализацию поставленной задачи.
Решите задачу вашего индивидуального задания, используя разработанные функции пользователя.
Для этого разработайте схемы алгоритмов и программные коды следующих функций:
функции вычисления значения функции z=f(x,y) двух аргументов при заданных значениях аргументов согласно вашему индивидуальному заданию;
функции построения таблицы значений z=f(x,y) на заданных отрезках и с заданными шагами изменения аргументов, причем использовать в качестве параметров циклов переменные целого типа;
функции ввода исходных данных;
функции вывода результатов;
главной функции main, которая вызывает описанные выше функции для решения поставленной задачи.
Создайте консольный проект, содержащий 3 раздельно скомпилированных файла:
файл, содержащий функцию ввода исходных данных и функцию вывода результатов;
файл с функциями вычисления значения функции z=f(x,y) и построения таблицы значений z=f(x,y);
файл с главной функцией, которая должна содержать только операторы вызова пользовательских функций (ввода, функции построения таблицы и вывода), причем обмен данными между функциями должен осуществляться через параметры, без использования глобальных переменных.
Выполните проект и получите результаты.
Докажите правильность полученных результатов.
Индивидуальное задание:
Постройте таблицу значений функции z=f(x,y) и найдите наибольшее значение функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.
-
a
-3
b
3
c
-3
d
3
h1
0.3
h2
0.6
z(𝗑, 𝑦) = 3 𝑐𝑜𝑠2(2𝗑 + 𝑦 + 1)
Формализация задания:
Для реализации задания разработаем следующие пользовательские функции:
функция f, вычисляющая z(x,y) при заданных значениях x и y;
функция cikl формирующая и выводящая таблицу значений z(x,y) на заданных отрезках изменения x и y, а также определяющая сумму и количество
положительных значений функции;
функция vivod, выводящая найденную сумму и функция maximum, выводящая количество положительных значений z(x,y);
главная функция main, последовательно вызывающая функции cikl и vivod. Для представления вещественных чисел будем использовать тип данных с двойной точностью double.
Рисунок 1 –схема реализации функции cikl
Рисунок 2 – схема реализации функции poschitat
Программный код проекта
nclude <cmath>
vo d v vod(double x, double y, double z); double z_max = 0;
double posch tat(double x, double y)
{
return (3 * pow(cos(2 * x + y + 1), 2));
}
vo d c kl()
{
double x = -3, y = -3;
nt n1 = nt((3+0.3/2 + 3)/0.3)+1;
nt n2 = nt((3 + 0.6/2 + 3) / 0.6) + 1;
for ( nt x_ nt = 1; x_ nt <= n1; x_ nt++)
{
x = -3 + (x_ nt - 1) * 0.3;
for ( nt y_ nt = 1; y_ nt <= n2; y_ nt++)
{
y = -3 + (y_ nt - 1) * 0.6; f (posch tat(x, y) > z_max)
{
z_max = poschtat(x, y);
}
v vod(x, y, posch tat(x, y));
}
}
}
double max mum()
{
return z_max;
}
Листинг 1 – программный код проекта Calc.cpp
Листинг 2 – программный код проекта vvod_vivod.cpp
nclude < ostream> vo d c kl();
vo d v vod(double x, double y, double z); vo d v vod_max();
nt ma n()
{
c kl();
v vod_max();
}
Листинг 3 – программный код проекта main.cpp
Результат работы программы
Рисунок 3 – результат работы программы.
Рисунок 4 – результат работы программы.
Рисунок 5 – результат работы программы.
Доказательство правильности работы программы
При тестовых данных результаты ручного расчёта и вычисления на компьютере совпадают
Источники:
Лекция 23.12.2021