Определения данных

Понимая особую важность данных, приведем несколько правил их определения и использования [4].

Объявляйте все переменные явно. Во многих языках программирования разрешается определять данные неявно, просто используя их имена в выполняемых операторах. Такие «сокращения» предназначены для дилетантов или тех, кто программирует от случая к случаю, но не для программистов-профессионалов.

Профессиональный программист должен явно определять или объявлять все переменные в самом начале модуля.

Объявляйте все атрибуты каждой переменной. Не следует также пользоваться имеющимися в языке сокращениями для объявления aтpибyтoв, не указанных явно, по умолчанию. Процесс выбора атрибутов по умолчанию часто сложен и ведет к ошибкам, если программист не вполне его понимает.

Более того, некоторые компиляторы позволяют на каждой вычислительной установке изменять правила умолчания, что является крайне опасной практикой.

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

а=sin(0,7);

следует заменить на фрагмент программы:

с=0,7;

а=sin(c);

Никогда не используйте несколько имен для одной области памяти.

Никогда не используйте переменную более чем для одной цели. Распространенный прием экономии лишнего слова памяти состоит в повторном использовании переменной в различных целях. Программист вполне может решить: «Я закончил работать с TIME для расчетов времени, поэтому теперь буду использовать эту переменную как промежуточную при вычислении даты».

Такая практика увеличивает шансы внесения ошибок при модификации программы.

Никогда не используйте особые значения переменной с особым смыслом. В определении параметров подпрограмм часто можно увидеть комментарии вроде такого: «ДЛСТРОКИ – это число символов во входной строке, причем ДЛСТРОКИ=0 означает ошибку при вводе». Это неоднозначное употребление параметра часто приводит к двусмысленным ситуациям и иногда затрудняет изменение программы.

Чтобы передавать код ошибки, следует определить отдельный параметр.

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

Будьте осторожны с двоичной машиной. Двоичные машины обладают тем свойством, что числа с плавающей точкой в них представляются приближенными значениями. В такой машине умножение 10.0 на 0.1 редко дает в результате 1.0.

Программист должен остерегаться этого свойства, особенно при попытке сравнивать два числа с плавающей точкой.

Будьте осторожны с действиями над целыми. Следует быть внимательным при умножении или делении целых чисел. Если I – целочисленная переменная, то ответ на вопрос, равны ли между собой I и 2*I/2, зависит от того, четно I или нет и что в сгенерированной компилятором программе будет выполняться раньше: умножение или деление.

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

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

WinExec( ‘"bin\tpc.exe" ‘ + ListBox.Items.Strings[2]);

{запуск консольного приложения с параметром, который написан во второй строчке листбокса}

Компилятор выдает ошибку на несовместимые типы String и PAnsiChar.

Для исправления этой ошибки строку нужно привести к PChar:

WinExec(PChar(‘"bin\tpc.exe" ‘ +ListBox.Items.Strings[2])).

Рандомно подобранные статьи с сайта:

Базы данных курс. DDL команды в базах данных. Команды определения данных: DROP, CREATE, ALTER


Похожие статьи:

admin