Грудинин Егор 11 месяцев назад
Родитель 5845a2206a
Сommit 72875eb275

@ -12,26 +12,24 @@ struct Input
size_t bin_count{};
};
Input
input_data()
{
Input input_data(istream& stream) {
Input in;
size_t number_count;
cerr << "Enter number count: ";
cin >> number_count;
Input in;
stream >> number_count;
in.numbers.resize(number_count);
for (size_t i = 0; i < number_count; i++)
{
cin >> in.numbers[i];
for (size_t i = 0; i < number_count; i++) {
stream >> in.numbers[i];
}
cerr << "Enter bin count: ";
cin >> in.bin_count;
stream >> in.bin_count;
return in;
}
int main()
{
Input in = input_data();
Input in = input_data(cin);
vector<size_t> bins = make_histogram(in.numbers, in.bin_count);
show_histogram_svg(bins);
}

@ -14,8 +14,8 @@ const auto BLOCK_WIDTH = 10;
const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH;
void
svg_text(double left, double baseline, int font_size, string text) {
cout << "<text x='" << left << "' y='" << baseline << "' font-size='" << font_size << "'>" << text << "</text>";
svg_text(double left, double baseline, string text) {
cout << "<text x='" << left << "' y='" << baseline << "'>" << text << "</text>";
}
void
@ -38,28 +38,9 @@ svg_end() {
cout << "</svg>\n";
}
void
proverka(bool& flag, int font_size){
if (font_size < 8) {
cerr << "Font size is too small. Please enter a value between 8 and 32." << endl;
flag = true;
} else if (font_size > 32) {
cerr << "Font size is too large. Please enter a value between 8 and 32." << endl;
flag = true;
} else {
flag = false;
}
}
void
show_histogram_svg(const vector<size_t>& bins) {
int font_size = 12;
bool flag = true;
while(flag) {
cerr << "Enter font size (8-32): ";
cin >> font_size;
proverka(flag, font_size);
}
const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH;
size_t max_count = 0;
for (size_t x : bins) {
@ -78,7 +59,7 @@ show_histogram_svg(const vector<size_t>& bins) {
double top = 0;
for (size_t bin : bins) {
double bin_width = BLOCK_WIDTH * bin * scale_factor;
svg_text(TEXT_LEFT, top + TEXT_BASELINE, font_size, to_string(bin));
svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin));
svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT);
top += BIN_HEIGHT;
}

Загрузка…
Отмена
Сохранить