Вы находитесь на странице: 1из 9

Міністерство освіти і науки України

Харківський національний університет радіоелектроніки

Кафедра КРіСТЗІ

Залікова работа
з дисципліни «Програмування ч.2»

Виконав: Перевірив:
ст. гр. КУІБ-22-1 Доц. Назаренко В.А.
Федчик Артем

Харків 2023
РОЗДІЛ 1. СТВОРЕННЯ ТА ВИКОРИСТАННЯ НАЙПРОСТІШИХ
ФУНКЦІЙ
Мета:
Вивчення правил створення користувацьких функцій і роботи з ними.

Хід виконання:
Блок-схема:

Код:
#include <iostream>
#include <algorithm>
#include <string>

using namespace std;


// функция которая сортирует строку по возрастанию
void sortStringAscending(string& str) {
// преобразуем строку в нижний регистр
transform(str.begin(), str.end(), str.begin(), ::tolower);
sort(str.begin(), str.end());
}
// функция которая сортирует строку по убыванию
void sortStringDescending(string& str) {
transform(str.begin(), str.end(), str.begin(), ::tolower);
sort(str.rbegin(), str.rend());
}

int main() {
setlocale(LC_ALL, "Russian");
string str;
cout << "Введите строку: ";
// 2 след. Строки проверяет написал ли пользователь и не делает ничего пока не будет написано
do getline(cin, str);
while (str.empty());
sortStringAscending(str);
cout << "Отсортированная строка. По возрастанию: " << str << endl;
sortStringDescending(str);
cout << "Отсортированная строка. По убыванию: " << str << endl;
return 0;
}
Результат виконання
Скрін результатів:

РОЗДІЛ 2. СТВОРЕННЯ ТА ВИКОРИСТАННЯ ФУНКЦІЙ


Мета:
Вивчення правил створення користувацьких функцій і роботи з ними
5.Разработать функцию, которая сортирует массивы по возрастанию, убыванию.
Массивы могут содержать следующие типы данных: int, long, 2 float, double, char.
Задачу решать или с помощью перегрузки функций или с помощью шаблонов.
Хід виконання: Блок-
схема:
Код:
#include <iostream>
#include <algorithm>

using namespace std;


// создаём шаблонную функцию которая будет использоваться разными типами данных
template <typename T>
void sortArray(T arr[], int size, bool ascending = true) {
// приводим каждый эл. массива к нижнему регистру
if (is_same<T, char>::value) {
for (int i = 0; i < size; i++) {
arr[i] = std::tolower(arr[i]);
}
}
// если по возрастанию , вызывается функ. для сорт. массива по возр.
if (ascending) {
sort(arr, arr + size);
}
// если по возрастанию = false , вызывается функ. для сорт. массива по убыв.
else {
sort(arr, arr + size,greater<T>());
}
}

int main() {
int int_arr[] = { 255, -5, 2, 1, -60 };
long long_arr[] = { 500000,-100000, 9000000, 1545455, 3123156 };
float float_arr[] = { 5.8f, 3.4f, 8.6f, 1.47f, 9.81f };
double double_arr[] = { 5.21, 3.32, 3.31, 1.12, 9.55 };
char char_arr[] = "Test of the program";
sortArray(int_arr, 5);
sortArray(long_arr, 5);
sortArray(float_arr, 5);
sortArray(double_arr, 5);
sortArray(char_arr, 13);
cout << "Sorted arrays in ascending order:" << endl;
for (int i = 0; i < 5; i++) {
cout << int_arr[i] << " ";
}
cout << endl;
for (int i = 0; i < 5; i++) {
cout << long_arr[i] << " ";
}
cout << endl;
for (int i = 0; i < 5; i++) {
cout << float_arr[i] << " ";
}
cout << endl;
for (int i = 0; i < 5; i++) {
cout <<double_arr[i] << " ";
}
cout << endl;
cout << char_arr << endl;
sortArray(int_arr, 5, false);
sortArray(long_arr, 5, false);
sortArray(float_arr, 5, false);
sortArray(double_arr, 5, false);
sortArray(char_arr, 13, false);
cout << "Sorted arrays in descending order:" << endl;
for (int i = 0; i < 5; i++) {
cout << int_arr[i] << " ";
}
cout << endl;
for (int i = 0; i < 5; i++) {
cout << long_arr[i] << " ";
}
cout << endl;
for (int i = 0; i < 5; i++) {
cout << float_arr[i] << " ";
}
cout << endl;
for (int i = 0; i < 5; i++) {
cout << double_arr[i] << " ";
}
cout << endl;
cout << char_arr << endl;
return 0;
}

Результат виконання Скрін


результатів:
РОЗДІЛ 3. РОЗВ'ЯЗАННЯ ЗАДАЧ ІЗ ВИКОРИСТАННЯМ ФАЙЛІВ
Мета:
Навчитися розв`язувати задачі з використанням файлів.
25. У файлі зберігається інформація про винахідницьку діяльність кафедр за три роки:
найменування кафедр, кількість заявок, кількість позитивних рішень. Написати
програму визначення кафедри, яка отримала максимальну кількість позитивних
рішень.
Хід виконання:
Блок-схема:
Код:
#include <iostream>
#include <fstream>
#include <string>

using namespace std;


// структура которая поможет вычислить макс. кол-во поз.запросов
struct Department {
string name;
int applications;
int approvals;
};
// функция которая читает данные из файла
void read_departments(Department* departments, int num_departments, const char* filename) {
ifstream input_file(filename);
if (!input_file.is_open()) {
cout << "Error" << endl;
return;
}
for (int i = 0; i < num_departments; i++) {
input_file >> departments[i].name >> departments[i].applications >> departments[i].approvals;
}
input_file.close();
}
// вычисление макс. кол-ва поз. запросов
Department get_max_approvals_department(Department* departments, int num_departments) {
Department max_department = departments[0];
for (int i = 1; i < num_departments; i++) {
if (departments[i].approvals > max_department.approvals) {
max_department = departments[i];
}
}
return max_department;
}

int main() {
const char* filename = "departments.txt";
const int num_departments = 3;
Department departments[num_departments];

read_departments(departments, num_departments, filename);

Department max_department = get_max_approvals_department(departments, num_departments);

cout << "Department with max approvals: " << max_department.name << " - " << max_department.approvals << endl;

return 0;
}
Результат виконання
Скрін результатів:

Висновки:
У 1-му розділі вивчив правила створення користувацьких функцій і роботи з ними.
Написав програму, яка сортує строку, введену користувачем, за зростанням та за
спаданням. У 2-му розділі вивчив правила створення користувацьких функцій і
роботи з ними. Написав програму, яка сортує масив з різними типами даних, за
зростанням та за спаданням. У 3-му розділі навчився розв`язувати задачі з
використанням файлів. Розробив програму, яка визначає кафедру, яка отримала
максимальну кількість позитивних запитів.

Вам также может понравиться