Читаем Этюды для программистов полностью

Таблица 16.1. Выдержка из реального журнала покупок бензина
ДатаМарка бензинаПробег (в милях)Цена галлона (в центах)Количество галлоновСумма
03/27/74Texaco24 37059.913.5$8.00
04/05/74Texaco24 43459.95.5$3.30
04/11/74Texaco24 59659.98.2$4.88
04/23/74Mobil24 86258.812.9$7.60
05/13/74Mobil25 05761.913.9$8.60
06/11/74Arco25 23962.912.5$7.85
07/12/74Texaco25 43563.314.2$8.90
07/19/74Chevron25 71358.812.487.27
07/28/74Mobil26 13560.914.1$8.60
08/07/74Arco26 38460.413.1$8.00
08/08/74Chevron26 71259.913.3$7.90
08/16/74Arco26 99760.913.6$8.30
08/22/74Mobil27 06860.94.0$2.45
08/22/74Shell27 36261.611.8$7.25
08/23/74Shell27 60663.410.3$6.54
08/25/74Ericson27 91360.913.6$8.29
08/26/74American28 16360.910.8$6.55
08/26/74American28 48757.914.0$8.10
08/27/74DX28 77153.912.2$6.60
08/28/74Conoco29 11459.914.8$8.90
08/28/74Texaco29 33758.910.2$6.00
08/28/74Phillips29 66160.913.9$8.35
08/29/74Chevron29 91265.910.8$7.10
08/29/74Shell30 14765.910.3$6.70
08/30/74Texaco30 31760.97.6$4.60
08/31/74Exxon30 64356.913.3$7.60
09/06/74Shell30 87859.913.2$7.90
09/10/74Shell31 18259.913.0$7.80
09/14/74Exxon3146757.913.1$7.60
09/18/74Arco31 71157.910.1$5.85
09/24/74Arco31 98457.912.5$7.25
09/27/74Arco32 22557.99.9$5.70
10/01/74Arco32 45557.99.8$5.65

Будем считать в данной задаче, что каждой новой записи в журнале соответствует новая полная заправка автомобиля. Первая запись в журнале устанавливает точки отсчета дат и пройденного пути; никак иначе она не используется. Следующие записи фиксируют пробег и расходы на очередную заправку, показывая объем сожженного горючего и количество пройденных миль после предыдущей заправки. Было бы также любопытно печатать текущие средние значения за самое последнее время, чтобы заметить краткосрочные изменения.

Тема. По данным, имеющимся в журнале покупок бензина, напечатайте разнообразную контрольную статистику, показывающую водителю, во что обходится эксплуатация автомобиля. Исходные данные о каждой покупке — это дата, марка бензина, показание счетчика пройденного пути, цена одного галлона, сколько галлонов куплено и общая стоимость. Выводимая информация должна повторять исходную и, кроме того, включать в себя такие показатели, как пробег между заправками, пробег на один галлон, стоимость пробега в одну милю, стоимость одного галлона, стоимость одного дня, время расходования одного галлона. Все указанные показатели следует получать для каждой заправки и усреднять двумя способами: за небольшой срок и за все время наблюдений. Кроме того, соберите данные по каждой марке бензина и напечатайте соответствующие средние значения. Не ограничивайте число различных марок.

Указания исполнителю. Предлагаемая программа не особенно трудна. Для печати долларовых величин, как и в некоторых других задачах, нужна некоторая изобретательность. Требование неограниченности числа марок означает, что их нельзя задать заранее, поэтому нужна простая расширяемая таблица марок и связанной с ними информации.

Инструментовка. И снова очевидный кандидат — Кобол, созданный как раз для решения подобных задач. Если вам удастся найти достаточно мощный язык для генерации отчетов, уместно научиться им пользоваться. Можно ислользовать и любой процедурный алгебраический язык.

Длительность исполнения. Одному исполнителю на 1 неделю.

17.

Тише едешь — дальше будешь,

или Моделирование движения на автостраде

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже