С++
Создать библиотеку для работы с массивом разного типа (int, double, char, string);
1.1) Заполнение одномерного массива случайными числами; (int, double)
1.2) Заполнение одномерного массива с клавиатуры; (char, string)
2) Вывод массива на экран;
3) Вращение одномерного массива(реверса)
4) Составление массива (int, double)
5) Поиска в массиве заданного значения (вернуть позицию первого вхождения, если нет –1)
6) Написать функцию, определяющую минимум (возвращающий значение) элементов переданного ей массива. (int, double)
7) Написать функцию, определяющую максимум (возвращающий значение) элементов переданного ей массива. (int, double)
8) Написать функцию, определяющую минимум (возвращает позицию первого вхождения элементов переданного ей массива. (int, double)
9) Написать функцию, определяющую максимум(возвращает позицию первого вхождения элементов переданного ей массива. (int, double)
Answers & Comments
Вот пример библиотеки для работы с массивом разного типа на языке программирования C++:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
template <typename T>
class Array {
private:
T* data;
size_t size;
public:
Array(size_t s): size(s), data(new T[s]) {}
~Array() { delete[] data; }
// Заполнение массива случайными числами
void fill_random(T min, T max) {
std::srand(std::time(nullptr));
for (size_t i = 0; i < size; i++) {
data[i] = static_cast<T>(min + (max - min) * std::rand() / RAND_MAX);
}
}
// Заполнение массива с клавиатуры
void fill_from_input() {
for (size_t i = 0; i < size; i++) {
std::cin >> data[i];
}
}
// Вывод массива на экран
void print() const {
for (size_t i = 0; i < size; i++) {
std::cout << data[i] << ' ';
}
std::cout << std::endl;
}
// Реверс массива
void reverse() {
for (size_t i = 0; i < size / 2; i++) {
T tmp = data[i];
data[i] = data[size - i - 1];
data[size - i - 1] = tmp;
}
}
// Поиск значения в массиве
int find(T val) const {
for (size_t i = 0; i < size; i++) {
if (data[i] == val) {
return static_cast<int>(i);
}
}
return -1;
}
// Нахождение минимума в массиве
T find_min() const {
T min_val = data[0];
for (size_t i = 1; i < size; i++) {
if (data[i] < min_val) {
min_val = data[i];
}
}
return min_val;
}
// Нахождение максимума в массиве
T find_max() const {
T max_val = data[0];
for (size_t i = 1; i < size; i++) {
if (data[i] > max_val) {
max_val = data[i];
}
}
return max_val;
}
// Нахождение позиции первого вхождения минимума в массиве
int find_min_index() const {
int min_idx = 0;
for (size_t i = 1; i < size; i++) {
if (data[i] < data[min_idx]) {
min_idx = static_cast<int>(i);
}
}
return min_idx;
}
// Нахождение позиции первого вхождения максимума в массиве
int find_max_index() const {
int max_idx = 0;
for (size_t i = 1; i < size; i++) {
if (data[i] > data[max_idx]) {
max_idx = static_cast<int>(i);
}
}
return max_idx;