Есть много других причин, по которым программисты совершают подобные ошибки
Есть много других причин, по которым программисты совершают подобные ошибки. Когда я готовился к написанию этой главы, то нашел аналогичный пример в своей собственной программе анализа результатов опроса. В основном цикле содержалось сорок строк кода в восьми блоках из пяти операторов, первые два из которых имели вид:
ethmcgroup = entry[0]
campus = entrytl]
if entry[2] == refused /* отказался отвечать */ declined[ethmcgroup. 2]++
else
j = 1 + entry[2]
count [campus , ethmcgroup. j]++
if entry[3] == refused
declined[ethnicgroup, 3]++
else
j = 4 + entry[3]
count [campus . ethmcgroup j] + +
Я мог бы заменить эти сорок строк шестью, инициализировав массив offset (сдвиг) значениями 0, 0, 1, 4, б,...
for 1 = [2. 8]
if entry[i] == refused
declmed[ethnicgroup. i ]++
el se
j = offset[i] + entry[i] count[campus. ethnicgroup. j ] + +
Я был так рад, сократив объем кода в 10 раз, что пропустил еще одну возможность сократить его, которая на самом деле бросалась в глаза.
Опубликовал vovan666
April 16 2013 23:35:13 ·
0 Комментариев ·
4201 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.