Алгоритмы_Технологии программирования_ООП (1)
.pdfКафедра |
|
Структурное программирование |
|
Кафедра |
Структурное программирование |
|
||||
информатики |
|
информатики |
|
|||||||
|
|
|
УГАТУ |
|
|
УГАТУ |
||||
|
|
|
|
|
|
|
|
|
||
|
|
|
Основная программа |
|
Связи между модулями осуществляются через |
|
||||
|
|
|
Глобальные данные |
|
|
специальный интерфейс, в то время как доступ к |
||||
|
|
|
|
|
реализации самого модуля (телам подпрограмм |
|||||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
и «внутренним» переменным) запрещен. |
|
||
|
|
|
Модуль 1 |
Модуль 2 |
|
|
|
Модуль 1 |
Модуль 2 |
|
|
|
|
Данные |
Данные |
|
|
|
Данные |
Данные |
|
|
|
|
Подпрограммы |
Подпрограммы |
|
|
|
Подпрограммы |
Подпрограммы |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
с локальными |
с локальными |
|
|
|
с локальными |
с локальными |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
данными |
данными |
|
|
|
данными |
данными |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
121 |
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
122 |
||
Кафедра |
|
Структурное программирование |
|
Кафедра |
Структурное программирование |
|
||||
информатики |
|
информатики |
|
|||||||
|
|
|
УГАТУ |
|
|
УГАТУ |
||||
|
|
|
|
|
|
|
|
|
||
В основу структурного программирования были |
- Цикл – «Пока»: повторение действий, пока не |
|||||||||
|
положены три вида вычислительного процесса: |
|
будет нарушено некоторое условие, выполнение |
|||||||
|
линейный, разветвленный и циклический, |
|
которого проверяется в начале цикла; |
|
||||||
|
которые реализуются в программах с помощью |
- |
Цикл – «Дo»: повторение действий цикла до |
|
||||||
|
шести конструкций: |
|
|
|
||||||
|
|
|
|
выполнения заданного условия, проверка |
|
|||||
|
|
|
|
|
|
|
|
|||
- |
|
Следование: последовательное выполнение |
|
которого осуществляется после выполнения |
|
|||||
|
|
|
|
|
|
|
|
|||
|
действий; |
|
|
|
действий в цикле; |
|
|
|||
|
|
|
|
|
|
|
|
|
||
- |
|
Ветвление: выбор одного из двух вариантов |
- |
Цикл с заданным числом повторений (цикл с |
||||||
|
действий; |
|
|
|||||||
|
|
|
|
параметром, цикл со счетчиком): повторение |
|
|||||
|
|
|
|
|
|
|
|
|||
- |
|
Выбор: выбор одного варианта из нескольких в |
|
некоторых действий указанное количество раз. |
||||||
|
|
|
|
|
|
|
||||
|
зависимости от значения некоторой величины; |
|
|
|
|
|
||||
|
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
123 |
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
124 |
Кафедра |
|
Структурное программирование |
|
Кафедра |
Структурное программирование |
|
|
информатики |
|
информатики |
|
||||
|
|
|
УГАТУ |
|
УГАТУ |
||
|
|
|
|
|
|
||
Этап структурного программирования |
|
Этап структурного программирования |
|
||||
|
характеризуется: |
|
|
||||
|
|
характеризуется: |
|
||||
|
|
|
|
|
|
||
• |
Декомпозицией. Проектированием «сверху- |
|
• Тремя видами вычислительного процесса: |
|
|||
|
вниз» (нисходящее); |
|
|
||||
|
|
линейного, разветвленного и циклического, |
|
||||
|
|
|
|
|
|
||
• |
Появлением технологии модульного |
|
которые реализуются в программах с помощью |
||||
|
программирования; |
|
|||||
|
|
шести конструкций (программирование без |
|
||||
|
|
|
|
|
|
||
• |
Появлением процедурных языков |
|
go to). |
|
|||
|
программирования высокого уровня (FORTRAN, |
|
|||||
|
|
|
|
||||
|
ALGOL, Кобол, PL/I, Basic, Pascal , Си); |
|
|
|
|
||
|
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
125 |
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
126 |
Кафедра |
|
|
|
Кафедра |
|
|
|
информатики |
|
|
информатики |
|
|
||
|
Объектно-ориентированное программирование |
Объектно-ориентированное программирование |
|||||
|
|
|
|
УГАТУ |
|
|
УГАТУ |
Программа представляется в виде совокупности |
Взаимодействие программных объектов в такой |
||||||
системе осуществляется путем передачи |
|
||||||
|
|
объектов, каждый из которых является |
|
|
|||
|
|
|
сообщений. |
|
|||
|
|
экземпляром определенного типа (класса), а |
|
||||
|
|
ООП – это технология создания сложного |
|
||||
|
|
классы образуют иерархию с наследованием |
|
||||
|
|
программного обеспечения, так как позволяет |
|||||
|
|
|
|
|
|||
|
|
свойств. |
|
конструировать сложные объекты из |
|
||
Каждый класс обладает набором Свойств, |
|
сравнительно простых |
|
||||
|
|
|
|
||||
|
|
Методов и Событий, которыми обладают и |
|
Языки программирования поддерживающие эту |
|
||
|
|
объекты, принадлежащие классу. |
|
технологию: |
|
||
|
|
|
Object Pascal (Delphi), Free Pascal (Lazarus), C++ , |
||||
|
|
|
|
|
|||
|
|
|
|
|
Visual Basic, Java |
|
|
|
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
127 |
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
128 |
Кафедра |
|
|
|
|
Кафедра |
Компонентный подход |
|
|
информатики |
|
|
|
|
информатики |
|
||
Объектно-ориентированное программирование |
|
|
||||||
|
|
|
|
УГАТУ |
|
|
УГАТУ |
|
Архитектура программы при ООП: |
|
Компонентный подход. Предполагает |
|
|||||
|
|
|
|
|
|
|||
Объект 1 |
|
|
Объект 2 |
|
построение программного обеспечения из |
|
||
Сообщения |
|
|
|
|
|
|
||
|
|
Данные |
|
отдельных компонентов – физически отдельно |
||||
Данные |
|
|
|
|||||
|
|
|
|
|
|
|||
Объект N |
|
|
|
существующих частей программного |
|
|||
|
|
|
|
|
||||
Подпрограммы |
Данные |
Подпрограммы |
обеспечения, которые взаимодействуют между |
|||||
с локальными |
||||||||
с локальными |
|
собой через стандартизованные интерфейсы. |
||||||
|
|
данными |
|
|||||
данными |
Подпрограммы |
|
|
|
|
|
||
|
|
|
|
|
|
|||
|
с локальными |
|
|
|
|
|
|
|
|
данными |
|
|
|
|
|
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
|
129 |
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
130 |
|||
Кафедра |
Компонентный подход |
|
|
Кафедра |
Net-технология |
|
||
информатики |
|
|
информатики |
|
||||
|
|
УГАТУ |
|
УГАТУ |
||||
|
|
|
|
|
|
|||
В отличие от обычных объектов объекты- |
|
Технология .NET (читается dot Net) – новая |
|
|||||
компоненты можно собрать в динамически |
|
технология, предложенная компанией Microsoft |
||||||
|
|
|
|
|||||
вызываемые библиотеки (dll) или исполняемые |
для разработки программного обеспечения. |
|
||||||
|
|
|
||||||
файлы, распространять их в двоичном виде |
|
Технология .NET обеспечивает возможность |
|
|||||
|
создания приложений, написанных на разных |
|||||||
(без исходных текстов) и использовать в любом |
||||||||
языках, способных выполняться на различных |
||||||||
|
|
|
|
|
||||
языке программирования, поддерживающем |
|
типах устройств и в различных операционных |
||||||
|
|
|
|
|
||||
соответствующую технологию. |
|
|
|
системах. |
|
|||
|
|
|
|
|
Это достигается использованием единого каркаса |
|||
|
|
|
|
|
– Framework .Net. |
|
||
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
|
131 |
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
132 |
Кафедра |
|
Net-технология |
|
Кафедра |
Net-технология |
|
информатики |
|
информатики |
|
|||
|
|
УГАТУ |
|
УГАТУ |
||
|
|
|
|
|
||
В каркасе Framework .Net можно выделить |
Библиотека классов FCL представляет собой |
|
||||
обширную объектно-ориентированную |
|
|||||
|
два основных компонента: |
|
|
|||
|
|
библиотеку классов, интерфейсов и типов. |
|
|||
|
|
|
|
|
||
- статический – FCL (Framework Class |
|
Важной частью библиотеки FCL являются классы |
||||
|
Library) – библиотеку классов каркаса; |
|
стандартной системы типов (CTS), задающие |
|
||
- динамический – CLR (Common |
|
простые типы, те типы, которые считаются |
|
|||
|
|
|
|
|||
|
Language Runtime) – общеязыковую |
|
встроенными в язык программирования. |
|
||
|
|
|
|
|
||
|
исполнительную среду. |
|
Например, тип, называемый в языке VB – Integer, |
|||
|
|
а в языке C# – int, проецируется на один и тот же |
||||
|
|
|
|
|||
|
|
|
|
тип CTS System.Int32. |
|
|
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
133 |
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
134 |
Кафедра |
|
Net-технология |
|
Кафедра |
Net-технология |
|
информатики |
|
информатики |
|
|||
|
|
УГАТУ |
|
УГАТУ |
||
|
|
|
|
|
||
Общеязыковая исполнительная среда CLR |
|
2) компилятор JIT (Just In Time Compiler), который |
||||
|
имеет два компилятора: |
|
выполняет трансляцию IL-кода в командный код |
|||
1) компилятор с языка программирования, |
|
той машины, на которой установлена и |
|
|||
|
|
|
|
|||
|
поддерживающего технологию .Net, создает |
функционирует исполнительная среда CLR |
|
|||
|
|
|
|
|||
|
переносимый исполняемый PE-файл (Portable |
Исполнительную среду CLR можно рассматривать, |
||||
|
|
|
|
|||
|
Executable), который содержит код на |
|
как своеобразную виртуальную IL-машину, |
|
||
|
|
|
|
|
||
|
промежуточном языке MSIL (Microsoft |
|
которая транслирует требуемые для исполнения |
|||
|
|
|
|
|||
|
Intermediate Language) и метаданные – всю |
|
участки кода в команды реального процессора, |
|||
|
|
|
|
|||
|
необходимую информацию о приложении. |
|
который в действительности и выполняет код. |
|||
|
|
|
|
|||
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
135 |
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
136 |
Кафедра |
Net-технология |
|
Кафедра |
Net-технология |
|
|
информатики |
|
информатики |
|
|||
|
УГАТУ |
|
|
УГАТУ |
||
|
|
|
|
|
||
|
|
|
Еще одной важной особенностью CLR является |
|||
|
|
|
|
сборщик мусора – Garbage Collector. |
|
|
|
|
|
Под сборкой мусора понимается освобождение |
|||
|
|
|
|
памяти, занятой объектами, которые закончили |
||
|
|
|
|
свою работу, и не используются в дальнейшей |
||
|
|
|
|
работе приложения. |
|
|
|
|
|
Сборка мусора снята не только с программистов, |
|||
|
|
|
|
но и с разработчиков трансляторов – она |
|
|
|
|
|
|
решается в нужное время и в нужном месте – |
||
|
|
|
|
исполнительной средой CLR . |
|
|
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
137 |
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
138 |
|
Кафедра |
Net-технология |
|
Кафедра |
Net-технология |
|
|
информатики |
|
информатики |
|
|||
|
УГАТУ |
|
|
УГАТУ |
||
|
|
|
|
|
||
Благодаря двум компиляторам и библиотеке |
|
Языки программирования: |
|
|||
классов .NET Framework, технология .NET |
|
• |
Visual C#, |
|
|
|
|
|
|
|
|
||
обеспечивает возможность создания |
|
• |
Visual Basic, |
|
|
|
приложений различных типов, написанных на |
|
|
|
|||
|
• |
Visual C++, |
|
|
||
разных языках, способных выполняться на |
|
|
|
|||
|
|
|
|
|
||
различных типах устройств и в различных |
|
• |
Java#. |
|
|
|
|
|
|
|
|
||
средах, а также возможность запуска программы |
Среда разработки приложений на любом из этих |
|||||
|
|
|
||||
.NET не только в ОС Microsoft, но и в других |
|
|
языков, поддерживаемых платформой .NET – |
|
||
|
|
|
|
|
||
операционных системах. |
|
|
Visual Studio .NET. |
|
||
|
|
|
|
|
||
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
139 |
|
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
140 |
Кафедра |
|
информатики |
|
|
УГАТУ |
Программирование и основы алгоритмизации курс 1, 2014 - 2015 г. |
141 |