- •Вопросы к гос. Экзамену по Унифицированный язык моделирования uml
- •Технология разработки по ас в промышленности
- •Инструментальные программные средства для разработки программного обеспечения автоматизированных систем в промышленности
- •7. Оценка и выбор case-средств. Критерии оценки и выбора. Технология внедрения case-средств. Определение критериев успешного внедрения. Выполнение пилотного проекта. Оценка пилотного проекта.
- •Технология разработки программного обеспечения. Объектно-ориентированное программирование
- •Задача Ады Лавлейса. Вычисление чисел Бернулли
- •Задача «Управление проектом»
- •Задача «Точки на плоскости»
- •Задача «Семейный банковский счет»
- •Задача «Банковский сейф»
- •Задача о фонде «Скол»
- •Задача «Сортируем отсортированное»
- •Задача «Комплексные числа»
- •Задача «Полиномы»
- •Задача «Матрицы»
- •Задача «Интерпретатор функций и Решатель уравнений»
- •Задача «Решатель систем линейных уравнений»
- •Задача «Универсальный сортировщик»
- •Задача «Требуется программист со знанием языка c#»
- •Задача «Огни большого города»
- •Задача «Фигуры, фигуры»
- •Задача «Управление процессами»
Технология разработки программного обеспечения. Объектно-ориентированное программирование
Процедурное программирование. Основные принципы выполнения разработки: принцип нисходящей разработки, собственно структурное программирование, принцип сквозного структурного контроля. Процедурная декомпозиция. Метод пошаговой детализации.
Объектное программирование. Основные принципы и этапы объектно-ориентированного программирования. Архитектура программы при ООП. Наследование, полиморфизм, композиция, наполнение.
Основные принципы ООП: абстрагирование, ограничение доступа, модульность, иерархичность, типизация, параллелизм, устойчивость. Виды объектов: временные, локальные, глобальные, сохраняемые.
Объектно-ориентированные языки программирования. Этапы разработки программных систем с использованием ООП: анализ, проектирование (логическое и физическое). Эволюция системы. Модификация.
Объектная декомпозиция. Объекты и сообщения. Поведение объектов. Операция модификации. Итерация. Активный и пассивный объекты.
Классы. Ограничение доступа. Интерфейс и реализация. Конструирование и деструкция объекта. Основные средства разработки классов. Наследование. Простой полиморфизм.
Сложный полиморфизм, создание полиморфных объектов. Композиция. Наполнение.
Дополнительные средства и приемы разработки классов. Метаклассы. Делегирование методов.
Контейнерные классы. Параметризованные классы. Исключения.
Классы и объекты в C#
Значимые и развернутые типы. Структуры
Наследование. Множественное наследование. Интерфейсы
Перечисления. Шкалы
Системы классов. Отношения между классами
Поставщики и клиенты
Функциональный тип. Делегаты
Классы с событиями
Классы с родовыми параметрами. Универсализм.
Ограничение универсальности
Атрибуты
Теги
Корректность класса
Стиль программирования
Задачи
Предполагается, что DLL разрабатываются до экзамена. Классы DLL содержат спецификации, согласно которым на экзамене строятся тесты и даются пояснения.
Задачи для экзамена
Задача Ады Лавлейса. Вычисление чисел Бернулли
Первая программа для вычислительной машины (машины Бэббеджа) была создана графиней Адой Лавлейс, дочерью поэта лорда Байрона. Ада Лавлейс по праву считается первым в мире программистом. В ее честь назван язык программирования «Ада». День ее рождения отмечается как день программиста. Программа, которую написала Ада Лавлейс, позволяла считать числа Бернулли, широкое применяемые в разных областях математики.
Якоб Бернулли, представитель славной семьи математиков и физиков, ввел понятие чисел Бернулли, изучая суммы степеней целых чисел. Вот формула, выведенная Якобом Бернулли:
Здесь
-
биномиальный
коэффициент, а Bm
– число Бернулли.
Биномиальный коэффициент задает число сочетаний k предметов, выбранных из n предметов, определяется как:
Рекуррентное соотношение
Числа Бернулли можно рассчитать, используя следующую рекуррентную формулу:
(1)
Свойства чисел Бернулли:
B0 = 1;
Все нечетные числа, за исключением B1 равны 0.
Четные числа меняют знак.
С ростом m числа Бернулли по модулю возрастают.
Вот как выглядит последовательность первых чисел Бернулли:
B0 = 1; B1 = -1/2; B2 = +1/6; B3 = 0; B4 = -1/30; B5 = 0; B6 = +1/42; B8 = -1/30; B10 = +5/66;
B12 = -691/2730; B14 = +7/6; B16 = -3617/510;
Сходящийся ряд
Значения модулей четных чисел Бернулли можно вычислять, используя соотношение, включающее быстро сходящийся ряд:
(2)
При таком определении последовательность чисел Бернулли выглядит следующим образом:
B1 = +1/6; B2 = 1/30; B3 = 1/42; B4 = 1/30; B5 = 5/66; B6 = 691/2730; B7 = 7/6; B8 = 3617/510;
Задание на программирование
Постройте проект, включающий два метода вычисления чисел Бернулли, используя соотношения (1) и (2). Постарайтесь построить оптимальную по времени реализацию методов.
Проведите сравнительный анализ эффективности методов по времени выполнения.
