В течение семестра была разработана программа на C++, выполняющая множество математических и алгоритмических функций, включая:
- Вычисление сложных алгебраических выражений
- Работу с массивами с использованием STL vector
- Табулирование функций с разными типами циклов
- Сохранение результатов работы в файлы форматов
.txtи.csv - Игровые алгоритмы для развития навыков программирования
После запуска программа отображает главное меню, где можно выбрать нужную лабораторную работу, введя соответствующий порядковый номер. При этом создаются два файла для последующей записи результатов работы алгоритмов.
| № | Название | Описание |
|---|---|---|
| 1 | Лабораторная работа №1 | Вычисление сложного алгебраического выражения с тригонометрическими функциями |
| 2 | Лабораторная работа №2 | Меню выбора задания с условными операторами и switch-case |
| 3 | Лабораторная работа №3 | Табулирование функции с использованием разных типов циклов |
| 4 | Лабораторная работа №4 | Генерация и обработка одномерного массива |
| 5 | Лабораторная работа №5 | Работа с двумерным массивом и матричными операциями |
| 6 | Лабораторная работа №6 | Вычисление ряда с заданной точностью эпсилон |
| 7 | Игра "Угадай количество вагонов" | Логическая игра с определением количества вагонов |
| 8 | Вывод простых чисел | Генерация простых чисел до заданного предела |
Вычисление выражения: y = sqrt(a/(1 + b*x²)) + b*ctg(x) + exp(c*x)
Программа вычисляет сложное математическое выражение с параметрами:
a = 4.5,b = 2.2,c = -1.5- Ввод пользователем значения X
- Защита от некорректного ввода
- Сохранение результата в текстовый файл
Состоит из трех заданий:
Задание 1: Условное вычисление
if (x >= 2) y = log(a + x²);
else y = exp(sin(x)) + 2*b;Задание 2: Многоступенчатое условие
if (x <= -2) y = log(|x| + sqrt(a*x² + 1));
else if (x > 5) y = atan(b/(x² + 1));
else y = sqrt(a² + x²);Задание 3: Оператор switch для конкретных значений X
Табулирование функции: y = sqrt((a*x)/(b + cos²(x)))
Три варианта реализации:
- Цикл while - с предусловием
- Цикл do...while - с постусловием
- Цикл for - с параметром
Пользователь задает:
- Начальное значение X0
- Конечное значение Xk
- Шаг D
Работа с одномерным массивом:
- Генерация массива случайных чисел (0-6)
- Использование STL vector
- Вывод элементов до первого нуля
- Динамическое определение размера массива
Работа с двумерным массивом:
- Создание матрицы размером L×W
- Вычисление суммы всех элементов
- Замена элементов на главной диагонали и под ней на единицы
- Вычисление произведения элементов модифицированной матрицы
Вычисление ряда Фурье:
F = 1/(2a) - Σ[(-1)ⁱ⁻¹ * (a*cos(i*x)/(a² - i²))]- Вычисление с заданной точностью ε
- Подсчет количества итераций
- Использование математических функций
Логическая игра с особенностями:
- Вагоны соединены по циклу (первый и последний соединены)
- Случайное начальное состояние лампочек в каждом вагоне
- Задача: определить общее количество вагонов
- Возможность переключения состояния лампочек
Генерация простых чисел:
- Ввод верхней границы поиска
- Эффективный алгоритм определения простых чисел
- Вывод всех найденных значений
while (isdigit(static_cast<int>(x)) || (cin.peek() != '\n')) {
cin.clear();
while (cin.get() != '\n');
cout << "Введите численное значение: ";
cin >> x;
}- lab_all.txt - текстовый формат с локализацией для десятичных разделителей
- lab_all.csv - табличный формат для данных табулирования
- STL vector для работы с массивами
- Математические функции (sqrt, log, exp, trig functions)
- Локализация вывода чисел
- Очистка экрана (system("cls"))
В любой момент пользователь может завершить работу программы, введя 0 в главном меню:
Результаты работы: после закрытия программы в файлах lab_all.txt и lab_all.csv сохраняются все результаты выполнения алгоритмов.










