Даны действительный числа а1,...,а50 (из файла). Эти числа определяют 25 интервалов числовой оси (а1, а2), (а3, а4),...,(а49, а50). Построит
Даны действительный числа а1,...,а50 (из файла). Эти числа определяют 25 интервалов числовой оси (а1, а2), (а3, а4),...,(а49, а50). Построить столбчатую (горизонтальную) диаграмму числовых интервалов..
program GRAP; Uses Graph; Const n=25;{размер матрицы} Var xmax : Real;{Максимальный элемент в матрице} I,J : Byte; {Переменные для циклов} G, M : Integer;{переменные для графического режима} a:array[1..2*n] of real; arr:Array [1..n] of Real;{действительный массив их семи элементов} Stroka : String;{Промежуточная строка для преобразований} Xlv, Ylv, Xpn, Ypn : Integer; {координаты окна вывода диаграммы} t:text; Begin {Ввод массива} assign(t,'input.txt'); reset(t); for i:=1 to 2*n do read(t,a[i]); close(t); {Записываем числовые интервалы в другой массив} for i:=1 to n do arr[i]:=abs(-a[2*i-1]+a[2*i]); {Нахождение максимального элемента в массиве} xmax:=arr[1]; for i:=2 to n do begin if arr[i] > xmax then xmax := arr[i]; end; {Инициализация графического режима} G := detect; M := 0; initgraph(G, M, ''); {ЗаДание начальных параметров для отображения графика} Xlv := 50; Ylv := 50; Xpn:= GetMaxX-100; Ypn:= GetMaxY-50; i:= 0; {номер столбца при выводе} {Выводим масштабированные столюбцы} for j:=1 to n do begin {Установка цвета и заливки} setcolor(i mod 15 + 1); setfillstyle(1, i mod 15 + 1); {очередной столбец} bar(round(Xlv+i*(Xpn-Xlv)/n), Ypn, {Вывод прямоугольника масштабированного отностиельно максимального элемента массива} round(Xlv+(i+1)*(Xpn-Xlv)/n), round(Ypn-(Ypn-Ylv)/xmax*arr[j])); i:= i + 1;{Увеличиваем счетчик колонок диаграммы} {укажем, какому цвету какая величина соответствует(Выводим легенду)}
{Вывод квадратика с цветом в легенду} bar(getMaxx-70, 10+(i-1)*15, getMaxx-60, 10+(i-1)*15+10); str(arr[j]:5:1, stroka); outtextxy(getMaxx-40, 10+(i-1)*15+5, stroka);{Вывод текста в легенду} end; readln; closegraph;{Завершение работы с графическим режимом} End.