Лекции. Основные понятия и определения
Скачать 1.94 Mb.
|
9.3. ИменаИмена объектов программы должны быть осмысленными.Пример. tip razmer adres Hе надо! xx aa a1 a2 В настоящее время во всем мире приняты 2 системы записи (нотации) имен: "паскалевская" и "венгерская". Обе рекомендуют использовать имена, состоящие, в общем случае, из нескольких слов. В "паскалевской" нотации каждое слово начинают с прописной буквы. “Сишная” нотация: field_name Пример. 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 for(m=0; m x[k][m]=((k+1)/(m+1))*((m+1)/(k+1)); // Это трюк! } } То же самое можно записать так. for(k=0; k for(m=0; 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, т.к. возможны ошибки. |