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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2013, 12:56   #1
Kastiel11
 
Регистрация: 02.06.2013
Сообщений: 7
По умолчанию Pascal

Подскажите пожалуйста как сделать чтобы цифры(процентные составляющие) были в секторах диаграммы, а не рядом

составить программу отображающую значения трех величин - две из них генерируются по закону случайных чисел в диапазоне от 10 до 40, а третья дополняет сумму двух первых до 100. Значения полученных трёх величин отобразить в виде цветной круговой диаграммы....
Код:
uses crt,graph;
var z:array [1..10] of integer;
n,i,x,y,r,a,b,s: integer;
st:string;
Begin
randomize;
clrscr;
n:=3;
for i:=1 to 2 do

z[i]:=random(40);
z[3]:=100-z[1]-z[2];

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*(36 0+b)/360)),y-round((r+20)*sin(pi*(360+b)/360)),st+'');
readln
end.

Последний раз редактировалось Stilet; 06.06.2013 в 14:33.
Kastiel11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascal abc, pascal turbo. выборка данных из одного .txt в другой ТипичныйСтудент Помощь студентам 6 27.04.2013 15:29
Задача turbo pascal на тему: файлы с произвольным доступом в Pascal ExCiTeC Паскаль, Turbo Pascal, PascalABC.NET 0 28.01.2013 20:36
Программы в Pascal, среда pascal ABC. Лабораторные работы Одинокая Волчица Фриланс 8 10.02.2012 20:09
Turbo Pascal и Free Pascal , в чем разница? antoxann Паскаль, Turbo Pascal, PascalABC.NET 31 09.11.2011 07:52
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28