Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / Laba_varik1_8.2

.docx
Скачиваний:
7
Добавлен:
10.06.2023
Размер:
360.74 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХКОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра «Информатика»

Лабораторная работа №8.2

«Разработка проекта, решающего задачу построения таблицы значений функции двух переменных»

По теме:

«Циклические алгоритмические структуры.

Регулярные циклические структуры и их программная реализация»

по дисциплине

«Информатика»

Выполнил:

Проверил:

Москва, 2021 г

Общее задание на разработку программного проекта

  1. Изучите вопросы программирование алгоритмов вложенных регулярных циклических структур.

  1. Выберите вариант задания из таблицы 8-2.

  1. Проведите формализацию поставленной задачи.

  1. Решите задачу вашего индивидуального задания, используя разработанные функции пользователя.

Для этого разработайте схемы алгоритмов и программные коды следующих функций:

  • функции вычисления значения функции z=f(x,y) двух аргументов при заданных значениях аргументов согласно вашему индивидуальному заданию;

  • функции построения таблицы значений z=f(x,y) на заданных отрезках и с заданными шагами изменения аргументов, причем использовать в качестве параметров циклов переменные целого типа;

  • функции ввода исходных данных;

  • функции вывода результатов;

  • главной функции main, которая вызывает описанные выше функции для решения поставленной задачи.

  1. Создайте консольный проект, содержащий 3 раздельно скомпилированных файла:

  • файл, содержащий функцию ввода исходных данных и функцию вывода результатов;

  • файл с функциями вычисления значения функции z=f(x,y) и построения таблицы значений z=f(x,y);

  • файл с главной функцией, которая должна содержать только операторы вызова пользовательских функций (ввода, функции построения таблицы и вывода), причем обмен данными между функциями должен осуществляться через параметры, без использования глобальных переменных.

  1. Выполните проект и получите результаты.

  1. Докажите правильность полученных результатов.

Индивидуальное задание:

Постройте таблицу значений функции 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 = poschtat(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

Соседние файлы в папке лабы