- •2.Понятие объектно-ориентированного анализа. Классы и объекты. Основные отношения между классами и объектами.
- •4. Классификация данных. Типы данных. Совместимость типов. Константы и переменные. Работа с данными статической структуры. Простые типы данных и работа с ними.
- •5. Структурированные типы данных и работа с ними.
- •6. Операторы передачи управления и операторы организации циклов в языках программирования
- •Цикл с предусловием while
- •Цикл с постусловием do
- •Цикл с параметром for
- •Цикл перебора foreach
- •7.Процедуры и функции в языках программирования. Способы передачи параметров в процедуры и функции.
- •8.Организация ввода-вывода в языках программирования. Работа с дисковыми файлами в языках программирования.
- •9.Алгоритмы сортировки, сравнение алгоритмов сортировки. Последовательный и бинарный поиск.
- •Оценка алгоритма сортировки
- •Классификация алгоритмов сортировки
- •Список алгоритмов сортировки
- •Алгоритмы устойчивой сортировки
- •Алгоритмы неустойчивой сортировки
- •Сортировка вставками
- •«Быстрая» сортировка
- •Описание «быстрой» сортировки Алгоритм QuickSort
- •[Править] Вычислительная сложность «быстрой» сортировки
- •11.Прикладное программное обеспечение общего назначения. Системы обработки текстов. Системы машинной графики. Табличные процессоры.
- •12 Понятие архитектуры и основные типы архитектуры эвм. Типовая схема эвм, принципы Фон-Неймона. Оперативная память, центральный процессор эвм.
- •12 Понятие архитектуры и основные типы архитектуры эвм. Типовая схема эвм, принципы Фон-Неймона. Оперативная память, центральный процессор эвм.
- •13. Периферийные устройства эвм.
- •14.Глобальные компьютерные сети. Интернет как технология и информационный ресурс (сеть). Технология электронной почты. Технология обмена файлами (ftp). Технология www. Поиск информации в Интернет.
- •15.Понятие мультимедиа. Мультимедиа как средство и технология. Создание мультимедийных приложений. Мультимедиа и Интернет. Язык html как средство создания информационных ресурсов Интернет.
- •Видео и анимация.
2.Понятие объектно-ориентированного анализа. Классы и объекты. Основные отношения между классами и объектами.
По теории Г.Буча объектно-ориентированный анализ - это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области. При этом предметная область или домен — это пространство, в котором формулируется определенная задача, т.е. набор понятий, представляющих важные аспекты решаемой задачи.
В результате объектно-ориентированного анализа строится концептуальная база — объектная модель, которая включает в себя 4 главных элемента:
-
Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя.
-
Инкапсуляция - это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение; инкапсуляция служит для того, чтобы изолировать контрактные обязательства абстракции от их реализации.
-
Модульность - это свойство системы, которая была разложена на внутренне связные, но слабо связанные между собой модули.
-
Иерархия - это упорядочение абстракций, расположение их по уровням.
Эти элементы являются главными в том смысле, что без них модель не будет объектно-ориентированной. Кроме главных, имеются еще 3 дополнительных элементы:
-
Типизация - это способ защититься от использования объектов одного класса вместо другого, или по крайней мере управлять таким использованием.
-
Параллелизм - это свойство, отличающее активные объекты от пассивных.
-
Сохраняемость - способность объекта существовать во времени, переживая породивший его процесс, и (или) в пространстве, перемещаясь из своего первоначального адресного пространства.
Важным элементом объектной модели является объект. С точки зрения восприятия человеком объектом может быть:
-
осязаемый и (или) видимый предмет;
-
нечто, воспринимаемое мышлением;
-
нечто, на что направлена мысль или действие.
Объект обладает состоянием, поведением и идентичностью. Состояние объекта характеризуется перечнем (обычно статическим) всех свойств данного объекта и текущими (обычно динамическими) значениями каждого из этих свойств. Поведение - это то, как объект действует и реагирует; поведение выражается в терминах состояния объекта и передачи сообщений. Идентичность - это такое свойство объекта, которое отличает его от всех других объектов.
Для инициализации объектов в процессе их конкретизации используются специальные методы, называемые конструкторами. Процесс создания объекта называется реализацией.
В объектной модели объект не существует сам по себе, а обычно взаимодействует с другими объектами. Выделяют два основных типа взаимодействия объектов между собой: связи и агрегация. Связи характеризуют равноправные или клиент-серверные отношения между объектами. Участвуя в связи, объект может выполнять одну из следующих трех ролей: актер (объект может воздействовать на другие объекты, но сам никогда не подвергается воздействию других объектов), сервер (объект может только подвергаться воздействию со стороны других объектов, но он никогда не выступает в роли воздействующего объекта) или агент (такой объект может выступать как в активной, так и в пассивной роли; как правило, объект-агент создается для выполнения операций в интересах какого-либо объекта-актера или агента). Агрегация описывает отношения целого и части, приводящие к соответствующей иерархии объектов, причем, идя от целого (агрегата), мы можем придти к его частям (атрибутам).
Для организации взаимодействия каждый объект должен иметь интерфейс, который представляет собой список служб, предоставляемых компонентом. Интерфейс бывает:
-
открытым (public) – разрешение доступа для всех объектов;
-
защищенным (protected) – разрешение доступа только самому классу и его подклассам;
-
закрытым (private) – разрешение доступа только самому классу.
Структура и поведение схожих объектов определяет общий для них класс. Классы так же как и объекты вступают в отношения. Выделяют 4 главных типа отношений между классами. Ассоциация — это смысловая связь: один-к-одному, один-ко-многим или многие-ко-многим. Наследование — дочерний класс может унаследовать структуру и поведение родительских классов. Агрегация описывает отношения целого и части (“Has-a” — «содержит»: один объект содержится в другом объекте). Использование – это агрегация, когда одна из сторон (клиент) пользуется услугами второй стороны (сервера).
Моделирование в процессе объектно-ориентированного анализа позволяет решить 4 различные задачи:
-
визуализировать систему в ее текущем или желательном для нас состоянии;
-
определить структуру или поведение системы;
-
получить шаблон, позволяющий затем сконструировать систему;
-
документировать принимаемые решения, используя полученные модели.
Основные принципы моделирования:
-
Выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение.
-
Каждая модель может быть воплощена с разной степенью абстракции.
-
Лучшие модели — те, что ближе к реальности.
-
Нельзя ограничиваться созданием только одной модели. Наилучший подход при разработке любой нетривиальной системы — использовать совокупность нескольких моделей, почти независимых друг от друга.
3.Понятие о системе программирования, ее основные функции и компоненты. Интерпретаторы и компиляторы. Трансляция программ. Библиотеки объектов. Интерфейсные объекты: управляющие элементы, окна, диалоги. События и сообщения
Особую группу составляют системы программирования (инструментальные системы), которые являются частью системного ПО, но носят прикладной характер. Системы программирования – это совокупность программ для разработки, отладки и внедрения новых программных продуктов. Системы программирования обычно содержат:
-
трансляторы;
-
среду разработки программ;
-
библиотеки справочных программ (функций, процедур);
-
отладчики;
-
редакторы связей и др.
Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка.
По этому критерию можно выделить следующие уровни языков программирования:
машинные;
машинно-оpиентиpованные (ассемблеры);
машинно-независимые (языки высокого уровня).
Машинные языки и машинно-ориентированные языки — это языки низкого уровня, требующие указания мелких деталей процесса обработки данных.
Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
Языки высокого уровня делятся на:
алгоритмические (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов;
логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания.
объектно-ориентированные (Object Pascal, Delphi, C++, Visual Basic, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.
Алгоритмический язык (как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д.), которые могут быть использованы при написании программы.
Синтаксис - правила построения из символов алфавита специальных конструкций, с помощью которых составляется алгоритм.
Семантика - система правил толкования конструкций языка. Таким образом, программа составляется с помощью соединения символов алфавита в соответствии с синтаксическими правилами и с учетом правил семантики
Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнить машина и др.
При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций.
Но процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать.
Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры).
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. (Pascal).
Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой. (Basic).
Таким образом, алгоритмические языки в значительной мере являются машинно-независимыми. Они облегчают работу программиста и повышают надежность создаваемых программ.
Развитие объектно-ориентированного программирования позволило создавать библиотеки объектов. Объектная библиотека (Object Library) - это модуль, который может объединять в себе различные наборы объектов, предназначенных для многократного использования. Объектная библиотека - это очень мощная структура, позволяющая хранить в себе всевозможные объекты и программные единицы. Применяя это средство многократного использования объектов, вы получаете возможность хранить в одном объекте однажды созданные объекты и программные единицы для совместной работы в других модулях. Объектная библиотека не имеет редактируемых свойств, кроме имени. Для включения в библиотеку новых объектов используется метод "Drag-and-Drop" ("перетащить и оставить").
Объекты, представляющие окна, диалоговые окна и управляющие элементы, называются интерфейсным объектами. Интерфейсные объекты предоставляют методы для создания, инициализации, управления и уничтожения соответствующих элементов экрана, и имеют содержащие данные поля, включая описатель интерфейсного элемента и его порождающего и дочернего окна.
Задание полного интерфейсного объекта с соответствующими интерфейсными элементами требует двух шагов:
* Построения объекта.
* Создания элемента экрана.
Как и в случае создания интерфейсный объектов, их уничтожение предполагает выполнение двух шагов:
* Уничтожение визуального интерфейсного элемента (Destroy).
* Уничтожение интерфейсного объекта (Dispose).
Событие в объектно-ориентированное программировании — это сообщение, которое возникает в различных точках исполняемого кода при выполнении определённых условий. События предназначены для того, чтобы иметь возможность предусмотреть реакцию программного обеспечения.
Для решения поставленной задачи создаются обработчики событий: как только программа попадает в заданное состояние, происходит событие, посылается сообщение, а обработчик перехватывает это сообщение. В общем случае в обработчик не передаётся ничего, либо передаётся ссылка на объект, инициировавший (породивший) обрабатываемое событие. В особых случаях в обработчик передаются значения некоторых переменных или ссылки на какие-то другие объекты, чтобы обработка данного события могла учесть контекст возникновения события.
Самое простое событие — это событие, сообщающее о начале или о завершении некоторой процедуры. Событие, по сути, сообщает об изменении состояния некоторого объекта. Наиболее наглядно события представлены в пользовательском интерфейсе, когда каждое действие пользователя порождает цепочку событий, которые, затем обрабатываются в приложении.