CCCPaste

Шаблоны функций и классов

Часть 1: Шаблоны функций
Задача 1: Напишите шаблон функции для вычисления суммы двух чисел.

#include <iostream>

// место для шаблонной функции

int main() {
std::cout << "Sum (int): " << sum_(5, 10) << std::endl;
std::cout << "Sum (double): " << sum_(3.14, 2.71) << std::endl;
return 0;
}

Задача 2: Напишите шаблон функции для нахождения минимального значения.

#include <iostream>

// место для шаблонной функции

int main() {
std::cout << "Min (int): " << min_(5, 10) << std::endl;
std::cout << "Min (double): " << min_(3.14, 2.71) << std::endl;
return 0;
}

Задача 3: Напишите шаблон функции для проверки равенства двух значений.

#include <iostream>

// место для шаблонной функции

int main() {
std::cout << "Equal (int): " << isEqual_(5, 5) << std::endl;
std::cout << "Equal (double): " << isEqual_(3.14, 2.71) << std::endl;
return 0;
}

Задача 4: Напишите шаблон функции для вывода массива на экран.

#include <iostream>

// место для шаблонной функции

int main() {
int intArr[] = {1, 2, 3, 4, 5};
double doubleArr[] = {1.1, 2.2, 3.3};

printArray_(intArr, 5);
printArray_(doubleArr, 3);

return 0;
}

Задача 5: Напишите шаблон функции для нахождения среднего значения элементов массива.

#include <iostream>

// место для шаблонной функции

int main() {
int intArr[] = {1, 2, 3, 4, 5};
double doubleArr[] = {1.1, 2.2, 3.3};

std::cout << "Average (int): " << average_(intArr, 5) << std::endl;
std::cout << "Average (double): " << average_(doubleArr, 3) << std::endl;

return 0;
}

Задача 6: Напишите шаблон функции для поиска элемента в массиве.

#include <iostream>

// место для шаблонной функции

int main() {
int arr[] = {1, 2, 3, 4, 5};
std::cout << "Find (int): " << findElement_(arr, 5, 3) << std::endl;
std::cout << "Find (int): " << findElement_(arr, 5, 10) << std::endl;

return 0;
}

Задача 7: Напишите шаблон функции для подсчета количества положительных чисел в массиве.

#include <iostream>

// место для шаблонной функции

int main() {
int arr[] = {-1, 2, -3, 4, 5};
std::cout << "Positive count: " << countPositive_(arr, 5) << std::endl;

return 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////

Часть 2: Шаблоны классов
Задача 1: Напишите шаблон класса для хранения одного значения.

#include <iostream>

// место для шаблонного класса

int main() {
Value_<int> intValue(10);
std::cout << "Value: " << intValue.getValue_() << std::endl;

Value_<double> doubleValue(3.14);
std::cout << "Value: " << doubleValue.getValue_() << std::endl;

return 0;
}

Задача 2: Напишите шаблон класса для хранения пары значений.

#include <iostream>

// место для шаблонного класса

int main() {
Pair_<int, double> pair(10, 3.14);
pair.print_();

return 0;
}

Задача 3: Напишите шаблон класса для реализации двумерной точки.

#include <iostream>

// место для шаблонного класса

int main() {
Point_<int> p1(10, 20);
p1.print_();

Point_<double> p2(3.14, 2.71);
p2.print_();

return 0;
}