- •Введение
- •Объектно-ориентированного программирования
- •1.3. Области видимости переменных и функций в
- •1.4. Основные рекомендации для разработки программ Стиль
- •Интерфейсы
- •Отладка
- •Тестирование
- •Производительность
- •Переносимость
- •2. Лабораторная работа № 1
- •2.1. Разработка алгоритма решения задачи Последовательность разработки алгоритма решения задачи.
- •2.3. Разработка интерфейса пользователя
- •2.4. Выбор визуальных объектов для стартовой формы
- •2.5. Задание свойств объектов
- •Создание меток и текстовых окон
- •2.6. Написание кода программы
- •2.7. Сохранение проекта
- •2.8. Компиляция программы
- •2.9. Отладка и тестирование программы
- •2.10. Задания для лабораторной работы № 1
- •2.11. Контрольные вопросы
- •3. Лабораторная работа № 2
- •3.1. Теоретический материал
- •If (условие) оператор;
- •Оператор разветвления. Форма записи структуры разветвления имеет вид:
- •If (условие) оператор1;
- •Оператор с составным условием. При составлении конструкции оператора условной передачи управления могут использоваться составные условия, в которых условия соединены логическими операциями
- •3.2. Примеры решения задач
- •3.3. Задания для лабораторной работы № 2
- •3.4. Контрольные вопросы
- •4. Лабораторная работа № 3
- •4.1. Теоретические сведения
- •4.2. Задания для лабораторной работы № 3
- •4.3. Контрольные вопросы
- •5. Лабораторная работа № 4
- •5.1. Теоретические сведения.
- •5.2. Задания для самостоятельного выполнения
- •5.3. Контрольные вопросы
- •6. Лабораторная работа № 5
- •6.1. Теоретический материал
- •Strcpy (Sp, “дополнительный текст”);
- •Библиотечные функции работы со строками типа char
- •Основные функции работы со строками типа AnsiString
- •6.3. Задания для самостоятельной работы
- •6.4. Контрольные вопросы
- •7. Лабораторная работа № 6
- •7.1. Рисование по пикселям
- •7.2. Рисование с помощью пера
- •Методы вычерчивания графических примитивов с помощью пера
- •Выбор метода решения задачи
- •Алгоритм решения задачи
- •Разработка интерфейса пользователя
- •Разработка кода программы
- •7.3. Рисование геометрических фигур
- •7.4. Задания для самостоятельного выполнения
- •7.5. Контрольные вопросы
- •Заключение
- •Библиографический список
- •Математические функции
- •Константы, используемые в математических выражениях
- •Тригонометрические функции
- •Арифметические и алгебраические функции
- •Функции перерасчета градусы-радианы
- •Компьютерные технологии
- •3 94006 Воронеж, ул. 20-летия Октября,84
1.4. Основные рекомендации для разработки программ Стиль
Используйте осмысленные имена для глобальных переменных и короткие – для локальных.
Будьте последовательны.
Используйте активные имена для функций.
Будьте точны.
Форматируйте код, подчеркивая его структуру.
Используйте естественную форму выражений.
Используйте скобки для устранения неясностей.
Разбивайте сложные выражения.
Будьте проще.
Будьте осторожны с побочными эффектами.
Будьте последовательны в применении отступов и фигурных скобок.
Используйте идиомы для единства стиля.
Используйте else-if для многовариантных ветвлений.
Избегайте макрофункций.
Заключайте тело макроса и аргументы в скобки.
Давайте имена загадочным числам.
Определяйте числа как константы, а не как макросы.
Используйте символьные константы, а не целые.
Используйте средства языка для определения размера объекта.
Не пишите об очевидном.
Комментируйте функции и глобальные данные.
Не комментируйте плохой код, а перепишите его.
Не противоречьте коду.
Вносите ясность, а не сумятицу.
Интерфейсы
Прячьте детали реализации.
Ограничьтесь небольшим набором независимых примитивов.
Не делайте ничего «за спиной» у пользователя.
Всегда делайте одинаковое единообразно.
Высвобождайте ресурсы на том же уровне, на котором выделяли их.
Обнаруживайте ошибки на низком уровне, обрабатывайте – на высоком.
Используйте исключения только для исключительных ситуаций.
Отладка
Ищите знакомые ситуации.
Проверьте самое последнее изменение.
Не повторяйте дважды одну и ту же ошибку.
Не откладывайте отладку на потом.
Пользуйтесь стеком вызова.
Читайте код перед тем, как исправлять.
Объясните свой код кому-либо еще.
Сделайте ошибку воспроизводимой.
Используйте принцип: Разделяй и властвуй.
Изучайте нумерологию ошибок.
Выводите информацию, локализующую место ошибки.
Пишите код с самоконтролем.
Ведите журнальный файл.
Постройте график.
Используйте инструменты.
Ведите записи.
Тестирование
Тестируйте граничные условия кода.
Тестируйте пред- и постусловия.
Используйте утверждения.
Используйте подход защитного программирования.
Проверяйте коды возврата функций.
Тестируйте по возрастающей.
Тестируйте сначала простые блоки.
Четко определите, чего вы хотите на выходе текста.
Проверяйте свойства сохранности данных.
Сравните независимые версии.
Оценивайте охват тестов.
Автоматизируйте возвратное тестирование.
Создайте замкнутые тесты.
Производительность
Автоматизируйте замеры времени.
Используйте профилировщик.
Концентрируйтесь на критических местах.
Постройте график.
Улучшайте алгоритм и структуру данных.
Используйте оптимизацию компилятора.
Выполните тонкую настройку кода.
Не оптимизируйте то, что не имеет значения.
Объединяйте общие выражения.
Замените дорогостоящие операции на более дешевые.
Избавьтесь от циклов или упростите их.
Кэшируйте часто используемые значения.
Напишите специальную функцию захвата памяти (аллокатор).
Буферизуйте ввод и вывод.
Специальные случаи обрабатывайте отдельно.
Используйте предварительное вычисление результатов.
Используйте приближенные значения.
Перепишите код на языке более низкого уровня.
Используйте минимально возможный тип данных.
Не храните то, что можете без труда вычислить.