Шрифт:
Предположим, данные о температуре записаны в указанном выше формате и нам нужно их прочитать. К счастью, формат содержит автоматически идентифицируемые компоненты, такие как годы и месяцы (немного напоминает форматы HTML и XML). С другой стороны, формат отдельной записи довольно неудобен. Например, в ней нет информации, которая могла бы нам помочь, если бы кто-то перепутал день месяца с часом или представил температуру по шкале Цельсия, хотя нужно было по шкале Фаренгейта, и наоборот. Все эти проблемы нужно как-то решать.
10.11.1. Представление в памяти
Как представить эти данные в памяти? На первый взгляд, необходимо создать три класса,
• Если есть показания для какого-то месяца, то их обычно бывает много.
• Если есть показания для какого-то дня, то их обычно бывает много.
В этом случае целесообразно представить класс
Аналогично, мы заметили, что часто в течение некоторых месяцев не производилось ни одного измерения, поэтому ввели понятие “пропущен месяц”, вместо того чтобы проверять пропуски для каждого дня.
Три основных класса принимают следующий вид:
В принципе каждый класс — это просто вектор, а классы