Книга: Этюды для программистов
16. Горючие слезы, или Учет расхода бензина
16.
Горючие слезы,
или Учет расхода бензина
Тридцать центов за галлон — дело прошлое. Сорок центов за галлон — дело прошлое. Пятьдесят центов за галлон — дело прошлое. Сейчас[22] галлон бензина стоит шестьдесят центов, и, возможно, вскоре мы останемся вообще без горючего. Так что на повестке дня — анализ индивидуального расходования бензина.
Многие ведут журнал покупок бензина. Обычно туда записывают дату, показания счетчика пройденного пути, марку бензина, цену одного галлона, сколько галлонов куплено и общую стоимость. Три последние величины зависят друг от друга; эта зависимость не совсем точная из-за ошибок округления, но ее все же можно использовать для проверки правильности исходных данных. С помощью ЭВМ вы можете получить разнообразную статистическую информацию. Интересно вычислить такие производные величины, как средняя стоимость одного галлона, средний пробег на галлон, средний пробег за день, средняя стоимость пробега в одну милю, среднее время расходования одного галлона. Кроме того, хорошо было бы получить такую же информацию по каждой марке бензина и посмотреть, есть ли разница между марками. Таблица 16.1 — фрагмент реального журнала покупок бензина[23].
Таблица 16.1. Выдержка из реального журнала покупок бензина | |||||
Дата | Марка бензина | Пробег (в милях) | Цена галлона (в центах) | Количество галлонов | Сумма |
03/27/74 | Texaco | 24 370 | 59.9 | 13.5 | $8.00 |
04/05/74 | Texaco | 24 434 | 59.9 | 5.5 | $3.30 |
04/11/74 | Texaco | 24 596 | 59.9 | 8.2 | $4.88 |
04/23/74 | Mobil | 24 862 | 58.8 | 12.9 | $7.60 |
05/13/74 | Mobil | 25 057 | 61.9 | 13.9 | $8.60 |
06/11/74 | Arco | 25 239 | 62.9 | 12.5 | $7.85 |
07/12/74 | Texaco | 25 435 | 63.3 | 14.2 | $8.90 |
07/19/74 | Chevron | 25 713 | 58.8 | 12.4 | 87.27 |
07/28/74 | Mobil | 26 135 | 60.9 | 14.1 | $8.60 |
08/07/74 | Arco | 26 384 | 60.4 | 13.1 | $8.00 |
08/08/74 | Chevron | 26 712 | 59.9 | 13.3 | $7.90 |
08/16/74 | Arco | 26 997 | 60.9 | 13.6 | $8.30 |
08/22/74 | Mobil | 27 068 | 60.9 | 4.0 | $2.45 |
08/22/74 | Shell | 27 362 | 61.6 | 11.8 | $7.25 |
08/23/74 | Shell | 27 606 | 63.4 | 10.3 | $6.54 |
08/25/74 | Ericson | 27 913 | 60.9 | 13.6 | $8.29 |
08/26/74 | American | 28 163 | 60.9 | 10.8 | $6.55 |
08/26/74 | American | 28 487 | 57.9 | 14.0 | $8.10 |
08/27/74 | DX | 28 771 | 53.9 | 12.2 | $6.60 |
08/28/74 | Conoco | 29 114 | 59.9 | 14.8 | $8.90 |
08/28/74 | Texaco | 29 337 | 58.9 | 10.2 | $6.00 |
08/28/74 | Phillips | 29 661 | 60.9 | 13.9 | $8.35 |
08/29/74 | Chevron | 29 912 | 65.9 | 10.8 | $7.10 |
08/29/74 | Shell | 30 147 | 65.9 | 10.3 | $6.70 |
08/30/74 | Texaco | 30 317 | 60.9 | 7.6 | $4.60 |
08/31/74 | Exxon | 30 643 | 56.9 | 13.3 | $7.60 |
09/06/74 | Shell | 30 878 | 59.9 | 13.2 | $7.90 |
09/10/74 | Shell | 31 182 | 59.9 | 13.0 | $7.80 |
09/14/74 | Exxon | 31467 | 57.9 | 13.1 | $7.60 |
09/18/74 | Arco | 31 711 | 57.9 | 10.1 | $5.85 |
09/24/74 | Arco | 31 984 | 57.9 | 12.5 | $7.25 |
09/27/74 | Arco | 32 225 | 57.9 | 9.9 | $5.70 |
10/01/74 | Arco | 32 455 | 57.9 | 9.8 | $5.65 |
Будем считать в данной задаче, что каждой новой записи в журнале соответствует новая полная заправка автомобиля. Первая запись в журнале устанавливает точки отсчета дат и пройденного пути; никак иначе она не используется. Следующие записи фиксируют пробег и расходы на очередную заправку, показывая объем сожженного горючего и количество пройденных миль после предыдущей заправки. Было бы также любопытно печатать текущие средние значения за самое последнее время, чтобы заметить краткосрочные изменения.
Тема. По данным, имеющимся в журнале покупок бензина, напечатайте разнообразную контрольную статистику, показывающую водителю, во что обходится эксплуатация автомобиля. Исходные данные о каждой покупке — это дата, марка бензина, показание счетчика пройденного пути, цена одного галлона, сколько галлонов куплено и общая стоимость. Выводимая информация должна повторять исходную и, кроме того, включать в себя такие показатели, как пробег между заправками, пробег на один галлон, стоимость пробега в одну милю, стоимость одного галлона, стоимость одного дня, время расходования одного галлона. Все указанные показатели следует получать для каждой заправки и усреднять двумя способами: за небольшой срок и за все время наблюдений. Кроме того, соберите данные по каждой марке бензина и напечатайте соответствующие средние значения. Не ограничивайте число различных марок.
Указания исполнителю. Предлагаемая программа не особенно трудна. Для печати долларовых величин, как и в некоторых других задачах, нужна некоторая изобретательность. Требование неограниченности числа марок означает, что их нельзя задать заранее, поэтому нужна простая расширяемая таблица марок и связанной с ними информации.
Инструментовка. И снова очевидный кандидат — Кобол, созданный как раз для решения подобных задач. Если вам удастся найти достаточно мощный язык для генерации отчетов, уместно научиться им пользоваться. Можно ислользовать и любой процедурный алгебраический язык.
Длительность исполнения. Одному исполнителю на 1 неделю.
- А вы ноктюрн сыграть могли бы? или Предисловие редактора перевода
- Предисловие
- 1. Что бы это значило? или Как читать книгу
- 2. Жизнь диктует свои законы, или Клеточные автоматы и машинная графика
- 3. Папочка, а почему море синее? или Раскрашивание карты методом исчерпывающего поиска
- 4. Печатник-подмастерье, или Автоматическое форматирование текста
- 5 Победителей судят, или Составление и оценка турнира
- 6 Финансовые воротилы, или Управление предприятиями и машинное моделирование
- 7. Крисс-кросс, или Эвристическое составление головоломки
- 8 Тезей, или Автоматическое построение лабиринтов
- 9. Познай самого себя, или Программа, печатающая собственный исходный текст
- 10. Не прячьте ваши денежки, или Расчет дохода от вложенного капитала
- 11. Меньше copy — меньше и вздору, или Избыточность текста и сжатие файла
- 12. В духе добрососедства, или Домашняя бухгалтерия
- 13. Тур до Тьюрингу, или Моделирование машины Тьюринга
- 14. Машинные забавы, или Стратегия компьютера при игре в калах
- 15. Проще простого, или Поиск узоров из простых чисел
- 16. Горючие слезы, или Учет расхода бензина
- 17. Тише едешь — дальше будешь, или Моделирование движения на автостраде
- 18. Читаем, пишем, считаем, или Конструирование интерпретатора форматов
- 19. Пиковое положение, или Статистика пасьянсов
- 20. Квадратный трехчлен, или Пакет Для Алгебраических Вычислений
- 21. Превратное обратное, или Ошибки при работе с плавающей точкой
- 22. ? эр Квадрат, или Арифметические вычисления с высокой точностью
- 23. Великий комбинатор, или Оптимальные стратегии для игры с угадыванием
- 24. Секрет фирмы или Математический подход к раскрытию шифров
- Сноски из книги
- Содержание книги
- Популярные страницы
- Настройка учетных записей пользователей
- Карточка складского учета
- Глава 6. Ведение складского учета в программе «Складской учет»
- 3 Учетные записи пользователей
- Не могу войти в систему под учетной записью администратора, поскольку среди имен пользователей, отображаемых на экране п...
- При попытке войти в систему Пользователю1 выдается предупреждение, что загрузился временный профиль и все сделанные изме...
- Как из-под учетной записи пользователя (без администраторских привилегий) включать и отключать оборудование и выполнять ...
- Глава 10 Архитектура клиент-сервер: складской учет
- Настройка учетных записей
- 10.6. Гостевые учетные записи
- Настройка учетных записей почты
- Практическая работа 21. Настройка учетной записи в почтовой программе