Построить гистограмму для заданных значений - PascalABC.NET
Формулировка задачи:
Столбчатая диаграмма (гистограмма) представляет собой набор прямоугольников, основания которых равны, а высоты пропорциональны числовым величинам, взятым из некоторой совокупности. Прямоугольники диаграммы обычно закрашивают в разные цвета. Даны семь действительных положительных чисел а1,…,а7. Построить гистограмму для этих значений.
Решение задачи: «Построить гистограмму для заданных значений»
textual
Листинг программы
uses graphABC; const a:array[1..7] of real=(15.05,10.30,17.23,11.60,19.32,21.95,18.70); var i,x0,y0,w:integer; mx,h:real; s:string; c:Color; begin w:=20;{ширина столбцов} x0:=50;{левый край диагоаммы} y0:=windowheight-80;{нижний край} mx:=a[1]; for i:=1 to 7 do if a[i]>mx then mx:=a[i];{находим максимум} h:=(y0-40)/mx;{масштаб по вертикали} for i:=1 to 7 do begin c:=clRandom;{случайный цвет} Pen.Color:=c; Brush.Color:=c; Brush.Style:=bsSolid; {рисуем прямоугольники с заданной шириной, шагом и высотой соответственно значению чисел в массиве} rectangle(x0+4*w*(i-1),y0-round(a[i]*h),x0+w*(4*i-2),y0); Brush.Style:=bsClear; str(a[i]:5:2,s);{преобразуем числа в строку} textout(x0+4*w*(i-1),y0-round(a[i]*h)-20,s);{выводим цену выше столбика} end; end.
Объяснение кода листинга программы
- Объявлены переменные: i, x0, y0, w, mx, h, s, c.
- Задаются значения переменных: w=20, x0=50, y0=windowheight-80, mx=a[1], h=(y0-40)/mx.
- Переменная mx обновляется, если встречается большее значение в массиве a.
- Для каждого элемента массива a рисуется прямоугольник с заданной шириной, шагом и высотой, соответствующей его значению.
- Цвет кисти и пера устанавливается в случайный цвет c.
- Brush.Style сбрасывается на bsClear после вывода текста.
- Строка s формируется из числа a[i] с точностью до 5 знаков после запятой и выводится на экран с помощью функции textout.
- Код выполняется для каждого элемента массива a.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д