Построить гистограмму для заданных значений - 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.

Объяснение кода листинга программы

  1. Объявлены переменные: i, x0, y0, w, mx, h, s, c.
  2. Задаются значения переменных: w=20, x0=50, y0=windowheight-80, mx=a[1], h=(y0-40)/mx.
  3. Переменная mx обновляется, если встречается большее значение в массиве a.
  4. Для каждого элемента массива a рисуется прямоугольник с заданной шириной, шагом и высотой, соответствующей его значению.
  5. Цвет кисти и пера устанавливается в случайный цвет c.
  6. Brush.Style сбрасывается на bsClear после вывода текста.
  7. Строка s формируется из числа a[i] с точностью до 5 знаков после запятой и выводится на экран с помощью функции textout.
  8. Код выполняется для каждого элемента массива a.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы