Гистограмма
Данная программа должна строить Гистограмму следующим образом:
Функция int CreateMas(int); создает массив чисел из SZ чисел в диапазоне от 0, 25.
Функция int CountEl(); создает новый массив и считает количество одинаковых элементов.
ТО ЧТО НЕОБХОДИМО СДЕЛАТЬ: Необходимо ввести диапазон обрабатываемых значений пусть будет (от 5 до 15), которые ДОЛЖНЫ ОБЯЗАТЕЛЬНО передаваться в конструктор. (тоесть все значения от 0 до 4 и от 16 до 25 на гистограмме не учитываются). В заданом диапазоне (от 0 до 15) Построить двумерную матрицу символов ввиде гистограммы, следующего типа:
ПРимер:
Рендом: 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 3 5 15 8 9
Массив повторов: Сколько раз встречается каждый элемент:
1 встречается 3 раза, 2 встречается 4 раза и т.д...
Гистограмма:
5 6 7 8 9 10 11 12 13 14 15
* * * * * * *
* * *
*
*
Цитата:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#pragma hdrstop
#define MAX_ZN 25
//---------------------------------------------------------------------------
class Histogram
{
int SIZE;
int *MRan;
int *MCount;
int i;
public:
Histogram(int, int);
~Histogram();
int CreateMas(int);
int CountEl();
void CreateMat();
};
Histogram::Histogram(int iMaxPos,int iMinPos)
{
}
Histogram::~Histogram()
{
}
int Histogram::CreateMas(int sz)
{
randomize();
MRan = new int [sz];
for (i = 0; i < sz; i++) {
MRan=random(MAX_ZN);
}
for (i = 0; i < sz; i++) {
cout<<MRan<<" ";
}
cout<<endl;
}
int Histogram::CountEl()
{
MCount = new int [MAX_ZN];
for (i = 0; i < MAX_ZN; i++) {
MCount=0;
}
for (i = 0; i < MAX_ZN; i++) {
MCount[MRan]++;
}
for (i = 0; i < MAX_ZN; i++) {
cout<<MCount<<" ";
}
return 0;
}
void Histogram::CreateMat()
{
}
int main(int argc, char* argv[])
{
Histogram l(0,10);
int size;
cin>>size;
l.CreateMas(size);
l.CountEl();
getch();
return 0;
}
//---------------------------------------------------------------------------