Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 07.11.2020
Сообщений: 15

Какие из рейсов на каждом маршруте надо исключить из расписания, чтобы маршруты стали рентабельными

08.12.2020, 20:28. Показов 1547. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я знаю, что в данной задаче должны быть следующие подпрограммы: заполнение двумерного массива, вывод двумерного массива, сортировка по строкам, суммирование по строкам.

Но я не знаю, как их реализовать в программе

Вот сама задача:
Для каждого из пяти автобусных маршрутов известно количество проданных билетов
на каждый из семи рейсов. В каждом автобусе K мест. Какие из рейсов на каждом
маршруте надо исключить из расписания, чтобы маршруты стали рентабельными.
(Маршрут является рентабельным, если общее число проданных на него билетов
превосходит 75% от общего числа мест во всех автобусах маршрута).

Помогите пожалуйста
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2020, 20:28
Ответы с готовыми решениями:

Какое число каналов надо иметь, чтобы исключить длительные ожидания
Здравствуйте, помогите пожалуйста решить. Узел связи обслуживает 1000 абонентов. Каждый из абонентов в среднем занимает линию связи в...

На каждом маршруте не более 40 остановок
На каждом маршруте не более 40 остановок...

Какие числа надо перемножить, чтобы получить исходное?
Есть число,допустим 19.3 ,нужно узнать какие числа нужно перемножить что бы его получить(округленные числа тоже считаются ,например числа...

10
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.12.2020, 20:33
Цитата Сообщение от margo_boooom Посмотреть сообщение
сортировка по строкам
Это как? Переставить строки в порядке увеличения или умньения какой-то характеристики?
Напишите точное и полное задание.
0
0 / 0 / 0
Регистрация: 07.11.2020
Сообщений: 15
09.12.2020, 19:24  [ТС]
Я так поняла, что нужна сортировка по возрастанию.
Затем ,получается берем самое минимальное значение из первой строки,убираем его и проверяем, стал маршрут рентабельным или нет, если нет, то убираем ещё одно значение и тд. И так делаем в каждой строке, НО я не знаю, верный ли это вариант...
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.12.2020, 19:51
Я не понимаю задачу. Если есть 5 матршрутов, то маршрут будет иметь не менее 75 процентов когда он останется один причем любой. Или так или я вообще ничего не понял.
0
0 / 0 / 0
Регистрация: 07.11.2020
Сообщений: 15
09.12.2020, 20:22  [ТС]
Я понимаю примерно так:
рассмотрим 1 маршрут, у него есть 7 рейсов, K,допустим, равняется 50.
получается строка
50 35 40 10 40 25 35
После суммирования элементов получится 235
Т.к. может быть продано максимум 50 билетов, то 50*7 = 350
350 - 100%
235 получается 67%
убираем 4 рейс, т.к там продано меньше всего билетов, получается
300 - 100%
225 вышло 75%
Раз маршрут является рентабельным, если общее число проданных на него билетов
превосходит 75% от общего числа мест во всех автобусах маршрута, тогда думаю стоит убрать ещё один рейс, где продано 25 билетов, следовательно маршрут станет рентабельным без этих двух рейсов
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.12.2020, 20:33
Да вроде рассуждения верные.
0
0 / 0 / 0
Регистрация: 07.11.2020
Сообщений: 15
09.12.2020, 20:36  [ТС]
Помогите пожалуйста реализовать это в Паскаль, у меня не получается
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.12.2020, 20:39
Только не сегодня, поздно у меня.
0
0 / 0 / 0
Регистрация: 07.11.2020
Сообщений: 15
09.12.2020, 20:40  [ТС]
Конечно, когда вам будет удобно
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
10.12.2020, 08:35
Лучший ответ Сообщение было отмечено margo_boooom как решение

Решение

Вот я написал, работает, но убпрает до 5 автобусов из семи. Переделайте на ручной ввод, 1-2 автобуса по 5-10, остальные по 40-50, это к примеру, смотрите сами.
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
const m=5; //кол-во маршрутов
      r=7; //кол-во рейсов на маршрутах
      k=50;//кол-во мест в автобусах
type avt=record //тип автобус
         ms,nm:integer;//кол-во проданных мест и номер по порядку на маршруте
         end;
     mtr=array[1..m,0..r]of avt;//матрица автобусов
     nrn=record //нерентабельные автобусы
         mr,nm:integer;//маршрут и номер рейса
         end;
    mnr=array[1..m*r]of nrn;//массив нерентабельных рейсов
//создание матрицы
procedure create(var a:mtr);
var i,j:integer;
begin
writeln('Состояние маршрутов');
writeln('------------------------------------');
writeln('|       |      номера рейсов       |');
writeln('|маршрут|--------------------------|');
writeln('|       | 1 | 2 | 3 | 4 | 5 | 6 | 7|');
writeln('------------------------------------');
for i:=1 to m do
 begin
  write('|',i:4,'   |');
  for j:=1 to r do
   begin
    a[i,j].ms:=10+random(k-9);
    a[i,j].nm:=j;
    write(a[i,j].ms:2,' |');
   end;
  writeln;
 end;
writeln('------------------------------------');
end;
//сортировка строк матрицы по возрастанию
procedure sort(var a:mtr);
var i,j,k:integer;
    t:avt;
begin
for i:=1 to m do
for j:=1 to r-1 do
for k:=j+1 to r do
if a[i,j].ms>a[i,k].ms then
 begin
  t:=a[i,j];
  a[i,j]:=a[i,k];
  a[i,k]:=t;
 end;
end;
//подсчет суммы проданных билетов x автобусов маршрута
function summa(a:mtr;i,x:integer):integer;
var j:integer;
begin
result:=0;
for j:=x to r do
inc(result,a[i,j].ms);
end;
//выбор нерентабельных на маршруте
procedure vybor(a:mtr;var b:mnr;var n:integer);
var i,j,s:integer;
begin
for i:=1 to m do
 begin
  s:=r;
  j:=1;
  while(j<=s)and(summa(a,i,j)/(k*s)<=0.75) do//пока маршрут не рентабельный
   begin
    inc(n);//считаем автобус с начала(с меньшим числом проданных мест)
    //пишем его в массив нерентабельных
    b[n].mr:=i;
    b[n].nm:=a[i,j].nm;
    dec(s);
    inc(j);
   end;
 end;
if n=0 then write('Нет нерентабельных маршрутов')
else
 begin
  writeln('Исключены из расписания');
  writeln('---------------------');
  writeln('|маршрут|номер рейса|');
  writeln('---------------------');
  for i:=1 to n do
  writeln('|',b[i].mr:4,'   |',b[i].nm:6,'     |');
  writeln('---------------------');
 end;
end;
 
var av:mtr;
    nr:mnr;
    n,i:integer;
begin
create(av);
sort(av);
n:=0;
vybor(av,nr,n);
end.
1
0 / 0 / 0
Регистрация: 07.11.2020
Сообщений: 15
10.12.2020, 20:33  [ТС]
Огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2020, 20:33
Помогаю со студенческими работами здесь

Какие мне надо знать ЯП чтобы писать софт под ПК ?
Я хочу узнать какие нужны ЯП чтоб писать софт под ПК, я не знаю с какого языка стартовать, пока что меня привлекает С# и JS, но как мне...

Какие изменения надо внести в код, чтобы сокеты работали с IPv6 ?
Какая должна быть структура для хранения IPv6 вместо старой структуры sockaddr_in ? Что ещё нужно поменять, чтобы заработало IPv6, в...

Какие компоненты надо использовать, чтобы сделать программу по данному примеру?
всем привет! подскажите пожалуйста как сделать вот такую программу (какие элементы использовать...)

какие команды надо посылать сайту tuborg.ru(ip 74.125.39.120) чтобы авторизовываться
1прошу модераторов сделать ссылку на эту тему программистам html 2коды страниц во вложениях. сам программирую на с++ использую...

Какие 2 сортировки надо знать, чтобы на все случаи жизни быть застрахованным?
Всем добрый вечер! Форум уже давно читаю на правах гостя. Сегодня всерьез решил заняться темой сортировок. Форум очень интересный,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru