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

лабы / Laba_varik12_8

.2.pdf
Скачиваний:
9
Добавлен:
10.06.2023
Размер:
969.2 Кб
Скачать

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

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

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

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

Лабораторная работа №8 – Проект 2

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

по теме:

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

по дисциплине «Информатика»

Выполнил: студент гр. БИН2104 Книгин Е.А. Вариант №12

Проверил:

Москва, 2021 г.

СОДЕРЖАНИЕ

1)ЦЕЛЬ РАБОТЫ

2)ФОРМУЛИРОВКА ЗАДАЧИ №12

3)ФОРМАЛИЗАЦИЯ ЗАДАНИЯ

4)РАЗРАБОТКА АЛГОРИТМОВ РЕШЕНИЯ ЗАДАЧИ

5)ПРОГРАММЫЙ КОД ПРОЕКТА

6)РЕЗУЛЬТАТ И ДОКАЗАТЕЛЬСТВО ПРАВИЛЬНОСТИ РАБОТЫ ПРОГРАММЫ

1

ЦЕЛЬ РАБОТЫ

1)Обучиться программированию алгоритмов вложенных регулярных циклических структур.

2)Разработать функции для: вычисления значения, построения таблицы значений, ввода данных, вывода данных, главной функции main.

3)Оформить отчет по работе.

ФОРМУЛИРОВКА ЗАДАЧИ №12

Постройте таблицу значений функции f(x, y) и найдите произведение и количество отрицательных значений функции.

1) f(x,y)= x4 + 39*x*y + 958*x2 – 1084*x - 1987

По x отрезок [1.9; 2.1]; шаг h1 = 0.01, по y отрезок [2; 3]; шаг h2 = 0.1

ФОРМАЛИЗАЦИЯ ЗАДАНИЯ

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

функция f, вычисляющая f(x, y) в заданных точках x, y;

функция hcycle, формирующая и выводящая таблицу значений f(x, y) на заданных отрезках значений x, y, а также вычисляющее произведение и количество отрицательных значений функции;

функция Input, выполняющая ввод исходных данных;

2

функция Output, выводящая найденные количество и произведение отрицательных f(x);

главная функция main, последовательно вызывающая функции

Input, hcycle и Output.

РАЗРАБОТКА АЛГОРИТМОВ РЕШЕНИЯ ЗАДАЧИ

Схема алгоритма f вычисления значения заданной функции в одной точке показана ниже. (см. рис. 1)

Рисунок 1 - схема функции f(x, y)

Схема алгоритма функции hcycle решения задачи и формирования таблицы значений функции f(x, y) изображена ниже. (см. рис. 2)

3

Рисунок 2 – схема алгоритма функции hcycle

4

ПРОГРАММНЫЙ КОД ПРОЕКТА

Программный код проекта приведен ниже (см. рис. 3, 4, 5, 6)

1)#include "hcycle.h"

2)#include "f(x,y).h"

3)#include "inpoutp.h"

5)void main(void)

6){

7)double a, b, h, c, d, h1, cnt, mp;

8)Input(a, b, h, c, d, h1);

9)hcycle(a, b, h, c, d, h1, cnt, mp);

10)Output(cnt, mp);

11)}

Рисунок 3 – программный код файла “main.cpp”

1)#pragma once

2)#include <iostream>

4)using namespace std;

5)void Input(double& a, double& b, double& h, double& c, double& d, double& h1)

6){

7)setlocale(LC_ALL, "rus");

8)cout << "Введите нижнюю границу отрезка по x:\n a = ";

9)cin >> a;

10)cout << "Введите верхнюю границу отрезка по x:\n b = ";

11)cin >> b;

12)cout << "Введите шаг по x:\n h = ";

13)cin >> h;

14)cout << "Введите нижнюю границу отрезка по y:\n a = ";

15)cin >> c;

16)cout << "Введите верхнюю границу отрезка по y:\n b = ";

17)cin >> d;

18)cout << "Введите шаг по y:\n h = ";

19)cin >> h1;

20)}

21)void Output(double& cnt, double& mp)

22){

23)setlocale(LC_ALL, "rus");

24)cout << "Количество отрицательных значений\tf(x, y) = " << cnt << endl;

25)cout << "Произведение отрицательных значений\tf(x, y) = " << mp << endl;

26)}

Рисунок 4 – программный код библиотеки “inpoutp.h”

5

1)#pragma once

2)#include <cmath>

3)double f(double x, double y)

4){

5)double z;

6)z = pow(x, 4) + 39*x*y + 958*pow(x, 2) - 1081*x - 1987;

7)return z;

8)}

Рисунок 5 - программный код библиотеки “f(x).h”

1)#pragma once

2)#include <iostream>

3)#include <cmath>

4)#include "f(x,y).h"

6) using namespace std;

7)

8)void hcycle(float a, float b, float h, float c, float d, float h1, double& cnt, double& mp )

9){

10)setlocale(LC_ALL, "rus");

11)cout << "Таблица значений функции:\n" << "\t|\tx\t|\ty\t|\tz\n";

12)cnt = 0;

13)mp = 1;

14)for (float i = a; i <= b; i += h)

15){

16)for (float k = c; k <= d; k += h1)

17){

18)float x = i;

19)float y = k;

20)double z = f(x,y);

21)if (z < 0)

22){

23)

cnt++;

24)

mp += z;

25)

}

26)

cout << "\t|\t" << x << "\t|\t" << y <<

 

"\t|\t" << z << "\n";

27)

}

28)

 

29)

}

30)

}

Рисунок 6 – программный код библиотеки “hcycle.h”

6

РЕЗУЛЬТАТ И ДОКАЗАТЕЛЬСТВО ПРАВИЛЬНОСТИ РАБОТЫ ПРОГРАММЫ

Результат выполнения проекта при заданных значениях исходных данных изображены ниже. (см. рис. 7)

Рисунок 7 - результат работы программы

Подставив тестовые данные в уравнение, мы воспользуемся ручным расчетом и увидим, что результаты совпадают.

7

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