• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Ребята, помогите решить задачку.

Аннэт

Ученик
Регистрация
14 Дек 2010
Сообщения
9
Реакции
0
Баллы
0
Ребята, помогите решить задачку.

Язык: Pascal =) Построение секторных диаграмм:tehnari_ru_837:

Нужно написать программу, которая выводит на экран две секторные диаграммы, расположив их рядом. Диаграмму надо снабдить заголовком и наименованием для каждого сектора. Исходные данные сформировать в текстовом файле. Количество секторов задавать в программе в виде именованной константы.

Построение секторной диаграммы оформить в виде процедуры. Параметры процедуры: координаты центра диаграммы; радиус; количество секторов; массив процентов; массив наименований.

Даны исходные данные:
 

Вложения

  • исходные данные.webp
    исходные данные.webp
    17.6 KB · Просмотры: 104
Динозаврик, ну помоги..)*
 
стесняюсь спросить,а кто такой динозаврик? :)
 
стесняюсь спросить,а кто такой динозаврик? :)
Я так думаю это Владимир (Vladimir_S) ....Видимо успел запомнится только аватаркой...
Что касается задачки..тут писать прилично получается...и вряд ли вам тут кто то за неё возьмется....Могу только посоветовать приобрести книгу " Turbo Pascal в задачах и примерах Н. Культин " Там точно подобная задача рассматривалась и весьма подробно...Да и книжка в целом полезная я себя по ней "натаскивал" , когда уже стало стыдно на форум обращаться по "детским" вопросам :tehnari_ru_942:
 
Спасибо за совет с книгой )* попробую завтра найти где можно такую купить..)
 
Охо-хо, ну ладно, попробую. Хотя с графикой возиться - кошмар!
Только уж извините, но оформлять всякие там процедуры буду, как мне удобно, невзирая ни на какие идиотские преподские указули.
 
ой) Спасибочки)) я вас ждала..))*
 
Ну вот:
Код:
Uses Graph, CRT;
TYPE
 AR=ARRAY[1..6] of REAL;
Const
 Year_1995:AR=(10.3, 8.9, 6.2, 5.2, 4.4, 65.0);
 Year_1996:AR=(9.8, 8.1, 7.5, 7.9, 3.4, 63.3);
 Firm:ARRAY[1..6] of String=('Compaq','IBM','Packard Bell (NEC)',
                              'Apple','HP','Others');

Procedure Diagram(Ad:AR; Xc:Word; S:String);
var
 i:Integer;
 Ang_bef,Ang_aft,Ang:Word;
begin
 SetColor(15);
 SetTextStyle(DefaultFont,HorizDir,2);
 SetTextJustify(CenterText,TopText);
 OutTextXY(Xc,10,S);
 SetTextStyle(DefaultFont,HorizDir,1);
 Ang_bef:=0;
 For i:=1 to 6 do
  begin
   SetFillStyle(1,8+i);
   SetColor(8+i);
   Ang_Aft:=Ang_bef+ROUND(3.6*Ad[i]);
   Ang:=(Ang_bef+Ang_Aft) div 2;
   PieSlice(Xc,240,Ang_Bef,Ang_Aft,100);
   If i<4 then
    SetTextJustify(LeftText,CenterText)
   else
    SetTextJustify(RightText,CenterText);
   OutTextXY(Xc+ROUND(110*Cos(Ang/180*Pi)),
             240-ROUND(110*Sin(Ang/180*Pi)),Firm[i]);
   Ang_bef:=Ang_Aft;
  end;
end;

BEGIN
 InitGraph(..);[COLOR=Red]{Параметры этой функции задайте сами}
[/COLOR] Diagram(Year_1995,140,'Market 1995');
 Diagram(Year_1996,460,'Market 1996');
 ReadKey;
 CloseGraph;
END.
В результате должно получиться так:
AA_DD.webp
А уж всякие там файловые вводы, организацию параметров процедуры и прочую ерунду поправьте, если препод будет настаивать на этих дурацких указулях.
P.S. Почему на правой диаграмме лезут какие-то черные полосы - так и не понял. Надеюсь, они не помешают.
 
Владимир, вы умничка)) я в вас не сомневалась)) Спасибо вам большое)*
 
Назад
Сверху