- •Вопрос 1. Диалоговые программы. Понятие дружественности.
- •Вопрос 2. Условный оператор и условная операция
- •If (выражение) оператор_1 [else оператор_2]
- •Вопрос 3. Операции отрицания и побитового дополнения.
- •Вопрос 4. Логические операции.
- •Вопрос 5. Побитовые операции
- •Вопрос 6. Изменение типа выражения
- •Вопрос 8. Операция «адрес» и косвенной адресации (разадресации)
- •Вопрос 9. Структура объявления типов. Классы памяти
- •● Static — статическая
- •● Extern — внешняя (глобальная)
- •Extern int total; // ссылка на переменную total, определённую в другом файле ● register — регистровая (локальная)
- •Вопрос 10. Классификация типов данных с размерами в памяти (в байтах).
- •Вопрос 11. Подпрограммы в языке Си. Определение функции. Возврат значений.
- •Int maximum (int X; int y; int z) – формальные параметры
- •Вопрос 12. Передача в подпрограмму массивов
- •Вопрос 13. Объявление, вызов функции и возврат значений
- •Вопрос 14. Работа с файлами
- •Где *fname – имя файла, *mode – режим
- •Вопрос 15. Вызов функций с переменным числом аргументов
- •Вопрос 16. Возврат из функции нескольких значений.
- •Вопрос 17. Структура программы и время жизни переменных, объявленных на внутреннем уровне.
- •Вопрос 18. Общая структура программы, состоящей из нескольких файлов. Локальные и глобальные переменные. Переменные, видимые в нескольких файлах.
- •Вопрос 19. Время жизни и области видимости функций и переменных, объявленных на внешнем уровне.
- •Вопрос 20. Типы, определяемые пользователем. Структуры
- •Вопрос 21. Объединения
- •Вопрос 22. Поля битов
- •Вопрос 23. Динамическая память. Резервирование, освобождение памяти в языке с
- •Оператор new
- •New type_name [(инициатор)]; или new (type_name [(инициатор)]);
- •Оператор delete
- •Вопрос 25. Связные динамические структуры. Списки. Двусвязные списки
- •Вопрос 26. Связные динамические структуры. Очередь. Односвязные списки
- •Вопрос 27. Связные динамические структуры. Кольцевые списки.
- •Вопрос 28. Связные динамические структуры. Стек.
- •Вопрос 29. Нелинейные динамические структуры. Деревья
- •Основные характеристики дерева:
- •Вопрос 30. Перегрузка функций
- •Вопрос 31. Перегрузка операторов
- •{ Операторы, определяющие действия }
- •Вопрос 32. Основные принципы объектно-ориентированного программирования.
- •Вопрос 33. Понятие класса. Инкапсуляция
- •Вопрос 34. Конструкторы и деструкторы
- •Вопрос 35. Наследование
- •Режимы доступа
- •Вопрос 36. Полиморфизм
- •Вопрос 37. Структуризация. Восходящее программирование
- •Вопрос 38. Нисходящий метод проектирования программ
- •Вопрос 39. Методы тестирования программных средств, состоящих из одного модуля
- •Вопрос 40. Спецификация программного средства
- •Вопрос 41. Межмодульное тестирование
- •Вопрос 42. Основы доказательства правильности программ
- •Вопрос 43. Жизненный цикл программы
- •Вопрос 44. Причины отказов по и повышение отказоустойчивости
- •Вопрос 45. Направления в программировании. Классификация языков программирования. Направления в программировании:
- •Вопрос 46. Критерии качества программы
- •Вопрос 47. Директивы препроцессора. Директива define, макроподстановки
- •#Define имя значение
- •Удаление определения: #undef
- •Вопрос 48. Модульное программирование. Структура программы, состоящей из нескольких файлов.
- •Вопрос 49. Гост 19.701. Виды схем, символов. Обозначения для схем алгоритмов и схем работы системы.
Вопрос 42. Основы доказательства правильности программ
Формальные методы тесно связаны с математическими техниками спецификаций, верификацией и доказательством правильности программ. Эти методы содержат математическую символику, формальную нотацию и аппарат вывода. Правила доказательства являются громоздкими и поэтому на практике редко используются рядовыми программистами. Однако с теоретической точки зрения они развивают логику применения математического метода индукции при проверке правильности программ. На основе спецификации программ проводится частичное и полное доказательство правильности программ. Под доказательством частичной правильности понимается проверка выполнения свойств данных программы с помощью утверждений, которые описывают то, что должна получить эта программа, когда закончится ее выполнение в соответствии с условиями заключительного утверждения. Полностью правильной программой по отношению к ее описанию и заданным утверждениям будет программа, если она частично правильная и заканчивается ее выполнение при всех данных, удовлетворяющих ей.
Вопрос 43. Жизненный цикл программы
Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.
Этапы ЖЦ:
1. Анализ
2. Проектирование
3. Реализация
4. Сборка, тестирование, испытание
5. Внедрение (выпуск)
6. Сопровождение
Вопрос 44. Причины отказов по и повышение отказоустойчивости
Ошибки сопряжений. группа этих ошибок вызывает неверное взаимодействие ПО с другими программами или подпрограммами, с системными программами, устройствами ЭВМ или входными данными. Искажение входной информации. Указанная причина вызывает нарушение функционирования ПО, когда входные данные не попадают в допустимую область значения переменных. В этом случае возникает несоответствие между исходной информацией и возможностями программы. Неверные действия пользователя связаны с неправильной интерпретацией сообщений, с неправильными действиями пользователя при работе в диалоговом режиме. Часто эти ошибки являются следствием некачественной программной документацией. Неисправность аппаратных средств ИС. Эти неисправности оказывают определенное влияние на характеристики надежности ПО. Появление отказов или сбои в работе аппаратуры приводят к нарушению хода обработки информации и, как следствие, могут искажать как исходные данные, так и саму программу. Следствием появления ошибок в программе является ее отказ. Последствия отказов ПО можно разделить на: - полное прекращение выполнения функций программы; - кратковременное нарушение хода обработки информации в ИС. Степень серьезности последствий отказов ПО оценивается соотношением между временем восстановления программы после отказа и динамическими характеристиками объектов, использующих результаты работы этой программы. Отказоустойчивость — это свойство технической системы сохранять свою работоспособность после отказа одного или нескольких составных компонентов. Отказоустойчивость определяется количеством любых последовательных единичных отказов компонентов, после которого сохраняется работоспособность системы в целом. Базовый уровень отказоустойчивости подразумевает защиту от отказа одного любого элемента — исключение единой точки отказа. Основной способ повышения отказоустойчивости — избыточность. Наиболее эффективный метод избыточности — аппаратная избыточность, которая достигается путем резервирования. В ряде приложений отказоустойчивость путем резервирования является обязательным требованием, предъявляемым государственными надзорными органами к техническим системам.
