Показать сообщение отдельно
Старый 15.12.2010, 22:02   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну вот:
Код:
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);
 Year_1996:AR=(9.8, 8.1, 7.5, 7.9, 3.4, 63.3);
 Firm:ARRAY[1..6] of String=('Compaq','IBM','Packard Bell (NEC)',
                              'Apple','HP','Others');

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
 InitGraph(..);{Параметры этой функции задайте сами}
 Diagram(Year_1995,140,'Market 1995');
 Diagram(Year_1996,460,'Market 1996');
 ReadKey;
 CloseGraph;
END.
В результате должно получиться так:
Название: AA_DD.jpg
Просмотров: 164

Размер: 27.0 Кб
А уж всякие там файловые вводы, организацию параметров процедуры и прочую ерунду поправьте, если препод будет настаивать на этих дурацких указулях.
P.S. Почему на правой диаграмме лезут какие-то черные полосы - так и не понял. Надеюсь, они не помешают.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070