Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Приложение 1 Си.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
348 Кб
Скачать
☆

Правила программирования

  1. Директивы препроцессора записываются в отдельной строке. Перед знаком # могут находиться только пробельные символы.

  2. Имена переменных дает программист исходя из их назначения. Имя может состоять только из латинских букв, цифр и знака подчеркивания и должно начинаться не с цифры. От того насколько удачно подобраны имена в программе, зависит её читаемость – одна из важнейших характеристик программы.

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

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

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

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

  7. Данные при вводе разделяются пробелами, символами перевода строки или табуляции, но не запятыми!

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

  9. Для улучшения читаемости программы можно ставить скобки в тех местах, где они не обязательны, - например для визуальной группировки условий.

  10. Если по какой-либо ветке условия необходимо выполнить более одного действия, их следует объединить в блок с помощью фигурных скобок.

  11. Хотя наличие слова default в конструкции switch и не обязательно, рекомендуется всегда обрабатывать случай, когда значение выражения не совпадает ни с одной из констант. Это облегчает поиск ошибок при отладке программы.

  12. Оператор switch предпочтительнее оператора if в тех случаях, если в программе требуется разветвить вычисления на количество направлений, больших двух, и выражение, по значению которого производится переход на ту или иную ветвь, является целочисленным. Часто это справедливо и для двух ветвей, поскольку улучшает наглядность программы.

  13. В общем случае надо стремиться к минимизации области видимости переменных.

  14. Обнуление памяти при её выделении не происходит.

  15. Записывайте операторы инициализации накапливаемых в цикле величин непосредственно перед циклом, в котором они вычисляются.

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

  17. Выход за границы строки и отсутствие нуль-символа являются распространенными причинами ошибок при в программах обработки строк.

  18. При вводе текста программы не ленитесь сразу же форматировать его и снабжать комментариями.

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

  20. Все, что передается в функцию и обратно должно отображаться в её заголовке. Это требование не синтаксиса, а хорошего стиля.

  21. В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать. Для имен параметров никакого соответствия не требуется.

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

  23. Входные данные функции надо передавать по значению или по константной ссылке, результат её работы – через возвращаемое значение, а при необходимости передачи более одной величины – через параметры по ссылке или указателю.

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

  25. Функция может иметь несколько параметров со значениями по умолчанию. Они должны находиться в конце списка параметров.