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

лаба8_1

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

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

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

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

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

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

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

по теме:

«Логические данные и выражения. Операторы разветвления VC++. Программная реализация базовых разветвляющиеся структур и типовых алгоритмов»

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

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

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

С/б №1БИН21092

Вариант 9

Проверил:

Москва, 2021 г.

Содержание

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

Создать проект согласно общему заданию для формирования таблицы значений функции f(x)=x* при изменении x на отрезке [0.1, 1.5] с шагом h=0.1. Вычислить наибольшее значение заданной функции на этом отрезке. 3

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

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

Функции func, вычисляющая f(x) в заданной точке x; 3

Функция RegCikl, формирующая и выводящая таблицу значений f(x) при заданном отрезке значений x, а также определяющая наибольшее значение заданной функции на этом же отрезке h; 3

Функция get, выполняющая ввод исходных данных: границ отрезка [a;b] и шага табуляции; 3

Функция put, выводящая найденное наибольшее значение функции f(x); 3

Главная функция main, последовательно вызывающая функции get, RegCikl и put. 3

Для представления вещественных чисел будем использовать тип данных с обычной точностью float. 3

3) Разработка функциональных алгоритмов 3

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

3

Схема алгоритма функции RegCikl решения задачи и формирования таблицы значений функции y=f(x) на отрезке [a; b] с шагом h изображена на рисунке 2. 4

4

4

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

Программный код проекта приведён ниже: 4

} 5

} 5

} 5

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

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

6

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

Правильность вычисления табличных значений функции проверяется в Microsoft Excel. 6

6

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

Создать проект согласно общему заданию для формирования таблицы значений функции f(x)=x* при изменении x на отрезке [0.1, 1.5] с шагом h=0.1. Вычислить наибольшее значение заданной функции на этом отрезке.

  1. Формализация и уточнение задания

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

  • Функции func, вычисляющая f(x) в заданной точке x;

  • Функция RegCikl, формирующая и выводящая таблицу значений f(x) при заданном отрезке значений x, а также определяющая наибольшее значение заданной функции на этом же отрезке h;

  • Функция get, выполняющая ввод исходных данных: границ отрезка [a;b] и шага табуляции;

  • Функция put, выводящая найденное наибольшее значение функции f(x);

  • Главная функция main, последовательно вызывающая функции get, RegCikl и put.

Для представления вещественных чисел будем использовать тип данных с обычной точностью float.

  1. Разработка функциональных алгоритмов

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

Рисунок 1 – Схема алгоритма функции func для вычисления значения заданной функции в одной точке

Схема алгоритма функции RegCikl решения задачи и формирования таблицы значений функции y=f(x) на отрезке [a; b] с шагом h изображена на рисунке 2.

Рисунок 2- Схема алгоритма функции RegCikl формирования таблицы значений функции y=f(x) на отрезке [a;b] с шагом h

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

Программный код проекта приведён ниже:

// файл GetPut.cpp с функциями ввода и вывода

#include <iostream>

using namespace std;

void Get(float& a, float& b, float& h)

{

setlocale(LC_ALL, "rus");

cout << "Введите нижнюю границу отрезка: ";

cin >> a;

cout << "Введите верхнюю границу отрезка: ";

cin >> b;

cout << "Введите шаг таблицы: ";

cin >> h;

}

void Put(float yMax)

{

setlocale(LC_ALL, "rus");

cout << endl << "Наибольшее значение функции: " << yMax << endl;

}

// файл Calc.cpp

#include <iostream>

#include <cmath>

using namespace std;

float func(float x);

void RegCikl(float a, float b, float h, float& yMax)

{

setlocale(LC_ALL, "rus");

int n = int((b + h / 2 - a) / h) + 1;

yMax = -1000;

float x, y;

cout << endl << "Таблица значений функции" << endl;

cout << "\tx\ty" << endl;

for (int i = 1; i <= n; i++)

{

x = a + (i - 1) * h;

y = func(x);

if (y > yMax) yMax = y;

cout << "\t" << x << "\t" << y << endl;

}

}

float func(float x)

{

return x * exp(-x);

}

// файл main.cpp

#include <iostream>

void Get(float& a, float& b, float& h);

void Put(float yMax);

void RegCikl(float a, float b, float h, float& yMax);

void main()

{

float a, b, h, yMax;

Get(a, b, h);

RegCikl(a, b, h, yMax);

Put(yMax);

system("PAUSE");

}

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

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

Рисунок 3 – Результаты выполнения проекта

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

Правильность вычисления табличных значений функции проверяется в Microsoft Excel.

Консольное приложение проекта

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