Добавил:
Если чем-то мне удалось вам помочь, то благодарность принимаю на эту карту: 2200 2460 1776 0607 Для защищенки 5 сем: https://t.me/+h5cc9QNQe19kODVi Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаба8_2

.docx
Скачиваний:
0
Добавлен:
10.10.2023
Размер:
155.53 Кб
Скачать

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

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

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

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

Лабораторная работа №8-1

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

по теме:

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

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

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

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

Выполнил: студент гр. БИН2104 Зайцева О.С.

С/б №1БИН21092

Вариант 9

Проверил:

Москва, 2021 г.

Содержание

1) Индивидуальное задание на разработку программного проекта 3

2) Формализация и уточнение задачи 3

3) Схема алгоритмов проекта 3

4) Программный код проекта 5

5) Результаты выполнения проекта 6

6) Доказательство правильности работы программы 8

  1. Индивидуальное задание на разработку программного проекта

Создать проект согласно общему заданию для формирования таблицы значений функции

а также для подсчёта суммы и произведения значений данной функции при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c;d] с шагом h2. (a=0.1, b=1.5, h1=0.1, c=2, d=3, h2=0.1)

  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.

  1. Схема алгоритмов проекта

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

Рисунок 1- Схема алгоритма Resh

Схема алгоритма функции func вычисления значения заданной функции в одной точке изображена на рисунке 2.

Рисунок 2- Схема алгоритма процедуры func

  1. Программный код проекта

//Файл 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;

}

  1. Результаты выполнения проекта

Результаты выполнения проекта при заданных значениях исходных данных приведены на рисунке 3-4.

Рисунок 3- Результат выполнения программы при исходных данных

Рисунок 4- результат выполнения программы при исходных данных

  1. Доказательство правильности работы программы

Подставив исходные значения в Microsoft Excel, вычисления сошлись, а значит программа работает верно. Проверка некоторых вычислений показана на рисунке 5

Рисунок 6 - проверка вычисления значения функции

Соседние файлы в предмете Информатика