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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 21:24   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
Лампочка Построить круговую диаграмму!

Полученную за прошлый год прибыль администрация предприятия распределила следующим образом: 1350 тыс. грн. - На развитие фирмы, 150 тыс. грн. - На премии работникам, 100 тыс. грн. - На благотворительные цели. Помогите построить круговую диаграмму.
gylayko вне форума Ответить с цитированием
Старый 17.12.2011, 21:30   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

(с) Puporev
Код:
uses crt,graph;
var z:array [1..10] of integer;
    n,i,x,y,r,a,b,s: integer;
    st:string;
Begin
clrscr;
repeat
write('Kolichestvo sektorov ot 2 do 10 n=');
readln(n);
until n in [2..10];
writeln('Vvedite znachenia, polozitelnye chisla:');
for i:=1 to n do
 repeat
  write('z[',i,']=');
  readln(z[i]);
 until z[i]>0;
x:=0;
initgraph(x,y,'');
s:=0;
for i:=1 to n do
s:=s+z[i];
x:=getmaxX div 2;
y:=getmaxY div 2;
r:=150;
b:=round(360*z[1]/s);
setcolor(1);
setfillstyle(1,1);
pieslice(x,y,0,b,r);
str(100*z[1]/s:0:2,st);
outtextXY(x+round((r+20)*cos(pi*b/360)),y-round((r+20)*sin(pi*b/360)),st+'%');
for i:=2 to n-1 do
 begin
   a:=round(360*z[i]/s)+b;
   setcolor(i);
   setfillstyle(1,i);
   pieslice(x,y,a,b,r);
   str(100*z[i]/s:0:2,st);
   if (a<=90)or(a>=270) then
   outtextXY(x+round((r+20)*cos(pi*(a+b)/360)),y-round((r+20)*sin(pi*(a+b)/360)),st+'%')
   else
   outtextXY(x+round((r+20)*cos(pi*(a+b)/360))-40,y-round((r+20)*sin(pi*(a+b)/360)),st+'%');
   b:=a;
 end;
setcolor(n);
setfillstyle(1,n);
pieslice(x,y,b,360,r);
str(100*z[n]/s:0:2,st);
outtextXY(x+round((r+20)*cos(pi*(360+b)/360)),y-round((r+20)*sin(pi*(360+b)/360)),st+'%');
readln
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нарисовать круговую диаграмму в паскале vbchristy46 Помощь студентам 2 28.06.2010 20:33
Создаю круговую диаграмму. Подскажите что не так? Reanim Паскаль, Turbo Pascal, PascalABC.NET 3 03.07.2009 18:37
Интересует такой вопрос. Как создать круговую диаграмму в Дельфи Grisha248 Компоненты Delphi 6 26.05.2009 18:06
По имеющимся данным построить диаграмму Raptor Помощь студентам 1 15.12.2007 19:53