Как создать гистограмму с помощью кода программирования C
Гистограммы обычно используются в качестве варианта диаграммы при анализе данных в программах для работы с электронными таблицами и в программах для редактирования изображений для демонстрации распределения тонов от черного к белому на изображении. В языке программирования C использование массива для хранения подсчета частот упрощает создание гистограммы вашего набора данных. Хотя наборы данных, используемые для создания гистограмм, обычно содержат целые числа, символы и даже строки можно подсчитывать и отображать в виде графиков.
Шаг 1
Заполните целочисленный массив под названием «values» вашим набором данных и задайте для переменной «numvalues» количество значений в вашем наборе данных. Они могут быть сгенерированы случайным образом, прочитаны из файла или получены от пользователя в интерактивном режиме. В этом примере эти переменные инициализируются при их объявлении:
целые числовые значения =20; int values[numvalues] ={-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3 };
Шаг 2
Настройте две целочисленные переменные (i и j) для использования в качестве итераторов:
интервал i =0, j =0;
Шаг 3
Переберите ваши данные — массив значений — и установите для переменной «maxval» максимальное значение ваших данных:
интервал максзнач =0; for (i=0; i
Шаг 4
Просмотрите свои данные и установите для переменной "minval" максимальное значение ваших данных:
интервал минимальное значение =максимальное значение; for (i=0; i
Объявите переменную "freqsize" для хранения размера массива частот:
int freqsize =максимальное значение - минимальное значение + 1;
Объявите массив для хранения счетчиков частоты и инициализируйте каждый элемент массива нулем:
целая частота[частота]; for (i=0; i
Для каждого возможного значения в вашем наборе данных существует один элемент массива.
Пройдитесь по каждому значению в наборе данных, добавляя единицу к элементу массива частот, соответствующему этому значению:
for (i =0; i
Индекс, соответствующий текущему значению, создается путем сдвига значения на минимальное значение.
Пройдитесь по каждому элементу в частотном массиве. Вывести текущее значение (вычисляется сдвигом итератора «i» на минимальное значение). Выведите количество звездочек (*), соответствующих частоте текущего значения, зациклив от единицы до значения, хранящегося в массиве частот, печатая каждый раз одну звездочку:
for (i=1; i<=freqsize; i++) { printf("%2d\t|", i + minval); for(j=0; j<частота[i]; j++) { printf("*") } printf("\n") } Шаг 5
Шаг 6
Шаг 7
Шаг 8