Напишите программу,которая выводит на экран круговую диаграмму,отражающую товарооборот в % книж. магазина - Pascal

Узнай цену своей работы

Формулировка задачи:

Ребят помогите исправить ошибки! //
Листинг программы
  1. program diagram;
  2. uses crt;
  3. const
  4. x:array[1..4] of string=('Knigi','Zurnaly','Kanctovary','Proctee');
  5. var dr,mode,i,xc,yc,r,detect,initgraph:integer;
  6. y:array[1..4] of real;
  7. s:real;
  8. a,b:longint;
  9. st:string;
  10. begin
  11. clrscr;
  12. s:=0;
  13. writeln('Vvedite tovarooborot po vidam:');
  14. for i:=1 to 4 do
  15. begin
  16. write(x[i],'=');
  17. readln(y[i]);
  18. s:=s+y[i];
  19. end;
  20. for i:=1 to 4 do
  21. y[i]:=y[i]*100/s;
  22. dr:=detect;
  23. initgraph(dr,mode,'');
  24. xc:=GetMaxX div 2;
  25. yc:=GetMaxY div 2;
  26. outtextxy(Xc-80,20,'Tovarooborot po vidam, %');
  27. b:=round(360*y[1]/100);
  28. r:=150;
  29. setcolor(10);
  30. setfillstyle(1,11);
  31. pieslice(xc,yc,0,b,r);
  32. for i:=2 to 3 do
  33. begin
  34. a:=round(360*y[i]/100)+b;
  35. setcolor(10+i);
  36. setfillstyle(1,10+i);
  37. pieslice(xc,yc,a,b,r);
  38. b:=a;
  39. end;
  40. setcolor(14);
  41. setfillstyle(1,14);
  42. pieslice(xc,yc,b,360,r);
  43. for i:=1 to 4 do
  44. begin
  45. setcolor(i+10);
  46. setfillstyle(1,i+10);
  47. bar(xc+150,i*40,xc+180,i*40+20);
  48. setcolor(15);
  49. str(y[i]:0:2,st);
  50. outtextXY(xc+190,i*40+5,x[i]+'-'+st);
  51. end;
  52. readkey;
  53. end.

Решение задачи: «Напишите программу,которая выводит на экран круговую диаграмму,отражающую товарооборот в % книж. магазина»

textual
Листинг программы
  1. program diagram;
  2. uses graph,crt;
  3. const
  4. x:array[1..4] of string=('Knigi','Zurnaly','Kanctovary','Proctee');
  5. var dr,mode,i,xc,yc,r,detect:integer;
  6.     y:array[1..4] of real;
  7.     s:real;
  8.     a,b:longint;
  9.     st:string;
  10. begin
  11. clrscr;
  12. s:=0;
  13. writeln('Vvedite tovarooborot po vidam:');
  14. for i:=1 to 4 do
  15.  begin
  16.   write(x[i],'=');
  17.   readln(y[i]);
  18.   s:=s+y[i];
  19.  end;
  20. for i:=1 to 4 do
  21. y[i]:=y[i]*100/s;
  22. dr:=detect;
  23. initgraph(dr,mode,'');
  24. xc:=GetMaxX div 2;
  25. yc:=GetMaxY div 2;
  26. outtextxy(Xc-80,20,'Tovarooborot po vidam, %');
  27. b:=round(360*y[1]/100);
  28. r:=150;
  29. setcolor(10);
  30. setfillstyle(1,11);
  31. pieslice(xc,yc,0,b,r);
  32. for i:=2 to 3 do
  33.  begin
  34.   a:=round(360*y[i]/100)+b;
  35.   setcolor(10+i);
  36.   setfillstyle(1,10+i);
  37.   pieslice(xc,yc,a,b,r);
  38.   b:=a;
  39.  end;
  40. setcolor(14);
  41. setfillstyle(1,14);
  42. pieslice(xc,yc,b,360,r);
  43. for i:=1 to 4 do
  44.  begin
  45.   setcolor(i+10);
  46.   setfillstyle(1,i+10);
  47.   bar(xc+150,i*40,xc+180,i*40+20);
  48.   setcolor(15);
  49.   str(y[i]:0:2,st);
  50.   outtextXY(xc+190,i*40+5,x[i]+'-'+st);
  51.  end;
  52. readkey;
  53. end.

Объяснение кода листинга программы

  1. Объявление и инициализация переменных:
    • x:array[1..4] of string=('Knigi','Zurnaly','Kanctovary','Proctee'); - Создание массива строк x с названиями товаров.
    • dr,mode,i,xc,yc,r,detect:integer; - Объявление целочисленных переменных
    • y:array[1..4] of real; - Создание массива вещественных чисел y.
  2. Ввод данных:
    • Из пользовательского ввода получаем значения товарооборота для каждого вида товара и записываем в массив y.
  3. Инициализация графики:
    • dr:=detect; initgraph(dr,mode,''); - Инициализация графического режима для отображения круговой диаграммы.
  4. Отрисовка круговой диаграммы:
    • Вычисление углов и радиуса для каждого сектора диаграммы на основе товарооборота и отрисовка секторов с помощью функции pieslice.
  5. Отображение легенды:
    • Создание цветных баров и вывод соответствующих подписей с названием товара и его долей в общем товарообороте. Это программный код на языке Pascal, который запрашивает у пользователя товарооборот для каждой категории товаров и строит круговую диаграмму, отражающую процентное соотношение товарооборота по каждой категории.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы