Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2010, 23:44   #1
Lizo4ka =)
Новичок
Джуниор
 
Аватар для Lizo4ka =)
 
Регистрация: 25.12.2010
Сообщений: 1
Вопрос Pascal =) Построение секторных диаграмм

Всем приветики) Ребят, помогите пожалуйста с одной программкой, она уже готова, нужно только написать что в ней что делает (описать процедуры ввода-вывода)

Само задание звучало так "Написать программу, которая выводит на экран две секторные диаграммы, расположив их рядом. Диаграмму надо снабдить заголовком и наименованием для каждого сектора. Исходные данные сформировать в текстовом файле. Количество секторов задавать в программе в виде именованной константы.

Построение секторной диаграммы оформить в виде процедуры. Параметры процедуры: координаты центра диаграммы; радиус; количество секторов; массив процентов; массив наименований."

Вот исходные данные


И вот сама программа, кое что я попыталась описать сама =)

Цитата:
uses Graph, CRT; {выводит круговую диаграмму}
type
AR = array[1..6] of real; {задаёт массив}
const
Year_1995: AR=(10.3, 8.9, 6.2, 5.2, 4.4, 65.0); {обозначаем размер секторов графика 95 года}
Year_1996: AR=(9.8, 8.1, 7.5, 7.9, 3.4, 63.3); {обозначаем размер секторов графика 96 года}
Firm: array[1..6] of string=('Compaq','IBM','Packard Bell (NEC)', 'Apple','HP','Others'); {указываем названия фирм}
var
grDriver, grMode, ErrCode: integer; {драйвер, графический режим, результат инициализации графического режима}

procedure Diagram(Ad:AR; Xc:word; S:string); {параметры диаграммы}
var
i: integer;
Ang_bef,Ang_aft,Ang: word;
begin
SetColor(15); {задаёт цвет}
SetTextStyle(DefaultFont,HorizDir,2 ); {задаёт шрифт}
SetTextJustify(CenterText,TopText); {выравнивает текст}
OutTextXY(Xc,10,S); {выводит текст в определённой точке экрана}
SetTextStyle(DefaultFont,HorizDir,1 ); {задаёт шрифт}
Ang_bef := 0;
For i := 1 to 6 do
begin
SetFillStyle(1,8+i); { устанавливает текущие цвет и шаблон }
SetColor(8+i); {задаёт цвет}
Ang_Aft := Ang_bef+ROUND(3.6*Ad[i]);
Ang := (Ang_bef+Ang_Aft) div 2;
PieSlice(Xc, 240, Ang_Bef, Ang_Aft, 100); {рисует и закрашивает сектор окружности}
if i < 4 then
SetTextJustify(LeftText,CenterText) {выравнивает текст}
else
SetTextJustify(RightText,CenterText ); {выравнивает текст}
OutTextXY(Xc+ROUND(110*Cos(Ang/180*Pi)),
240-ROUND(110*Sin(Ang/180*Pi)),Firm[i]); {выводит текст в определённой точке экрана}
Ang_bef := Ang_Aft;
end;
end;
begin
grDriver := Detect; {драйвер}
InitGraph(grDriver, grMode, ''); { загружает графический драйвер}
ErrCode := GraphResult; {функция модуля Graph, которая возвращает результат инициализации графического режима}
if ErrCode = grOk then
begin {рисует диаграмму}
Diagram(Year_1995,140, 'Market 1995');
Diagram(Year_1996,460, 'Market 1996');
ReadKey; {считывает символ с клавиатуры и освобождает буфер клавиатуры от считанного символа}
CloseGraph; {освобождает всю память,выделенную под графическую систему, затем восстанавливает экран в режим, который был до вызова initgraph }
end
else
begin
Write('Graphics error: ');
Writeln(GraphErrorMsg(ErrCode));
ReadKey; {считывает символ с клавиатуры и освобождает буфер клавиатуры от считанного символа}
end;
end.
Lizo4ka =) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TChart - построение диаграмм! dimonbest Компоненты Delphi 18 20.05.2009 08:55
Построение диаграмм из БД ChiToK Помощь студентам 3 21.04.2008 10:38
Построение диаграмм Smith777 Помощь студентам 2 26.02.2008 15:26
Паскаль. Построение диаграмм NoTes Паскаль, Turbo Pascal, PascalABC.NET 9 12.06.2007 16:33