Один торговец через сайт объявлений продаёт очень старый Айфон за 2000 рублей. К нему приехал покупатель, у которого с собой только пятитысячная купюра. Торговец берёт её, идёт к соседу и просит разменять, в итоге получает от соседа 2 купюры по 2000 и одну тысячерублёвку.
Покупатель забирает Айфон, 3000 рублей сдачи и уезжает. А через полчаса прибегает злой сосед и говорит, что наш продавец дал ему фальшивку. Чтобы решить вопрос мирно, торговец отдал соседу 5000 рублей из своих денег, а потом задумался: сколько он сегодня потерял?
Прежде чем давать ответ, попробуйте решить задачу сами и поглядите, какие варианты у наших читателей во «Вконтакте».
Иногда эту задачу решают так:
- 2000 ушло покупателю в виде Айфона
 - 3000 ушло к нему же как сдача
 - 5000 пришлось отдать соседу за фальшивую купюру
 
Итого 2000 + 3000 + 5000 = 10000.
Но это неверно. Давайте разберёмся, как распределились деньги на самом деле.
Для начала нужно ответить на вопрос, что мы вообще считаем. Тут два варианта:
- Мы можем считать только потери наличных денег. Например, Айфон у нас настолько старый, что для продавца он стоит 0 ₽. Представьте, что продаётся не Айфон, а какой-нибудь старый шкаф, который выгоднее даже отдать бесплатно, чем самостоятельно вывозить на свалку. В этом случае потеря Айфона — это 0 ₽.
 - Или же мы можем считать, что Айфон — тоже часть потери и для продавца он стоит те же 2000 ₽. Тогда продажа Айфона учитывается в общих расчётах.
 
Чтобы теперь рассчитать любой из вариантов, просто запишем все операции в столбик с точки зрения продавца. Там, где ему что-то прибыло, мы напишем это со знаком плюс, убыло — со знаком минус. Получится журнал движения денег и эквивалентов, по-программистски — лог:
Что сделал продавец | 
Движение денег и эквивалентов | 
Отдал Айфон | 
(− 2000 ₽) | 
Получил фальшивку | 
+ 0 ₽ | 
Отдал фальшивку на размен | 
− 0 ₽ | 
Получил размен | 
+ 5000 ₽ | 
Отдал сдачу | 
− 3000 ₽ | 
Вернул деньги соседу | 
− 5000 ₽ | 
Итого | 
− 3000 ₽ (− 5000 ₽) | 
Получается, что в зависимости от нашего взгляда, продавец лишился либо трёх тысяч рублей чистых денег, либо товара и денег на общую сумму пять тысяч рублей. Логирование событий — великая вещь!