Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание2 семетр исправл.doc
Скачиваний:
6
Добавлен:
13.05.2015
Размер:
173.06 Кб
Скачать

4.3. Пользовательский интерфейс

  1. Интерфейс должен содержать все, что необходимо пользователю для выполнения его задачи и ничего лишнего. Например, если пользователь должен выбрать один из нескольких взаимоисключающих вариантов, следует применять их выбор из списка или переключатели.

  2. Важной характеристикой пользовательского интерфейса является его интуитивная понятность. Компоненты интерфейса должны быть привычными для пользователя. Везде, где это возможно, используйте стандартные элементы управления.

  3. Тщательно планируйте интерфейсы с несколькими формами. Расположенные на каждой форме элементы управления должны быть логически сгруппированы. Следует избегать как большого количества простых форм, так и форм, переполненных компонентами и ошеломляющих пользователя своей сложностью.

4.4. Защита от ошибок

  1. Необходимо предотвращать ошибки арифметических операций (деление на ноль, корень из отрицательного числа, логарифм неположительного числа и т.п.), для чего вычислять соответствующие подвыражения отдельно и проверять их на корректность. При необходимости включите также комментарий, объясняющий, почему значение переменной в любом случае будет корректным.

  2. Попытка разыменования указателя, ссылающегося на nil, вызывает ошибку. Следовательно, любой указатель, содержимое которого неизвестно, должен быть проверен до разыменования, например:

If (intPtr<>nil) then

begin

intPtr^:=5;

end;

  1. Необходимо проверять корректность параметров, получаемых подпрограммой, даже если они заведомо должны быть правильными (проверка внутри подпрограммы).

  2. Необходимо проверять корректность значений, возвращаемых подпрограммой (проверка после вызова подпрограммы).

  3. Необходимо проверять результаты файловых операций (открытие файла, создание файла, чтение из файла, запись в файл).

  4. Необходимо проверять результаты операций со свободной памятью, особенно результаты операции выделения памяти.

4.5. Отступы и блоки

  1. Использование отступов делает код намного понятнее. Операторы в блоках подпрограмм должны быть отмечены отступами, состоящими, как минимум, из двух пробелов. При этом операторы одного уровня иерархии должны иметь равный отступ.

  2. По два пробела необходимо добавлять также при каждом увеличении уровня вложенности в блоки циклов или условных операторов. Стиль отступов должен быть одним и тем же во всей программе. При этом операторы одного уровня иерархии должны иметь равный отступ. Пример использования отступов:

Procedure TfrmIndentExample.DoIt(Sender:TObject);

Var

Code:integer;

myReal:real;

inner:integer;

outer:integer;

begin

val(edtNumber.Text, myReal, code);

if (code = 0) then begin

for outer := 1 to 20 do begin

myReal := myReal + 1.0;

if (myReal > 100.0) then begin

for inner := 1 to 5 do begin

myReal := (myReal / 2.0) + inner;

end; {for}

end

else begin

myReal := myReal + 5.5;

end; {if}

end; {for}

end; {if}

end; {DoIt}

  1. Использование пустых строк является важным средством для выделения участков программы. При этом имеет смысл отделять определения переменных, последовательности однотипных инструкций и директив, описания процедур и функций, любые логически завершенные блоки кода.

  2. Отдельные элементы текста необходимо отделять пробелами, несмотря на то, что первые, возможно, уже отделены другими знаками препинания (скобки, запятые, точки с запятой и т.д.). В особенности важно отделять стоящие рядом операторы и списки аргументов процедур и функций. Дополнительные пробелы могут быть также использованы для выравнивания сходных по смыслу или однотипных частей выражений с целью улучшения наглядности, например, при объявлении переменных и для серии присваиваний.