
- •Вопрос 2 3
- •Вопрос 2 Структурное программирование. Проектирование сверху вниз. Модульное программирование. Структурное кодирование
- •Вопрос 4 Функции. Компактность. Правило одной операции. Опасность смешения уровней абстракции
- •Вопрос 5 Функции. Правило понижения. Паттерн «Абстрактная фабрика» и использование оператора switch
- •Вопрос 6 Аргументы функций. Приемлемое количество и качество аргументов. Побочные эффекты в функциях. Примеры
- •Вопрос 9 Форматирование исходного кода. Цель форматирования. Вертикальное разделение концепций, вертикальное сжатие. Вертикальное расстояние
- •Вопрос 10 Форматирование исходного кода. Цель форматирования. Горизонтальное форматирование. Горизонтальное разделение и сжатие. Отступы
- •Вопрос 11 Объекты и структуры данных. Отличия процедурного и объектно-ориентированного кода. Случаи применения
- •Вопрос 12 Закон Деметры. Опасность построения гибридов объектов и структур данных. Объекты передачи данных и активные записи
- •Вопрос 16 Класс. Размеры класса. Принцип единой ответственности (srp)
- •Вопрос 17 Понятие связности класса. Влияние связности на размер классов
- •Вопрос 18 Структурирование класса с учетом его изменений. Принципы проектирования классов в ооп
- •Вопрос 19 Понятие эффективности программы. Выбор между эффективностью и удобочитаемостью. Оптимизирующие компиляторы
- •Вопрос 24 Понятие отладки. Отличие между отладкой и тестированием. Средства отладки. Защитное программирование
- •Вопрос 28 Понятие правильности программ. Доказательство правильности программ
Вопрос 28 Понятие правильности программ. Доказательство правильности программ
ПРАВИЛЬНОСТЬ ПРОГРАММ
Любые программы правильны в отношении их логического построения только для определенного типа данных. Например, программа нахождения наибольшего общего делителя двух чисел верна лишь в том случае, когда оба числа целые. Если же подать на вход такой программы нуль или дробное число, нормальная работа программы нарушится. Поэтому необходимо четко определять область значений данных,
в которой программа способна функционировать, и вводить операторы, позволяющие проверять, находятся
ли данные в установленных границах.
Чтобы программу можно было применять, прежде всего она должна быть правильной, а нарушение правильности может проявляться двумя способами: либо неверна синтаксическая конструкция программы, либо программа выдает неверные результаты.
Правильность синтаксиса означает, что должны быть точно сформированы наименования переменных, арифметические и логические операции должны подчиняться определенным синтаксическим правилам и т. п.