Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 0 / 1
Регистрация: 09.12.2016
Сообщений: 57

Нахождение среднегодового количества проданных билетов за месяц; среднегодовой суммы выручки

27.04.2017, 12:46. Показов 1160. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите,пожалуйста, с решением задачи на Pascal. Или натолкните на него(решение),написав толковый алгоритм или идею. Мне необязателен готовый ответ. Не могу структурировать мысль, и потому прошу о помощи уверенных в своих знаниях и размышлениях людей.

Итак, условие:

На вход программы подаются строки, содержащие сведения о продаже ж/д билетов за день.
В каждой вводимой строке записана информация о дате дня продажи,кол-ве проданных билетов и общей сумме их стоимости.
Формат каждой строки следующий: сначала записана дата в виде dd.mm(на запись номера дня и номера месяца отводится строго 2 символа,день и месяц разделены точкой),затем вводится целое число,значение которого == кол-ву проданных билетов в этот день,затем - общая сумма стоимости проданных билетов за день.Всего вводится 365 строк. Информация вводится без соблюдения хронологического порядка. Требуется написать программу, которая рассчитает и выведет на экран информацию о среднегодовом кол-ве проданных билетов за месяц и среднегодовой сумме выручки от продажи билетов в месяц.

Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.04.2017, 12:46
Ответы с готовыми решениями:

Хранимая процедура: подсчет количества проданных билетов на указанный сеанс
В firebird появилась необходимость создать процедуру: Для подсчета количества проданных билетов на указанный сеанс. вот две таблицы(я...

Определите среднегодовой темп роста выручки от реализации за весь период работы фирмы
Задача 10. Первые два года фирма увеличивала выручку от реализации на 10% или в 1,1 раза ежегодно, за следующие три года она увеличивала...

Нахождение количества счастливых билетов
Найдите кол-во счастливых билетов типа - XXXXXX Счастливым является билет у которого три первые цифры равны трём последним Первый билет...

3
4 / 4 / 1
Регистрация: 21.02.2013
Сообщений: 14
27.04.2017, 14:08
Как бы делал я:
1) Создаем 2 массива
Pascal
1
a,b: array [1..12] of integer; //в первом будем накапливать кол-во билетов по месяцам, во втором сумму выручек по месяцам
2) Считываем из файла строку, вытаскиваем из нее месяц, кол-во билетов(число), сумму стоимости (число). Полученные данные записываем в массивы.
//например, на входе 01.12 35 15000
Pascal
1
2
a[12]:=a[12]+35;
b[12]:=a[12]+15000;
Так проходим по всем строкам файла.

После этого в массиве a получаем по всем месяцам кол-во проданных билетов, а в массиве b суммы за месяц.
Ну а дальше считаем среднегодовые значения по месяцам.

Написать код могу чуть позже и при условии что вы мне скажете, что служит разделителями в строках файла (между dd.mm, количеством и суммой).
1
1 / 0 / 1
Регистрация: 09.12.2016
Сообщений: 57
27.04.2017, 16:11  [ТС]
Спасибо за отклик!

В условии прямо не сказано, что должно служить разделителями. Я думаю, пробелы. (стандартное ' ')

Добавлено через 41 минуту
Я думаю, что a и b стоит сделать разных типов, поскольку стоимость может не являться целой, а количество быть достаточно большим.

И все же я бы сравнил с Вашим решением.

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
var m: 1..12;
dd_mm:string[5]; //дата
k: longint; // кол-во проданных за день билетов
sum: real; //стоимость проданных за день билетов
k_ticket: array [1..12] of longint; //кол-во проданных за месяц билетов
sum_ticket: array [1..12] of real; // стоимость проданных за месяц билетов
i, s1: integer;// i - счетчик, s1 - среднегод. кол-во проданных билетов (месяц)
s2:real; //s2 - среднегод.стоимость проданных билетов (месяц)
begin
 for i:= 1 to 12 do
  begin
  k_ticket[i]:=0;
  sum_ticket[i]:=0;
  end;
 for i:=1 to 365 do
 begin
  readln (dd_mm, k, sum);
  m:= (ord(dd_mm[4]) - ord('0'))*10 + ord(dd_mm[5])-ord('0');//преобразование в число даты 
  k_ticket[m]:= k_ticket[m]+k;
  sum_ticket[m]:=sum_ticket[m]+sum;
  s1:=s1-k;//подсчет кол-ва проданных б.(год)
  s2:=s2-sum;//подсчет стоимости проданных б.(год)
 end;
s1:= round(s1/12);
s2:=s2/12;
 writeln(s1,' ',s2);
end.
0
4 / 4 / 1
Регистрация: 21.02.2013
Сообщений: 14
27.04.2017, 16:45
Цитата Сообщение от Benkendorf Посмотреть сообщение
Я думаю, что a и b стоит сделать разных типов
Логично. Но тогда и среднегодовое количество билетов может быть вещественным. Можно сделать s1 real.

Я только сейчас задумался, а нужны ли эти 2 массива? Ведь чтобы получить среднегодовые значения по месяцам, достаточно накопить сумму и разделить на 12.

тогда вот это не нужно
Pascal
1
2
k_ticket[m]:= k_ticket[m]+k;
sum_ticket[m]:=sum_ticket[m]+sum;
а здесь нужно не вычитать, а прибавлять
Pascal
1
2
s1:=s1-k;//подсчет кол-ва проданных б.(год)
s2:=s2-sum;//подсчет стоимости проданных б.(год)
В остальном все ок, не вижу смысла писать то же самое еще раз ))
Вам осталось только добавить чтение из файла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2017, 16:45
Помогаю со студенческими работами здесь

Авиакомпания: вывести количество проданных билетов
В вашей авиакомпании два самолёта осуществляют по одному рейсу в день. В каждом самолёте по 10 мест.Вы продаёте билеты на 1-й или 2-й...

Как определить суммарное количество проданных билетов?
Документ в табличной части содержит следующий поля: фильм, зал, вместимость зала, количество. Мне нужно каждый раз, при создании новой...

Определить число проданных билетов на местах в 12 ряду
в зрительном зале 25 рядов по 36 кресел. Информация о проданных билетах записана в двухмерный массив-номера строк соответствуют номерам...

Определить количество билетов, проданных в каждом типе терминалов
На вокзале установлено N типов терминалов по продаже билетов. Количество терминалов i-го типа равно Ci. Когда пассажир приходит на...

Нахождение суммы n-го количества чисел
Требуется написать программу, которая осуществляет подсчёт суммы, n-го количества слагаемых. S=0+1-2+3-4+...n Очень нужна ваша...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru