USES Сrt,Graph;
VAR
Gd, Gm : INTEGER; I,N,S,C: INTEGER; M : ARRAY[1..10] OF INTEGER;
Nk, Kk : INTEGER; P:REAL;
BEGIN
WriteLn('Введите количество значений'); ReadLn(N); S:=0;
FOR I:=1 TO N DO Begin
Writeln('Введите ',I,' значение'); ReadLn(M[I]);
S:=S+M[I];
end;
P:=360/S; {приходится радиан на 1% }
Gd:=Detect; Gm:=1;
InitGraph(Gd,Gm,'c:\tp7\bgi'); IF GraphResult<>0 THEN HALT(1);
S:=0; C:=1;
FOR I:=1 TO N DO Begin
Nk:=Trunc(P*S); { Начальный угол }
Kk:=Trunc(P*(S+M[I])); { Конечный угол }
SetFillStyle(1,C); PieSlice(GetMaxX div 2,GetMaxY div 2,nk,kk,100);
S:=S+m[i];
C:=C+1; IF C=14 THEN C:=1; { Изменение цвета }
End;
ReadLn;
CloseGraph;
END.
VAR
Gd, Gm : INTEGER; I,N,S,C: INTEGER; M : ARRAY[1..10] OF INTEGER;
Nk, Kk : INTEGER; P:REAL;
BEGIN
WriteLn('Введите количество значений'); ReadLn(N); S:=0;
FOR I:=1 TO N DO Begin
Writeln('Введите ',I,' значение'); ReadLn(M[I]);
S:=S+M[I];
end;
P:=360/S; {приходится радиан на 1% }
Gd:=Detect; Gm:=1;
InitGraph(Gd,Gm,'c:\tp7\bgi'); IF GraphResult<>0 THEN HALT(1);
S:=0; C:=1;
FOR I:=1 TO N DO Begin
Nk:=Trunc(P*S); { Начальный угол }
Kk:=Trunc(P*(S+M[I])); { Конечный угол }
SetFillStyle(1,C); PieSlice(GetMaxX div 2,GetMaxY div 2,nk,kk,100);
S:=S+m[i];
C:=C+1; IF C=14 THEN C:=1; { Изменение цвета }
End;
ReadLn;
CloseGraph;
END.