Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 1 / DIAGRAM

.PAS
Скачиваний:
21
Добавлен:
16.04.2013
Размер:
3.77 Кб
Скачать
{Џа®Ја ¬¬  ¤«п Ї®бв஥­Ёп ЄагЈ®ўле ¤Ё Ја ¬¬}
Uses crt,Graph; {Ї®бв஥­ЁҐ ЄагЄ®ў®© ¤Ё Ја ¬¬л}

const n = 12;
alfan = 0; {а §¬Ґа­®бвм ¬ ббЁў  §­ зҐ­Ё© дг­ЄжЁ©}
xn = 320; {­ з «м­л© гЈ®« аЁб®ў ­Ёп ᥪ樨}
yn = 300; {Є®®а¤Ё­ вл 業ва  ¤Ё Ја ¬¬л}
r = 150; {а ¤Ёгб ¤Ё Ја ¬¬л}
ns = 5; {Є-ў® Ї®§ЁжЁ© ў § ЇЁбЁ зЁб«  ЇаЁ ўлў®¤Ґ ҐЈ® ­  нЄа ­}
ms =2; {Є-ў® ў ¤а®Ў­®© з бвЁ зЁб«  ЇаЁ ўлў®¤Ґ ҐЈ® ­  нЄа ­}

type m = array[1..n] of integer;
m1 = array[1..n] of real;

var f:m1; {¬ ббЁў §­ зҐ­Ё© дг­ЄжЁ©}
alfa:m; {¬ ббЁў §­ зҐ­Ё© гЈ«®ў}
driver,err,
k, {Є-ў® ᥪв®а®ў}
i, {Ї а ¬Ґва жЁЄ« }
bet, {業ва «м­л© гЈ®« б ᥪв®а }
y,x, {Є®®а¤Ё­ вл 業ва  ¤гЈЁ ᥪв®а }
x1,y1:integer; {Є®®а¤Ё­ вл ­ з «м­®© в®зЄЁ Ї®«п ўлў®¤  ­ ¤ЇЁбЁ}
s:real; {б㬬  §­ зҐ­Ё© дг­ЄжЁЁ}
st, {бва®Є®ў п ЇҐаҐ¬Ґ­­ п, ў Є®в®аго § ­®бпвбп ўлў®¤Ё¬лҐ ­  нЄа ­ ­ ¤ЇЁбЁ}
Zagolovok:string; {ЇҐаҐ¬Ґ­­ п ¤«п ўлў®¤  ­  нЄа ­ § Ј®«®ўЄ  ЄагЈ®ў®© ¤Ё Ја ¬¬л}

begin
{ўў®¤ ­ з «м­ле §­ зҐ­Ё©}
Textbackground(red);
Clrscr;
Textcolor(Blue);
GotoXY(10,5);
Write('‡ Ј®«®ў®Є ЄагЈ®ў®© ¤Ё Ја ¬¬л:');
Readln(Zagolovok);
Clrscr;
Gotoxy(10,5);
Write('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® §­ зҐ­Ё© дг­ЄжЁЁ:');
Readln(k);
Gotoxy(10,5);
Writeln('‚ўҐ¤ЁвҐ §­ зҐ­Ёп дг­ЄжЁЁ (Ї®«®¦ЁвҐ«м­лҐ):');

{­ е®¦¤Ґ­ЁҐ бг¬¬л §­ зҐ­Ё© дг­ЄжЁЁ}
s:=0;
for i:=0 to k do begin
write(i:2,'§­ зҐ­ЁҐ дгЄжЁЁ:');
readln(f[i]);
s:=s+f[i];
end;

driver:=detect;
InitGraph(driver,err,'e:\BP7\BIN');
Setbkcolor(LightBlue);
Setcolor(LightGray);

{‚лзЁб«Ґ­ЁҐ ­ з «м­®Ј® Ё Є®­Ґз­®Ј® гЈ«®ў Є ¦¤®Ј® ᥪв®а  ¤Ё Ја ¬¬л}
alfa[1]:=alfan; alfa[k+1]:=alfan+360;
for i:=2 to k+1 do begin
Setcolor(LightGreen);
SetFillStyle(1,i);
alfa[i]:=alfa[i-1]+round(f[i-1]/s*360);
if alfa[i]>360 then alfa[i]:=alfa[i]-360;
if alfa[i-1]>360 then alfa[i-1]:=alfa[i-1]-360;
{аЁб®ў ­ЁҐ ᥪв®а  ¤«п б«гз п, Є®Ј¤  Є®­Ґз­л© гЈ®« ¬Ґ­миҐ ­ з «м­®Ј®}
if alfa[i]<alfa[i-1] then begin
Pieslice(xn,yn,alfa[i-1],360,r);
Pieslice(xn,yn,0,alfa[i],r);
Setcolor(LightBlue);
Line(xn,yn,xn+r-1,yn);
Setcolor(LightGreen);
FloodFill(xn+1,yn,LightGreen);
alfa[i]:=alfa[i]+360;
end
{аЁб®ў ­ЁҐ ᥪв®а  ¤«п б«гз п, Є®Ј¤  Є®­Ґз­л© гЈ®« Ў®«миҐ ­ з «м­®Ј®}
else
Pieslice(xn,yn,alfa[i-1],alfa[i],r);
{ўлў®¤ ­ ¤ЇЁбҐ©}
Setcolor(LightGray);
bet:=alfa[i-1]+(alfa[i]-alfa[i-1]) div 2;
if bet>360 then bet:=bet-360;
x:=xn+round(r*cos(bet*pi/180));
y:=yn-round(r*sin(bet*pi/180));
if ((bet>=0) and (bet<=90)) or((bet>=270) and (bet<=360))
then x1:=x+10
else x1:=x-8*ns-10;
if ((bet>=0) and (bet<=180))
then y1:=y-15
else y1:=y+7;
str(f[i-1]:ns:ms,st);
outtextxy(x1,y1,st);
end;
Setcolor(LightRed);
Settextstyle(0,Horizdir,2);
Outtextxy(400,460,'Ќ ¦¬ЁвҐ Enter');
Setcolor(LightMagenta);
Settextstyle(0,Horizdir,3);
Outtextxy(100,30,Zagolovok);
readln;
CloseGraph;
end.














Соседние файлы в папке 1