new
Этот коммит содержится в:
3
lab1/check_general.bat
Обычный файл
3
lab1/check_general.bat
Обычный файл
@@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
g++ -o general_program general_program.cpp
|
||||
general_program.exe < input.txt > output_general.txt
|
||||
9
lab1/check_individual.bat
Обычный файл
9
lab1/check_individual.bat
Обычный файл
@@ -0,0 +1,9 @@
|
||||
@echo off
|
||||
|
||||
g++ individual_program.cpp -o individual_program.exe
|
||||
|
||||
|
||||
individual_program.exe < input.txt > output_individual.txt
|
||||
|
||||
fc output_individual.txt expected_output.txt
|
||||
pause
|
||||
2
lab1/expected_output.txt
Обычный файл
2
lab1/expected_output.txt
Обычный файл
@@ -0,0 +1,2 @@
|
||||
Number of columns: 2
|
||||
Formula used: Square root formula (sqrt(N))
|
||||
48
lab1/general_program.cpp
Обычный файл
48
lab1/general_program.cpp
Обычный файл
@@ -0,0 +1,48 @@
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <iomanip>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
size_t number_count;
|
||||
cout << "Enter number count: ";
|
||||
cin >> number_count;
|
||||
|
||||
vector<double> numbers(number_count);
|
||||
cout << "Enter numbers:\n";
|
||||
for (size_t i = 0; i < number_count; ++i) {
|
||||
cin >> numbers[i];
|
||||
}
|
||||
|
||||
size_t bin_count;
|
||||
cout << "Enter number of bins: ";
|
||||
cin >> bin_count;
|
||||
|
||||
double min = *min_element(numbers.begin(), numbers.end());
|
||||
double max = *max_element(numbers.begin(), numbers.end());
|
||||
double bin_size = (max - min) / bin_count;
|
||||
|
||||
vector<size_t> bins(bin_count, 0);
|
||||
for (double number : numbers) {
|
||||
size_t bin_index = static_cast<size_t>((number - min) / bin_size);
|
||||
if (bin_index >= bin_count) bin_index = bin_count - 1;
|
||||
bins[bin_index]++;
|
||||
}
|
||||
|
||||
size_t max_bin_count = *max_element(bins.begin(), bins.end());
|
||||
const size_t max_width = 80;
|
||||
double scaling_factor = max_bin_count > max_width ? static_cast<double>(max_width) / max_bin_count : 1.0;
|
||||
|
||||
for (size_t i = 0; i < bin_count; ++i) {
|
||||
cout << bins[i] << "|";
|
||||
size_t scaled_height = static_cast<size_t>(bins[i] * scaling_factor);
|
||||
for (size_t j = 0; j < scaled_height; ++j) {
|
||||
cout << '*';
|
||||
}
|
||||
cout << '\n';
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
33
lab1/individual_program.cpp
Обычный файл
33
lab1/individual_program.cpp
Обычный файл
@@ -0,0 +1,33 @@
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
int N;
|
||||
cout << "Enter the total number of elements (N): ";
|
||||
cin >> N;
|
||||
|
||||
int columns;
|
||||
string formula_used;
|
||||
|
||||
if (N == 0) {
|
||||
columns = 0;
|
||||
formula_used = "None (N is 0)";
|
||||
} else {
|
||||
double sqrt_value = sqrt(N);
|
||||
|
||||
if (sqrt_value > 25) {
|
||||
columns = 1 + static_cast<int>(log2(N));
|
||||
formula_used = "Sturges' formula (1 + floor(log2(N)))";
|
||||
} else {
|
||||
columns = static_cast<int>(sqrt_value);
|
||||
formula_used = "Square root formula (sqrt(N))";
|
||||
}
|
||||
}
|
||||
|
||||
cout << "Number of columns: " << columns << endl;
|
||||
cout << "Formula used: " << formula_used << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
3
lab1/input.txt
Обычный файл
3
lab1/input.txt
Обычный файл
@@ -0,0 +1,3 @@
|
||||
7
|
||||
1 2 2 3 3 3 4
|
||||
4
|
||||
5
lab1/output_general.txt
Обычный файл
5
lab1/output_general.txt
Обычный файл
@@ -0,0 +1,5 @@
|
||||
Enter number count: Enter numbers:
|
||||
Enter number of bins: 1|*
|
||||
2|**
|
||||
3|***
|
||||
1|*
|
||||
2
lab1/output_individual.txt
Обычный файл
2
lab1/output_individual.txt
Обычный файл
@@ -0,0 +1,2 @@
|
||||
Enter the total number of elements (N): Number of columns: 2
|
||||
Formula used: Square root formula (sqrt(N))
|
||||
Ссылка в новой задаче
Block a user