Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.04.2012
Сообщений: 3
1

Помогите подредактировать круговую диаграмму.

22.04.2012, 14:22. Показов 609. Ответов 2
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
uses crt,graph;
var z:array [1..6] of integer; {Задаём массив}
i,x,y,r,a,b,s:integer;
st:string;
const n=6;
 begin
clrscr;
writeln('Vvedite reiting antivirusov'); {Вывод на экран}
write('1 Avast=');readln(z[1]);
write('2 Eset=');readln(z[2]);
write('3 Panda=');   readln(z[3]);
write('4 Kasperskii='); readln(z[4]);
write('5 Avira=');  readln(z[5]);
write('6 Drugie=');readln(z[6]);
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(5);
setfillstyle(1,1);
pieslice(x,y,0,b,r);
str(100*z[i]/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.
Ребята, подскажите пожалуйста как вывести на диаграмме рядом с процетами название антивируса.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2012, 14:22
Ответы с готовыми решениями:

Массив. Построить круговую диаграмму по заданному пользователем массиву
Построить круговую диаграмму по заданному пользователем массиву. Количество элементов массива...

Построить круговую диаграмму, отображающую процентное соотношение отличников
Помогите, пожалуйста, составить программу!!! Построить круговую диаграмму, отображающую...

Вывести круговую диаграмму, отражающую товарооборот (в процентах) книжного магазина
Написать программу, которая выводит круговую диаграмму, отражающую товарооборот (в процентах)...

Написать программу, которая выводит круговую диаграмму, отражающую товарооборот (в процентах) книжного магазина
8. Написать программу, которая выводит круговую диаграмму, отражающую товарооборот (в процентах)...

__________________
2
Модератор
63335 / 47046 / 32428
Регистрация: 18.05.2008
Сообщений: 114,040
22.04.2012, 16:38 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
uses crt,graph;
const n=6;
      {массимв названий}
      av:array[1..n] of string=('Avast','Eset','Panda','Kasperskii','Avira','Drugie');
var z:array [1..6] of integer; {Задаём массив}
    i,x,y,x1,y1,r,a,b,s:integer;
    st:string;
begin
clrscr;
writeln('Vvedite reiting antivirusov'); {Вывод на экран}
for i:=1 to n do
 begin
  write(i,' ',av[i],' ');
  readln(z[i]);
 end;
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(9);
setfillstyle(1,9);
pieslice(x,y,0,b,r);
str(100*z[1]/s:0:2,st);
x1:=x+round(r*cos(pi*b/360));{середина сектора по внешней границе для Х}
if x1>=x then x1:=x1+30{правее центра диаграммы}
else x1:=x1-140;{левее}
y1:=y-round(r*sin(pi*b/360));{по Y}
if y1<x then y1:=y1-20{выше}
else y1:=y1+20;{ниже}
outtextXY(x1,y1,av[1]+' '+ st+' %');
for i:=2 to n-1 do
 begin
  a:=round(360*z[i]/s)+b;
  setcolor(i);
  setfillstyle(1,i);
  pieslice(x,y,b,a,r);
  str(100*z[i]/s:0:2,st);
  x1:=x+round(r*cos(pi*(a+b)/360));
  if x1>=x then x1:=x1+30
  else x1:=x1-140;
  y1:=y-round(r*sin(pi*(a+b)/360));
  if y1<x then y1:=y1-20
  else y1:=y1+20;
  outtextXY(x1,y1,av[i]+'='+st+'%');
  b:=a;
 end;
setcolor(n);
setfillstyle(1,n);
pieslice(x,y,b,360,r);
str(100*z[n]/s:0:2,st);
x1:=x+round(r*cos(pi*(360+b)/360));
if x1>=x then x1:=x1+30
else x1:=x1-140;
y1:=y-round(r*sin(pi*(360+b)/360));
if y1<x then y1:=y1-20
else y1:=y1+20;
outtextXY(x1,y1,av[n]+' '+st+'%');
readln;
end.
1
0 / 0 / 0
Регистрация: 19.04.2012
Сообщений: 3
22.04.2012, 17:00  [ТС] 3
Спасибки огромное)))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2012, 17:00

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Напишите программу,которая выводит на экран круговую диаграмму,отражающую товарооборот в % книж. магазина
Ребят помогите исправить ошибки!:read: // program diagram; uses crt; const x:array of...

Нарисовать круговую диаграмму
Здравствуйте. Подскажите пожалуйста, можно ли(если да, то как) в MS Visual Studio 2010 нарисовать...

Создать круговую диаграмму
помогите пожалуйста сделать круговую диаграмму 25 % в html это пример как должна выглядить...

Нарисовать круговую диаграмму
Нарисовать круговую диаграмму со значениями 20%, 30%, 50%


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.