Next:3.7
Выбор и обоснование набора тестов
Up:3
Общие рекомендации по выполнению заданий
Previous:3.5
Анализ алгоритма и его сложности
Начнем с рекомендаций по улучшению наглядности программного текста. Рекомендуется с помощью сдвига начала строк выделить содержательно разные части и части, относящиеся к синтаксически разным единицам программного текста. Это дает возможность дополнить структурированность управления в программе структурированностью самого ее текста, удобно показать вложенность одних конструкций в другие. При этом следует записывать repeat под соответствующим until, а else под соответствующим if и т.д., как это сделано в следующем фрагменте программы:
repeat if A[NUMBER] < A[NUMBER+1] then
T:=A[NUMBER];
A[NUMBER]:=A[NUMBER+1];
A[NUMBER+1]:=T
else COUNT:=COUNT+1
end;
NUMBER:=NUMBER+1
until NUMBER=100
Этот прием позволяет облегчить не только чтение программы, но и поиск некоторых ошибок в ней, например, место нарушения баланса скобок begin--end.
Использование комментариев и содержательно осмысленных (мнемонических) имен -- также весьма простой и мощный прием в деле улучшения наглядности программы.
В связи с этим укажем на весьма распространенное для начинающих программистов явление -- это употребление только одно-двухбуквенных имен в своей программе. В результате такие интуитивно родственные имена, как, например, A, B, C, даются не объектам, имеющим родственный смысл, а, скажем, массиву, индексу элемента в этом массиве и процедуре. Это крайне затрудняет чтение и, следовательно, понимание программы. Что касается комментариев, то они должны кратко и точно пояснять смысл тех шагов алгоритма, к которым они относятся. Не следует делать их ни слишком частыми, ни слишком длинными.
Нужно также разумно ограничить длину строк в программе. Дело в том, что программа должна допускать простую и эффективную модификацию, т.е. изменение в целях исправления ошибок, для нового использования программы или улучшения ее качества. Дадим еще несколько рекомендаций по улучшению качества программ. Остановимся лишь на трех самых важных приемах, с помощью которых можно добиться улучшения качества уже разработанной программы. Следует, однако, иметь в виду, что эти приемы повышают эффективность программы, но могут понизить ее наглядность.
Прежде всего необходимо упомянуть о запроцедуривании многократно используемых фрагментов как весьма мощном приеме в программировании. Суть этого приема состоит в том, что некоторый программный участок оформляется в виде процедуры (или функции). Таким образом, если результаты работы такого участка используются в программе неоднократно (возможно, с разными значениями параметров), то за счет замены этих программных участков вызовами соответствующей процедуры (или функции) достигается сокращение длины программы, повышаются структурированность и надежность программы, облегчается процесс ее написания и отладки.
Если значение некоторого выражения используется в программе несколько раз, причем ни одно из подвыражений при этом не перевычисляется, целесообразно занести значение этого выражения во вспомогательную переменную и затем использовать эту переменную. Например, вместо
X:=(2*Y+A*B)*(A*B*C+2*Y)
лучше написать
Y1:=2*2*Y; A1:=A*B; X:=(Y1+A1)*(A1*C+Y1).
Выражения, значения которых не изменяются при выполнении тела цикла, следует вычислять заранее и перед оператором цикла засылать соответствующее значение во вспомогательную переменную. Например, вместо
for I:=1 to 100 do A[I]:=A[I]*(B+C)+D*E end
лучше написать
X:=B+C; Y:=D*E; for I:=1 to 100 do A[I]:=A[I]*X+Y end
Next:3.7
Выбор и обоснование набора тестов
Up:3
Общие рекомендации по выполнению заданий
Previous:3.5
Анализ алгоритма и его сложности