Побудова діаграм

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Нехай є послідовність позитивних дійсних чисел a1, a2, ..., an, що позначає результати будь-яких вимірів (наприклад, висоти вершин гір над рівнем моря, площі держав, середні оцінки учнів класу і т.д.). Потрібно побудувати візуалізоване представлення цієї послідовності з метою порівняння отриманих результатів. У таких випадках використовують діаграми.

1. Кругові діаграми

У круговій діаграмі кожному елементу послідовності відповідає сектор, градусна міра якого пропорційна величині елемента.

Для побудови кругової діаграми необхідно підсумувати всі елементи послідовності, після чого знайти відносини кожного з елементів до отриманої суми (так буде обчислено, яку частину кола потрібно поставити у відповідність даній величині, - тобто розраховуються частки кола, що припадають на цю величину, якщо все коло прийняти рівним 1). Всі ці розрахунки можна представити формулами Побудова діаграмПобудова діаграм . Потім ці відносні величини переводяться в градуси: Побудова діаграм , Після чого можна приступати до побудови діаграми.

Алгоритм у цьому випадку буде наступним:

обчислити суму елементів послідовності;

знайти величину сектора, відповідного кожній величині;

побудувати всі сектори у графічному режимі (у результаті має вийти повне коло). Бажано кожен сектор будувати своїм кольором, або використовувати різну штрихування, якщо сектори одноколірні.

Програма побудови кругової діаграми за цим алгоритмом представлена ​​нижче:

{Кругова діаграма (с) А.П. Шестаков, 2001}

program Kr_D;

Uses Graph;

Var a, S: Real; I: Byte; G, M: Integer;

Xc, Yc, R: Integer; {координати центру кола і його радіус}

F: Text; {файл містить дані для побудови діаграми}

Alpha: Integer; {кут, відповідний черговий величиною}

SAngle: Integer; Stroka: String;

Begin

Assign (F, '1. Dat '); Reset (F);

S: = 0; {сума елементів послідовності}

While Not Eof (F) Do

begin Readln (F, a); S: = S + a end;

reset (f); G: = detect; M: = 0;

initgraph (G, M,''); Xc: = GetMaxX Div 2; Yc: = GetMaxY Div 2;

R: = 100; SAngle: = 0; i: = 1;

While Not Eof (f) Do begin

Readln (F, a); Alpha: = round (A / S * 360); {обчислення кута}

setcolor (i mod 16 + 1); setfillstyle (1, i mod 16 + 1);

{Побудова сектора, відповідного величині}

sector (Xc, Yc, SAngle, SAngle + Alpha, R, R);

SAngle: = SAngle + Alpha; i: = i + 1;

{Зазначимо, якого кольору яка величина відповідає}

bar (Xc +200, Yc-250 + (i-1) * 20, Xc +220, Yc-250 + (i-1) * 20 +15);

str (a: 8:2, stroka);

outtextxy (Xc + 230, Yc - 250 + 5 + (i - 1) * 20, stroka) end;

readln; close (F); closegraph End.

Результат роботи програми для зазначеного на малюнку набору чисел:

Побудова діаграм

2. Стовпчасті діаграми

Для побудови діаграми виділимо на екрані прямокутну область з координатами відповідно верхнього лівого кута (Xlv, Ylv) і правого нижнього (Xpn, Ypn). Висота стовпчика діаграми, відповідає максимальному елементу послідовності, буде співпадати з висотою прямокутника. Ширина стовпця буде залежати від кількості елементів послідовності: чим більше компонент, тим меншою буде ширина. Таким чином, для побудови діаграми потрібно визначити кількість компонентів послідовності і максимальний елемент послідовності. Висота vi чергового стовпця діаграми на екрані буде визначатися формулою Побудова діаграм де xmax - максимальний елемент послідовності, xi - черговий елемент послідовності.

Алгоритм побудови діаграми наступний:

визначити кількість елементів послідовності і її максимальний елемент;

згідно із зазначеною формулою побудувати стовпці діаграми. Їх ширина на екрані може бути розрахована за формулою Побудова діаграм де n - кількість елементів послідовності.

Програма побудови столбчатой ​​діаграми за цим алгоритмом представлена ​​нижче:

{Стовпчастих діаграм (с) А.П. Шестаков, 2001}

program Stol_D;

Uses Graph;

Var a, xmax: Real; I, n: Byte; G, M: Integer;

F: Text; {файл містить дані для побудови діаграми}

Stroka: String;

Xlv, Ylv, Xpn, Ypn: Integer; {координати вікна виведення діаграми}

Begin

Assign (F, '1. Dat '); Reset (F);

if not eof (f) then begin readln (f, xmax); n: = 1 end else n: = 0;

While Not Eof (F) Do

begin Readln (F, a); if a> xmax then xmax: = a; n: = n + 1 end;

reset (f); G: = detect; M: = 0;

initgraph (G, M,''); Xlv: = 50; Ylv: = 50; Xpn: = GetMaxX-100; Ypn: = GetMaxY-50;

i: = 0; {номер стовпця}

While Not Eof (f) Do

begin

Readln (F, a);

setcolor (i mod 16 + 1); setfillstyle (1, i mod 16 + 1);

{Черговий стовпець}

bar (round (Xlv + i * (Xpn-Xlv) / n), Ypn,

round (Xlv + (i +1) * (Xpn-Xlv) / n), round (Ypn-(Ypn-Ylv) / xmax * a));

i: = i + 1;

{Зазначимо, якого кольору яка величина відповідає}

bar (getMaxx-70, 50 + (i-1) * 20, getMaxx-50, 50 + (i-1) * 20 +15);

str (a: 8:2, stroka);

outtextxy (getMaxx-40, 50 + (i-1) * 20 +8, stroka);

end;

readln; close (F); closegraph

End.

Результат роботи програми для зазначеного на малюнку набору чисел:

Побудова діаграм

Для кращого сприйняття діаграми було б доцільно побудувати вертикальну вісь з розміткою по ній, що в даній програмі відсутня.

3. Лінійні діаграми

При побудові лінійних діаграм кожної величині відповідає точка, розташована на певній висоті відносно початку відліку (висота розраховується так само, як і при побудові стовпчастих діаграм), всі крапки з'єднуються лініями. У результаті виходить ламана. Такого роду діаграми найчастіше ладу в тих випадках, коли необхідно візуалізувати динаміку зміни величин.

Програма аналогічна програмі побудови стовпчастих діаграм і наведена нижче.

{Лінійна діаграма (с) А.П. Шестаков, 2001}

program Stol_D;

Uses Graph;

Var a, xmax: Real; I, n: Byte; G, M: Integer;

F: Text; {файл містить дані для побудови діаграми}

Stroka: String; Yn, Yk: Integer;

Xlv, Ylv, Xpn, Ypn: Integer; {координати вікна виведення діаграми}

Begin

Assign (F, '1. Dat '); Reset (F);

if not eof (f) then begin readln (f, xmax); n: = 1 end else n: = 0;

While Not Eof (F) Do

begin Readln (F, a); if a> xmax then xmax: = a; n: = n + 1 end;

reset (f); G: = detect; M: = 0;

initgraph (G, M,''); Xlv: = 50; Ylv: = 50; Xpn: = GetMaxX-100; Ypn: = GetMaxY-50;

line (xlv, ylv, xlv, ypn); line (xlv, ypn, xpn, ypn);

i: = 0; {номер точки}

readln (f, a);

Yn: = round (Ypn-(Ypn-Ylv) / xmax * a);

str (a: 5:1, stroka);

outtextxy (round (Xlv + i * (Xpn-Xlv) / n) -20, Ypn +20, stroka);

While Not Eof (f) Do

begin

setcolor (i mod 16 + 1); setfillstyle (1, i mod 16 + 1);

{Зазначимо, якого кольору яка величина відповідає}

Readln (F, a);

Yk: = round (Ypn-(Ypn-Ylv) / xmax * a);

{Чергова лінія}

line (round (Xlv + i * (Xpn-Xlv) / n), Yn,

round (Xlv + (i +1) * (Xpn-Xlv) / n), Yk);

i: = i + 1;

str (a: 5:1, stroka);

outtextxy (round (Xlv + i * (Xpn-Xlv) / n) -20, Ypn +20, stroka);

Yn: = Yk; {запам'ятовуємо становище чергової точки}

end;

readln; close (F); closegraph

End.

Результат роботи програми для зазначеного на малюнку набору чисел:

Побудова діаграм

Всі представлені тут програми можуть бути об'єднані в одну програму із загальним меню, де користувачеві надається можливість вибрати вид діаграми.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
12.4кб. | скачати


Схожі роботи:
Побудова діаграм в Excel
Побудова діаграм в Microsoft Exsel
Побудова діаграм засобами WORD і EXCEL
Ділова графіка Побудова діаграм і графіків на основі електронні
Побудова діаграм і графіків на основі електронних таблицях Excel
Ділова графіка Побудова діаграм і графіків на основі електронних таблицях Excel
Види ринків Типи ринків Побудова графіків та діаграм з використанням програми Microsoft Excel
Застосування методу частотних кругових діаграм
Редактор чисельних діаграм Microsoft Graph
© Усі права захищені
написати до нас