Сommit
99150a1122
@ -0,0 +1,34 @@
|
||||
# ---> C++
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
@ -0,0 +1,3 @@
|
||||
# lab01
|
||||
|
||||
Репозиторий для первой лабораторной работы по предмету Разработка программного обеспечения систем управления (ИДДО РПОСУ-Б-3-1-ЗаО)
|
@ -0,0 +1,76 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <iomanip>
|
||||
#include <algorithm>
|
||||
|
||||
const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана
|
||||
const size_t MAX_ASTERISK = SCREEN_WIDTH - 4; // Ограничение на длину столбца
|
||||
|
||||
// Функция для ввода данных: количество чисел и сами числа
|
||||
void input_data(std::vector<double>& numbers, size_t& bin_count) {
|
||||
size_t number_count;
|
||||
std::cerr << "Enter number count: ";
|
||||
std::cin >> number_count;
|
||||
|
||||
numbers.resize(number_count);
|
||||
std::cerr << "Enter numbers: ";
|
||||
for (size_t i = 0; i < number_count; ++i) {
|
||||
std::cin >> numbers[i];
|
||||
}
|
||||
|
||||
std::cerr << "Enter bin count: ";
|
||||
std::cin >> bin_count;
|
||||
}
|
||||
|
||||
// Функция для расчета количества чисел в каждой корзине
|
||||
void calculate_bins(const std::vector<double>& numbers, std::vector<size_t>& bins, double& min, double& max) {
|
||||
// Определяем минимальное и максимальное значение для диапазона
|
||||
min = *std::min_element(numbers.begin(), numbers.end());
|
||||
max = *std::max_element(numbers.begin(), numbers.end());
|
||||
|
||||
// Вычисляем размер каждой корзины
|
||||
double bin_size = (max - min) / bins.size();
|
||||
|
||||
// Заполняем корзины, увеличивая счётчик для каждого числа, попадающего в интервал
|
||||
for (const double& number : numbers) {
|
||||
size_t bin_index = static_cast<size_t>((number - min) / bin_size);
|
||||
if (bin_index >= bins.size()) bin_index = bins.size() - 1;
|
||||
bins[bin_index]++;
|
||||
}
|
||||
}
|
||||
|
||||
// Функция для вывода гистограммы
|
||||
void print_histogram(const std::vector<size_t>& bins) {
|
||||
// Находим максимальное количество чисел в одной корзине для масштабирования
|
||||
size_t max_count = *std::max_element(bins.begin(), bins.end());
|
||||
|
||||
// Проверка необходимости масштабирования
|
||||
bool needs_scaling = max_count > MAX_ASTERISK;
|
||||
|
||||
for (size_t i = 0; i < bins.size(); ++i) {
|
||||
std::cout << std::setw(3) << std::right << bins[i] << "|";
|
||||
|
||||
// Рассчитываем высоту столбца с учётом ограничения MAX_ASTERISK
|
||||
size_t height = needs_scaling ? static_cast<size_t>(MAX_ASTERISK * static_cast<double>(bins[i]) / max_count) : bins[i];
|
||||
|
||||
// Выводим звёздочки для визуализации количества элементов
|
||||
for (size_t j = 0; j < height; ++j) {
|
||||
std::cout << "*";
|
||||
}
|
||||
std::cout << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::vector<double> numbers; // Массив чисел
|
||||
size_t bin_count; // Количество корзин
|
||||
|
||||
input_data(numbers, bin_count); // Ввод данных
|
||||
|
||||
std::vector<size_t> bins(bin_count, 0); // Инициализируем корзины с нулями
|
||||
double min, max;
|
||||
calculate_bins(numbers, bins, min, max); // Подсчёт чисел в корзинах
|
||||
print_histogram(bins); // Вывод гистограммы
|
||||
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <iomanip>
|
||||
#include <algorithm>
|
||||
|
||||
const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана
|
||||
const size_t MAX_ASTERISK = SCREEN_WIDTH - 4; // Ограничение на длину столбца
|
||||
|
||||
// Функция для ввода данных: количество чисел и сами числа
|
||||
void input_data(std::vector<double>& numbers, size_t& bin_count) {
|
||||
size_t number_count;
|
||||
std::cerr << "Enter number count: ";
|
||||
std::cin >> number_count;
|
||||
|
||||
numbers.resize(number_count);
|
||||
std::cerr << "Enter numbers: ";
|
||||
for (size_t i = 0; i < number_count; ++i) {
|
||||
std::cin >> numbers[i];
|
||||
}
|
||||
|
||||
std::cerr << "Enter bin count: ";
|
||||
std::cin >> bin_count;
|
||||
}
|
||||
|
||||
// Функция для расчета количества чисел в каждой корзине
|
||||
void calculate_bins(const std::vector<double>& numbers, std::vector<size_t>& bins, double& min, double& max) {
|
||||
// Определяем минимальное и максимальное значение для диапазона
|
||||
min = *std::min_element(numbers.begin(), numbers.end());
|
||||
max = *std::max_element(numbers.begin(), numbers.end());
|
||||
|
||||
// Вычисляем размер каждой корзины
|
||||
double bin_size = (max - min) / bins.size();
|
||||
|
||||
// Заполняем корзины, увеличивая счётчик для каждого числа, попадающего в интервал
|
||||
for (const double& number : numbers) {
|
||||
size_t bin_index = static_cast<size_t>((number - min) / bin_size);
|
||||
if (bin_index >= bins.size()) bin_index = bins.size() - 1;
|
||||
bins[bin_index]++;
|
||||
}
|
||||
}
|
||||
|
||||
// Функция для вывода гистограммы
|
||||
void print_histogram(const std::vector<size_t>& bins) {
|
||||
// Находим максимальное количество чисел в одной корзине для масштабирования
|
||||
size_t max_count = *std::max_element(bins.begin(), bins.end());
|
||||
|
||||
// Проверка необходимости масштабирования
|
||||
bool needs_scaling = max_count > MAX_ASTERISK;
|
||||
|
||||
for (size_t i = 0; i < bins.size(); ++i) {
|
||||
std::cout << std::setw(3) << std::right << bins[i] << "|";
|
||||
|
||||
// Рассчитываем высоту столбца с учётом ограничения MAX_ASTERISK
|
||||
size_t height = needs_scaling ? static_cast<size_t>(MAX_ASTERISK * static_cast<double>(bins[i]) / max_count) : bins[i];
|
||||
|
||||
// Выводим звёздочки для визуализации количества элементов
|
||||
for (size_t j = 0; j < height; ++j) {
|
||||
std::cout << "*";
|
||||
}
|
||||
std::cout << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::vector<double> numbers; // Массив чисел
|
||||
size_t bin_count; // Количество корзин
|
||||
|
||||
input_data(numbers, bin_count); // Ввод данных
|
||||
|
||||
std::vector<size_t> bins(bin_count, 0); // Инициализируем корзины с нулями
|
||||
double min, max;
|
||||
calculate_bins(numbers, bins, min, max); // Подсчёт чисел в корзинах
|
||||
print_histogram(bins); // Вывод гистограммы
|
||||
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <iomanip>
|
||||
#include <algorithm>
|
||||
|
||||
const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана
|
||||
const size_t MAX_ASTERISK = SCREEN_WIDTH - 6; // Ограничение на длину столбца, с учетом увеличенного места для подписей
|
||||
|
||||
// Функция для ввода данных: количество чисел и сами числа
|
||||
void input_data(std::vector<double>& numbers, size_t& bin_count) {
|
||||
size_t number_count;
|
||||
std::cerr << "Enter number count: ";
|
||||
std::cin >> number_count;
|
||||
|
||||
numbers.resize(number_count);
|
||||
std::cerr << "Enter numbers: ";
|
||||
for (size_t i = 0; i < number_count; ++i) {
|
||||
std::cin >> numbers[i];
|
||||
}
|
||||
|
||||
std::cerr << "Enter bin count: ";
|
||||
std::cin >> bin_count;
|
||||
}
|
||||
|
||||
// Функция для расчета количества чисел в каждой корзине
|
||||
void calculate_bins(const std::vector<double>& numbers, std::vector<size_t>& bins, double& min, double& max) {
|
||||
min = *std::min_element(numbers.begin(), numbers.end());
|
||||
max = *std::max_element(numbers.begin(), numbers.end());
|
||||
|
||||
double bin_size = (max - min) / bins.size();
|
||||
|
||||
for (const double& number : numbers) {
|
||||
size_t bin_index = static_cast<size_t>((number - min) / bin_size);
|
||||
if (bin_index >= bins.size()) bin_index = bins.size() - 1;
|
||||
bins[bin_index]++;
|
||||
}
|
||||
}
|
||||
|
||||
// Функция для вывода гистограммы с промежуточными границами столбцов
|
||||
void print_histogram(const std::vector<size_t>& bins, double min, double max) {
|
||||
size_t max_count = *std::max_element(bins.begin(), bins.end());
|
||||
bool needs_scaling = max_count > MAX_ASTERISK;
|
||||
double bin_size = (max - min) / bins.size();
|
||||
|
||||
for (size_t i = 0; i < bins.size(); ++i) {
|
||||
// Вывод количества элементов с полем в 6 символов
|
||||
std::cout << std::setw(6) << std::right << bins[i] << "|";
|
||||
|
||||
// Рассчитываем высоту столбца с учетом ограничения MAX_ASTERISK
|
||||
size_t height = needs_scaling ? static_cast<size_t>(MAX_ASTERISK * static_cast<double>(bins[i]) / max_count) : bins[i];
|
||||
|
||||
// Выводим звездочки для визуализации количества элементов
|
||||
for (size_t j = 0; j < height; ++j) {
|
||||
std::cout << "*";
|
||||
}
|
||||
std::cout << "\n";
|
||||
|
||||
// Выводим промежуточные границы между столбцами (исключая первую границу)
|
||||
if (i < bins.size() - 1) {
|
||||
double boundary = min + (i + 1) * bin_size;
|
||||
std::cout << std::fixed << std::setprecision(2) << boundary << "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::vector<double> numbers;
|
||||
size_t bin_count;
|
||||
|
||||
input_data(numbers, bin_count);
|
||||
|
||||
std::vector<size_t> bins(bin_count, 0);
|
||||
double min, max;
|
||||
calculate_bins(numbers, bins, min, max);
|
||||
print_histogram(bins, min, max);
|
||||
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <iomanip>
|
||||
#include <algorithm>
|
||||
|
||||
const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана
|
||||
const size_t MAX_ASTERISK = SCREEN_WIDTH - 6; // Ограничение на длину столбца, с учетом увеличенного места для подписей
|
||||
|
||||
// Функция для ввода данных: количество чисел и сами числа
|
||||
void input_data(std::vector<double>& numbers, size_t& bin_count) {
|
||||
size_t number_count;
|
||||
std::cerr << "Enter number count: ";
|
||||
std::cin >> number_count;
|
||||
|
||||
numbers.resize(number_count);
|
||||
std::cerr << "Enter numbers: ";
|
||||
for (size_t i = 0; i < number_count; ++i) {
|
||||
std::cin >> numbers[i];
|
||||
}
|
||||
|
||||
std::cerr << "Enter bin count: ";
|
||||
std::cin >> bin_count;
|
||||
}
|
||||
|
||||
// Функция для расчета количества чисел в каждой корзине
|
||||
void calculate_bins(const std::vector<double>& numbers, std::vector<size_t>& bins, double& min, double& max) {
|
||||
min = *std::min_element(numbers.begin(), numbers.end());
|
||||
max = *std::max_element(numbers.begin(), numbers.end());
|
||||
|
||||
double bin_size = (max - min) / bins.size();
|
||||
|
||||
for (const double& number : numbers) {
|
||||
size_t bin_index = static_cast<size_t>((number - min) / bin_size);
|
||||
if (bin_index >= bins.size()) bin_index = bins.size() - 1;
|
||||
bins[bin_index]++;
|
||||
}
|
||||
}
|
||||
|
||||
// Функция для вывода гистограммы с промежуточными границами столбцов
|
||||
void print_histogram(const std::vector<size_t>& bins, double min, double max) {
|
||||
size_t max_count = *std::max_element(bins.begin(), bins.end());
|
||||
bool needs_scaling = max_count > MAX_ASTERISK;
|
||||
double bin_size = (max - min) / bins.size();
|
||||
|
||||
for (size_t i = 0; i < bins.size(); ++i) {
|
||||
// Вывод количества элементов с полем в 6 символов
|
||||
std::cout << std::setw(6) << std::right << bins[i] << "|";
|
||||
|
||||
// Рассчитываем высоту столбца с учетом ограничения MAX_ASTERISK
|
||||
size_t height = needs_scaling ? static_cast<size_t>(MAX_ASTERISK * static_cast<double>(bins[i]) / max_count) : bins[i];
|
||||
|
||||
// Выводим звездочки для визуализации количества элементов
|
||||
for (size_t j = 0; j < height; ++j) {
|
||||
std::cout << "*";
|
||||
}
|
||||
std::cout << "\n";
|
||||
|
||||
// Выводим промежуточные границы между столбцами (исключая первую границу)
|
||||
if (i < bins.size() - 1) {
|
||||
double boundary = min + (i + 1) * bin_size;
|
||||
std::cout << std::fixed << std::setprecision(2) << boundary << "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::vector<double> numbers;
|
||||
size_t bin_count;
|
||||
|
||||
input_data(numbers, bin_count);
|
||||
|
||||
std::vector<size_t> bins(bin_count, 0);
|
||||
double min, max;
|
||||
calculate_bins(numbers, bins, min, max);
|
||||
print_histogram(bins, min, max);
|
||||
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,121 @@
|
||||
@echo off
|
||||
REM Пути к тестовым файлам для базовой версии и варианта 12
|
||||
set input_dir=tests\base_version\input
|
||||
set expected_dir=tests\base_version\expected
|
||||
set actual_dir=tests\base_version\actual
|
||||
|
||||
set var12_input_dir=tests\var12_version\input
|
||||
set var12_expected_dir=tests\var12_version\expected
|
||||
set var12_actual_dir=tests\var12_version\actual
|
||||
|
||||
REM Переменные для подсчета непройденных тестов
|
||||
set /a failed_tests=0
|
||||
set /a var12_failed_tests=0
|
||||
|
||||
REM Создаем папки для результатов, если они не существуют
|
||||
if not exist %actual_dir% mkdir %actual_dir%
|
||||
if not exist %var12_actual_dir% mkdir %var12_actual_dir%
|
||||
|
||||
REM --- Базовые тесты ---
|
||||
echo Running Base Test 1
|
||||
lab01.exe < %input_dir%\01-scaling.input.txt > %actual_dir%\01-scaling.actual.txt 2>NUL
|
||||
fc /N %actual_dir%\01-scaling.actual.txt %expected_dir%\01-scaling.expected.txt >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo Base Test 1 passed
|
||||
) else (
|
||||
echo Base Test 1 failed
|
||||
set /a failed_tests+=1
|
||||
fc /N %actual_dir%\01-scaling.actual.txt %expected_dir%\01-scaling.expected.txt
|
||||
)
|
||||
echo ---------------------------------------------------
|
||||
|
||||
echo Running Base Test 2
|
||||
lab01.exe < %input_dir%\02-scaling.input.txt > %actual_dir%\02-scaling.actual.txt 2>NUL
|
||||
fc /N %actual_dir%\02-scaling.actual.txt %expected_dir%\02-scaling.expected.txt >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo Base Test 2 passed
|
||||
) else (
|
||||
echo Base Test 2 failed
|
||||
set /a failed_tests+=1
|
||||
fc /N %actual_dir%\02-scaling.actual.txt %expected_dir%\02-scaling.expected.txt
|
||||
)
|
||||
echo ---------------------------------------------------
|
||||
|
||||
echo Running Base Test 3
|
||||
lab01.exe < %input_dir%\03-scaling.input.txt > %actual_dir%\03-scaling.actual.txt 2>NUL
|
||||
fc /N %actual_dir%\03-scaling.actual.txt %expected_dir%\03-scaling.expected.txt >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo Base Test 3 passed
|
||||
) else (
|
||||
echo Base Test 3 failed
|
||||
set /a failed_tests+=1
|
||||
fc /N %actual_dir%\03-scaling.actual.txt %expected_dir%\03-scaling.expected.txt
|
||||
)
|
||||
echo ---------------------------------------------------
|
||||
|
||||
echo Running Base Test 4
|
||||
lab01.exe < %input_dir%\04-scaling.input.txt > %actual_dir%\04-scaling.actual.txt 2>NUL
|
||||
fc /N %actual_dir%\04-scaling.actual.txt %expected_dir%\04-scaling.expected.txt >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo Base Test 4 passed
|
||||
) else (
|
||||
echo Base Test 4 failed
|
||||
set /a failed_tests+=1
|
||||
fc /N %actual_dir%\04-scaling.actual.txt %expected_dir%\04-scaling.expected.txt
|
||||
)
|
||||
echo ---------------------------------------------------
|
||||
|
||||
REM --- Тесты варианта 12 ---
|
||||
echo Running Var12 Test 1
|
||||
lab01_12var.exe < %var12_input_dir%\01-scaling.input.txt > %var12_actual_dir%\01-scaling.actual.txt 2>NUL
|
||||
fc /N %var12_actual_dir%\01-scaling.actual.txt %var12_expected_dir%\01-scaling.expected.txt >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo Var12 Test 1 passed
|
||||
) else (
|
||||
echo Var12 Test 1 failed
|
||||
set /a var12_failed_tests+=1
|
||||
fc /N %var12_actual_dir%\01-scaling.actual.txt %var12_expected_dir%\01-scaling.expected.txt
|
||||
)
|
||||
echo ---------------------------------------------------
|
||||
|
||||
echo Running Var12 Test 2
|
||||
lab01_12var.exe < %var12_input_dir%\02-scaling.input.txt > %var12_actual_dir%\02-scaling.actual.txt 2>NUL
|
||||
fc /N %var12_actual_dir%\02-scaling.actual.txt %var12_expected_dir%\02-scaling.expected.txt >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo Var12 Test 2 passed
|
||||
) else (
|
||||
echo Var12 Test 2 failed
|
||||
set /a var12_failed_tests+=1
|
||||
fc /N %var12_actual_dir%\02-scaling.actual.txt %var12_expected_dir%\02-scaling.expected.txt
|
||||
)
|
||||
echo ---------------------------------------------------
|
||||
|
||||
echo Running Var12 Test 3
|
||||
lab01_12var.exe < %var12_input_dir%\03-scaling.input.txt > %var12_actual_dir%\03-scaling.actual.txt 2>NUL
|
||||
fc /N %var12_actual_dir%\03-scaling.actual.txt %var12_expected_dir%\03-scaling.expected.txt >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo Var12 Test 3 passed
|
||||
) else (
|
||||
echo Var12 Test 3 failed
|
||||
set /a var12_failed_tests+=1
|
||||
fc /N %var12_actual_dir%\03-scaling.actual.txt %var12_expected_dir%\03-scaling.expected.txt
|
||||
)
|
||||
echo ---------------------------------------------------
|
||||
|
||||
echo Running Var12 Test 4
|
||||
lab01_12var.exe < %var12_input_dir%\04-scaling.input.txt > %var12_actual_dir%\04-scaling.actual.txt 2>NUL
|
||||
fc /N %var12_actual_dir%\04-scaling.actual.txt %var12_expected_dir%\04-scaling.expected.txt >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo Var12 Test 4 passed
|
||||
) else (
|
||||
echo Var12 Test 4 failed
|
||||
set /a var12_failed_tests+=1
|
||||
fc /N %var12_actual_dir%\04-scaling.actual.txt %var12_expected_dir%\04-scaling.expected.txt
|
||||
)
|
||||
echo ---------------------------------------------------
|
||||
|
||||
REM Вывод итогов
|
||||
echo All tests completed.
|
||||
echo Number of failed base tests: %failed_tests%
|
||||
echo Number of failed Var12 tests: %var12_failed_tests%
|
||||
pause
|
@ -0,0 +1,5 @@
|
||||
2|**
|
||||
2|**
|
||||
2|**
|
||||
2|**
|
||||
2|**
|
@ -0,0 +1,3 @@
|
||||
3|***
|
||||
2|**
|
||||
3|***
|
@ -0,0 +1,3 @@
|
||||
9|******
|
||||
33|*************************
|
||||
100|****************************************************************************
|
@ -0,0 +1,2 @@
|
||||
5|*****
|
||||
0|
|
@ -0,0 +1,5 @@
|
||||
2|**
|
||||
2|**
|
||||
2|**
|
||||
2|**
|
||||
2|**
|
@ -0,0 +1,3 @@
|
||||
3|***
|
||||
2|**
|
||||
3|***
|
@ -0,0 +1,3 @@
|
||||
9|******
|
||||
33|*************************
|
||||
100|****************************************************************************
|
@ -0,0 +1,2 @@
|
||||
5|*****
|
||||
0|
|
@ -0,0 +1,3 @@
|
||||
10
|
||||
1 2 3 4 5 6 7 8 9 10
|
||||
5
|
@ -0,0 +1,3 @@
|
||||
8
|
||||
2.5 2.7 3.1 3.9 4.2 4.8 5.1 5.9
|
||||
3
|
@ -0,0 +1,5 @@
|
||||
142
|
||||
1 1 1 1 1 1 1 1 1
|
||||
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3
|
@ -0,0 +1,3 @@
|
||||
5
|
||||
4 4 4 4 4
|
||||
2
|
@ -0,0 +1,9 @@
|
||||
2|**
|
||||
2.80
|
||||
2|**
|
||||
4.60
|
||||
2|**
|
||||
6.40
|
||||
2|**
|
||||
8.20
|
||||
2|**
|
@ -0,0 +1,5 @@
|
||||
3|***
|
||||
3.63
|
||||
2|**
|
||||
4.77
|
||||
3|***
|
@ -0,0 +1,5 @@
|
||||
9|******
|
||||
1.67
|
||||
33|************************
|
||||
2.33
|
||||
100|**************************************************************************
|
@ -0,0 +1,3 @@
|
||||
5|*****
|
||||
4.00
|
||||
0|
|
@ -0,0 +1,9 @@
|
||||
2|**
|
||||
2.80
|
||||
2|**
|
||||
4.60
|
||||
2|**
|
||||
6.40
|
||||
2|**
|
||||
8.20
|
||||
2|**
|
@ -0,0 +1,5 @@
|
||||
3|***
|
||||
3.63
|
||||
2|**
|
||||
4.77
|
||||
3|***
|
@ -0,0 +1,5 @@
|
||||
9|******
|
||||
1.67
|
||||
33|************************
|
||||
2.33
|
||||
100|**************************************************************************
|
@ -0,0 +1,3 @@
|
||||
5|*****
|
||||
4.00
|
||||
0|
|
@ -0,0 +1,3 @@
|
||||
10
|
||||
1 2 3 4 5 6 7 8 9 10
|
||||
5
|
@ -0,0 +1,3 @@
|
||||
8
|
||||
2.5 2.7 3.1 3.9 4.2 4.8 5.1 5.9
|
||||
3
|
@ -0,0 +1,5 @@
|
||||
142
|
||||
1 1 1 1 1 1 1 1 1
|
||||
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3
|
@ -0,0 +1,3 @@
|
||||
5
|
||||
4 4 4 4 4
|
||||
2
|
Загрузка…
Ссылка в новой задаче