*$nolist
*$include :\WF77\gkscover.for
*$list
Character*80 a(5),h
Integer y(5),b
Real x(5)
Print*,
Read 10,h
Print*,
Read*,n
Do 1 i=1,n
Print*, , i,-
Read*,x(i)
Print*, , i,-
Read*,a(i)
10 format(a)
1 continue
Do 2 i= 1,n
2 S = S + x(i)
Do 3 i=1,n
3 y(i)=x(i)/S*360
Call init(0)
B=0
C=0.3
D=0.35
Call block (0.,0.,1.,1.,8)
Call block (0.095,0.8, 0.4,0.95,4)
Call text(0.1,0.85,h,5)
Do 4 i=1,n
Call slice(0.5,0.6,0.2,I,b,b+y(i))
B=B+y(i)
Call block(0.1,c,0.14,d,i)
Call text(0.15,c,a(i),i)
C=c-0.05
4 D=d-0.05
End
.
#include <math.h> /* */
#include <conio.h> /* / */
#include <stdio.h> /* / */
#include <stdlib.h> /* */
#include <graphics.h> /* */
#define Pi 3.1415 /* */
/*
, ,
A - C X
Alpha - C A
B - C Y
C -
Color -
DName -
dR -
E -
Element - , ( double)
Elements -
ElementString - , ( char)
GDriver -
GMode -
MaxX - X
MaxY - Y
Pattern -
RF -
RS -
SE -
*/
main(void)
{
int MaxX, MaxY;
int GDriver, GMode;
char DName[80];
int Elements, E, SE=0, dR=360;
char **ElementString;
double *Element;
int Pattern=1, Color=0;
int RS=0, RF=0;
int A, B, C;
int Alpha;
detectgraph(&GDriver, &GMode); /* */
initgraph(&GDriver, &GMode,""); /* */
MaxX = getmaxx(); /* MaxX X*/
MaxY = getmaxy(); /*B MaxY Y*/
C = MaxY / 6;
printf(" :");
scanf("%s", DName);
printf(" :");
scanf("%d", &Elements);
ElementString = (char**)malloc(Elements * sizeof(char*));
for (E = 0; E < Elements; E++)
/* */
ElementString[E]=(char*)malloc(12*sizeof(char));
Element=(double*)malloc(Elements*sizeof(double));
|
|
/* */
for (E=0;E<Elements;E++)
{
printf(" %d:",E+1);
scanf("%s",ElementString[E]);
Element[E]=atof(ElementString[E]);
SE += Element[E];
}
/* */
setfillstyle(SOLID_FILL,BLUE); /* */
bar(0,0,MaxX,MaxY/25); /* */
/* */
setcolor(WHITE); /* */
settextjustify(CENTER_TEXT,CENTER_TEXT); /* CP */
settextstyle(DEFAULT_FONT,0,2); /* , , 2 */
outtextxy(MaxX/2,MaxY/50+2,DName); /* */
/* */
setfillstyle(SOLID_FILL,WHITE); /* */
bar(0,MaxY/25,MaxX,MaxY); /* */
/* */
settextstyle(SMALL_FONT,0,5);
/* */
for (E=0;E<Elements;E++)
{
/* */
Color ++;
if (Color == 15)
{
Color = 1;
Pattern ++;
}
if (Pattern == 12) Pattern = 1;
/* */
setfillstyle(Pattern,Color);
setcolor(Color);
/* */
RS=RF;
RF=Element[E]/SE*dR+RS;
/* */
sector(MaxX/2,MaxY/2,RS,RF,MaxY/3,MaxY/3);
/* */
setcolor(WHITE);
/* CP */
Alpha = (RS + RF) / 2; /* */
A = cos(Alpha * Pi / 180) * C; /* X */
B = sin(Alpha * Pi / 180) * C; /* Y */
/* */
outtextxy(MaxX / 2 + A, MaxY / 2 - B, ElementString[E]);
dR -= RF - RS;
SE -= Element[E];
}
/* Copyright*/
setcolor(GREEN);
settextjustify(RIGHT_TEXT,TOP_TEXT);
settextstyle(DEFAULT_FONT,0,1);
/* */
outtextxy(MaxX-10,MaxY-10,"(c) 2009");
/* */
getch();
closegraph(); /* */
/* */
return 23;
}
:
1. .
2. .
3. .
4. .
:
1. ?
2. ?
3. ?
4. ?
5. ?
1. . / . .., .:, 2002 (455 .)
2. .. : . .: , 2009 (224 .)
3. . 2001. . .
4. .. AutoCAD 2007: 2D/3D-.- .: , 2007 (416 .).