Рассмотрим программу анализа 20 000 анкет, заполненных студентами некоторого колледжа. Часть выводимых результатов представлена в виде табл. 3.1.
Для каждой этнической группы сумма количества мужчин и женщин оказывается чуть меньше целого, поскольку некоторые респонденты ответили не на все вопросы. На самом деле выводимый текст был более сложным. Я привел все семь строк, которые были в оригинале, но некоторые столбцы оригинальной таблицы исключил. На самом деле их было 25, а таблиц таких было три (по одной на каждый из двух студенческих городков п одна общая). Кроме того, нужно было вывести еще несколько похожих таблиц, например, количество студентов, не ответивших на каждый конкретный вопрос. Каждая анкета представлялась в виде записи, в которой поле 0 содержало этническую группу, представленную целым от 0 до 7 (7 возможных категорий + «отказался отвечать»), поле 1 содержало номер студенческого городка (целое между 0 и 2), поле 2 содержало информацию о гражданстве и так далее до поля 8.
Программист подошел к написанию программы как системный аналитик высокого уровня. Проработав с ней два месяца и выдав на-гора тысячу строк кода, он решил, что работа наполовину сделана. Я понял, чем вызваны его затруднения, взглянув на программу. Она содержала 350 отдельных переменных: 25 столбцов х 7 строк х 2 таблицы. За объявлением переменных следовала запутанная логическая система, в которой определялось, какую из переменных следует увеличивать в соответствии со значением обрабатываемого поля. Подумайте над тем, как бы вы стали писать подобную программу.
Первое предположение заключается в том, что числа следует хранить в массиве. Следующий выбор сделать сложнее: должна ли структура массива соответствовать выводимым данным (три измерения: городок, этническая группа, 25 столбцов) или входным (четыре измерения: городок, этническая группа, категория и значение в этой категории)? Если пс учитывать деление па студенческие городки, графически эти варианты можно изобразить следующим образом (рис. 3.1).
Опубликовал vovan666
April 16 2013 23:35:08 ·
0 Комментариев ·
3565 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.