0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 18
1

Линейная диаграмма жизни животных

17.11.2016, 21:09. Показов 6352. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер форумчане, сестра учится в школе и надо сделать задачу, сам не силен, прошу помощи, заранее благодарен
"По данным таблицы постройте линейную диаграмму, иллюстрирующую продолжительность жизни разных животных"
Вот данные с таблицы
Бегемот - 40
Белка - 6
Жираф - 12
Заяц - 8
Крокодил - 80
Медведь - 45
Слон - 70
Черепаха - 70

Pascal ABC

Линейная диаграмма жизни животных
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2016, 21:09
Ответы с готовыми решениями:

данные о продолжительности жизни некоторых животных!!!
Дана таблица, содержащая данные о продолжительности жизни некоторых животных. Напишите программу,...

Линейная диаграмма
Ребят, возникли трудности с созданием линейной горизонтальной диаграммы в Pascal ABC. Помогите...

Линейная диаграмма (Прошу Помощи)
Уважаемые, товарищи! Здраствуйте! Прошу помощи у Вас. Требуется создать линейную диаграмму, у меня...

Определить результативного охотника — по количеству животных и по весу животных
как определяющий результативного охотника - по количеству животных и по весу животных. #include...

3
27 / 27 / 29
Регистрация: 04.01.2015
Сообщений: 120
20.11.2016, 21:53 2
Ну так создали бы тему в разделе PascalABC!
Щас помогу

Добавлено через 48 минут
Уффф... Вот:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//Цвета выберешь с сестрой по вкусу
 
uses GraphABC;
 
const rect_height = 10; //Высота каждого из прямоугольников на диаграмме
      begemot = 40;
      belka = 6;
      giraf = 12;
      zajac = 8;
      krokodil = 80;
      medved = 45;
      slon = 70;
      cherepaha = 130;
      window_width = 640;
      window_height = 480;
      y_of_OX = window_height - 80;
      x_of_OY = 80;
      label_length = 550; //Длина "засечек"
      x = 4; //Просто коэф-т
      font_name = 'Comic Sans MS'; //Название шрифта
      font_size = 8; //Размер шрифта
  
var i, counter:cardinal;  
  
begin
  SetWindowWidth(window_width); //Устанавливаем ширину экрана
  SetWindowHeight(window_height); //Устанавливаем высоту экрана
  ClearWindow; //Очищаем окно
  Font.Name:= font_name;
  Font.Size:= font_size;
  Line(0, y_of_OX, window_width, y_of_OX); //Проводим OX
  Line(x_of_OY, 0, x_of_OY, window_height); //Проводим OY
  //Теперь "засечки"
  i:= x_of_OY; //Абсцисса начальной засечки
  repeat
    Line(i, y_of_OX - 3, i, y_of_OX + 3);
    i:= i + 3;
  until (i > x_of_OY + label_length);
  counter:= 1;
  i:= x_of_OY;
  repeat 
    i:= i + rect_height * x;
    TextOut(i - x, y_of_OX + Font.Size, inttostr(counter * 10));
    counter:= counter + 1;
  until (counter > cherepaha div 10);
  //Чертим саму диаграмму
  SetPenColor(clBlack);
  //Бегемот
  i:= y_of_OX - rect_height * x;
  SetBrushColor(clRed);
  SetBrushStyle(bsSolid);
  rectangle(x_of_OY, i, x_of_OY + begemot * x, i + rect_height * x);
  Line(x_of_OY - 7, i, x_of_OY, i); 
  SetBrushColor(clWhite);
  TextOut(0, i, 'Бегемот-' + inttostr(begemot));
  //Белка
  i:= i - rect_height * x;
  SetBrushColor(clGreen);
  SetBrushStyle(bsSolid);
  rectangle(x_of_OY, i, x_of_OY + belka * x, i + rect_height * x);
  Line(x_of_OY - 7, i, x_of_OY, i); 
  SetBrushColor(clWhite);
  TextOut(0, i, 'Белка-' + inttostr(belka));
  //Жираф
  i:= i - rect_height * x;
  SetBrushColor(clBlue);
  SetBrushStyle(bsSolid);
  rectangle(x_of_OY, i, x_of_OY + giraf * x, i + rect_height * x);
  Line(x_of_OY - 7, i, x_of_OY, i); 
  SetBrushColor(clWhite);
  TextOut(0, i, 'Жираф-' + inttostr(giraf));
  //Заяц
  i:= i - rect_height * x;
  SetBrushColor(clYellow);
  SetBrushStyle(bsSolid);
  rectangle(x_of_OY, i, x_of_OY + zajac * x, i + rect_height * x);
  Line(x_of_OY - 7, i, x_of_OY, i); 
  SetBrushColor(clWhite);
  TextOut(0, i, 'Заяц-' + inttostr(zajac));
  //Крокодил
  i:= i - rect_height * x;
  SetBrushColor(clBrown);
  SetBrushStyle(bsSolid);
  rectangle(x_of_OY, i, x_of_OY + krokodil * x, i + rect_height * x);
  Line(x_of_OY - 7, i, x_of_OY, i); 
  SetBrushColor(clWhite);
  TextOut(0, i, 'Крокодил-' + inttostr(krokodil));
  //Медведь
  i:= i - rect_height * x;
  SetBrushColor(clLightGray);
  SetBrushStyle(bsSolid);
  rectangle(x_of_OY, i, x_of_OY + medved * x, i + rect_height * x);
  Line(x_of_OY - 7, i, x_of_OY, i); 
  SetBrushColor(clWhite);
  TextOut(0, i, 'Медведь-' + inttostr(medved));
  //Слон
  i:= i - rect_height * x;
  SetBrushColor(clMagenta);
  SetBrushStyle(bsSolid);
  rectangle(x_of_OY, i, x_of_OY + slon * x, i + rect_height * x);
  Line(x_of_OY - 7, i, x_of_OY, i); 
  SetBrushColor(clWhite);
  TextOut(0, i, 'Слон-' + inttostr(slon));
  //Черпаха
  i:= i - rect_height * x;
  SetBrushColor(clCyan);
  SetBrushStyle(bsSolid);
  rectangle(x_of_OY, i, x_of_OY + cherepaha * x, i + rect_height * x);
  Line(x_of_OY - 7, i, x_of_OY, i); 
  SetBrushColor(clWhite);
  TextOut(0, i, 'Черепаха-' + inttostr(cherepaha));
  Font.Style:= fsBold;
  Font.Size:= Font.Size + x;
  TextOut(170, x, 'Продолжительность жизни животных');
end.
1
Модератор
Эксперт по электронике
8340 / 4234 / 1605
Регистрация: 01.02.2015
Сообщений: 13,187
Записей в блоге: 5
20.11.2016, 23:45 3
isst, смотрите, можно было бы сделать оптимальнее.
Идея в следующем - т.к. способы обработки (создание столбиков) идентичны, то создаём типизированные константы - два массива - один массив с названиями, другой - со значениями.
А при построении графика в цикле обрабатываете эти массивы (и никакой CopyPaste).
Что-то вроде
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
type
  TArrayName = array[1..8] of string;
  TArrayAge = [1..8] of integer;
const
  AnimalsList = ('бегемот', 'белка', 'Жираф', 'Заяц', 'Крокодил', 'Медведь', 'Слон', 'Черепаха');
  AnimalsAge = (1, 2, 3, 4, 5, 6, 7, 8);
..................
begin
...........
  for a:=1 to 8 do
  begin
    i:= i - rect_height * x;
    SetBrushColor(clMagenta);
    SetBrushStyle(bsSolid);
    rectangle(x_of_OY, i, x_of_OY + AnimalsAge[a] * x, i + rect_height * x);
    Line(x_of_OY - 7, i, x_of_OY, i); 
    SetBrushColor(clWhite);
    TextOut(0, i, AnimalsList[a] + inttostr(AnimalsAge[a]));
  end;
...........
end.
В чём плюс - при изменении обработки код меняется в одном месте.

Добавлено через 9 минут
Sorry, типизированные константы описываются иначе
Pascal
1
2
3
const
  AnimalsList: TArrayName = ('бегемот', 'белка', 'Жираф', 'Заяц', 'Крокодил', 'Медведь', 'Слон', 'Черепаха');
  AnimalsAge: TArrayAge = (1, 2, 3, 4, 5, 6, 7, 8);
1
27 / 27 / 29
Регистрация: 04.01.2015
Сообщений: 120
21.11.2016, 00:32 4
ФедосеевПавел, спасибо. Я сначала так и хотел сделать, но потом просто задолбался если честно и решил откопипастить
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2016, 00:32
Помогаю со студенческими работами здесь

Задача "Магазин животных": Посчитать суммарную стоимость всех животных.
Доброго времени суток Прошу помощи в решении задачи Исходный файл: CAT Mike 3 3700 DOG Tom 2...

Аппроксимация (регрессия) двух вариантов - линейная и линейная общего вида
Ребят привет. Не могу понять почему не работает...

Линейная алгебра. Линейная зависимость-независимость векторов
Являются ли вектора пространства L линейно независимыми? Если линейно зависимые, то выбрать из них...

Векторная диаграмма токов и топографическая диаграмма напряжений
Имея вот такие параметры мне нужно построить векторную и диаграмму токов и топологическую диаграмму...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru