Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
933.3 Кб
Скачать

9.3. Имена Имена объектов программы должны быть осмысленными.

Пример.

tip razmer adres

Hе надо!

xx aa a1 a2

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

Пример.

BegKm EndKm FieldName

В "венгерской" нотации перед именем записывается тип объекта программы.

Пример.

intBegKm intEndKm charFieldName

Не используйте в программе сходные имена!

Пример.

value values

ax1 axi

k K

Если имя содержит цифры, записывайте их в конце.

Пример.

fund1 Tab15

Имя не должно совпадать с ключевым словом или с именем библиотечной функции.

В языках Basic и С ключевые слова зарезервированы, т.е. при подобном совпадении транслятор выдает ошибку. Однако в некоторых языках допустимы такие конструкции.

Пример. Язык PL/1.

if if = then then

then=else;

else

else=if;

9.4. Язык и приемы программирования

1. Активно используйте удобные и понятные особенности языка.

Пример.

C a=b=0; k++; x+=c; //Многократное присваивание – это удобно!

Basic x=5 : y=x^3-2 '2-3 связанные короткие инструкции в 1 строку

2. Изучайте и используйте библиотечные функции. Малоупотребительные комментируйте.

Пример.

// pow(x,n) – возведение x в степень n

3. Не применяйте трюки!

Пример. Формирование единичной матрицы.

for(k=0; k<n; k++){

for(m=0; m<n; m++){

x[k][m]=((k+1)/(m+1))*((m+1)/(k+1)); // Это трюк!

}

}

То же самое можно записать так.

for(k=0; k<n; k++){

for(m=0; m<n; m++){

x[k][m]=0;

}

x[k][k]=1;

}

4. Не игнорируйте предупреждения и старайтесь их ликвидировать!

Предупреждение при трансляции в большинстве случаев указывает место возможной ошибки.

Conversion may lose signicant digitsПри преобразовании могут быть потеряны значащие цифры. Возникает, например, при попытке присваивания short=long или Integer=Long (Basic).

Parameter 'doc' is never used Параметр 'doc' никогда не используется. Чаще всего возникает после модификации выполняемых инструкций программы, когда необходимость в параметре doc отпала, а в объявлении или в списке параметров процедуры он сохранился.

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

Пример.

y=2*(a+b) / sqrt((a+b)*(a+b)+(c+d)*(c+d));

6. Не изменяйте значение параметра цикла внутри тела цикла.

Это затрудняет понимание логики. Кроме того, некоторые трансляторы в целях оптимизации по времени работы помещают копию параметра цикла в регистр процессора. При этом изменение его в теле цикла не повлияет на условие выполнения, что, вероятно, приведет к ошибке.

7. Избегайте инструкций перехода.

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

Не используйте помеченные инструкции, на которые нет ссылок.

Единственный смысл такого применения меток – это дополнительное комментирование. Зачем тогда комментарии языка?

8. Объявляйте все переменные явно.

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

9. Не используйте одни и те же переменные для различных целей.

При последующей модификации одного фрагмента программы такие переменные могут вызвать ошибку в другом фрагменте.

10. Не забывайте, что данные с плавающей точкой есть приближенные представления десятичных значений.

Для них с осторожностью надо применять операции равно и не равно.

Пример. Цикл с вещественным параметром.

For x=0 To 2 Step 0.05

........................

Next x

При x=2 проход по циклу может не выполниться. Надо записывать так:

For x=0 To 2.02 Step 0.05

........................

Next x

11. Используйте исчерпывающие проверки.

Если переменная должна принимать значения 1|2|3, не следует полагать, что ее значение равно 3, если оно не равно 1 и не равно 2, т.к. возможны ошибки.

9.5. Стиль в языках С и Basic

По оценке автора:

ОВ – весьма важная рекомендация;

В – рекомендация средней важности;

МВ – рекомендация относительно малой важности.

Степень важности рекомендаций определялась на основании оценки их влияния на написание надежной (с минимумом ошибок) программы.

1. (В) Имена. Использовать "паскалевскую" или "венгерскую" нотации.

2. (В) Описатели. Если постановка задачи не требует повышенной точности представления, использовать для данных с плавающей точкой типы float (C) и Single (Basic).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]