Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сучасні об’єктно-орієнтовані технологіїСодержание книги
Поиск на нашем сайте Рекомендована література: [62-112] Стандартна бібліотека С++ – об’єктно-орієнтована бібліотека програмних компонентів загального призначення для виконання операцій вводу-виводу (бібліотека потокового вводу-виводу IOStream), роботи з рядками, контейнерами (структурами даних), алгоритмами, які обробляють вміст контейнерів (бібліотека STL), для математичних обчислень, підтримки інтернаціоналізації [62-65]. Стандартна бібліотека шаблонів STL (Standard Template Library) – це набір узагальнених програмних компонентів (шаблонних класів і функцій), які реалізують велику кількість широко розповсюджених алгоритмів і структур даних [62-65] (с.70). STL основана на використанні таких компонентів: алгоритм, контейнер, ітератор, функціональний об’єкт, адаптер. Алгоритм STL (algorithm) - шаблон функції, який описує універсальні обчислювальні процедури над контейнерами. Приклад алгоритму fill: #include <algorithm>//бібліотека функцій-алгоритмівfill(v.begin(),v.end(),7); //заповнити контейнер v числами 7Контейнер STL (container) - структура даних, яка описана у вигляді шаблонного класу. Приклад: #include <vector>//бібліотека контейнера вектораvector<int> v(5);//оголосити контейнер-вектор цілих чисел розміром 5Ітератор STL (iterator) - узагальнений вказівник, який забезпечує доступ до елементів контейнера. Приклад: #include <vector>//бібліотека контейнера вектораvector<int>::iterator it;//оголосити ітераторФункціональний об’єкт STL (function object) - шаблонний клас, який інкапсулює перевантажений оператор виклику функції. Адаптер STL (adaptor) - шаблонний клас, який забезпечує відображення інтерфейсу (адаптує компонент для забезпечення різного інтерфейсу). Бібліотека потокового вводу-виводу IOStream – бібліотека шаблонних класів для операцій вводу-виводу, файлового вводу-виводу і рядкового вводу-виводу (с.64). Класи містять конструктори і деструктори, поля і функції для форматування, стану і режиму використання потоку, функції і оператори вводу-виводу, функції визначення і установки позиції в потоці та інші члени. Потік вводу-виводу – абстракція фізичного пристрою вводу-виводу, яка забезпечує однотипний інтерфейс роботи з ним. Наприклад, cin - стандартний потоковий об’єкт вводу (клавіатура), cout – виводу (монітор). Робота з фізичним пристроєм за допомогою потоків є буферизованою. Оператори потокового вводу-виводу – перевантажені в бібліотеці IOStream оператори вводу даних в потік << і виводу даних з потоку >> (с.66). Приклади: cin>>x;//вивід з стандартного потоку вводу cout<<x;//ввід у стандартний потік виводу Флагі форматування – в бібліотеці IOStream члени дані класу ios, які призначені для форматування потоку вводу-виводу (с.64). Наприклад, установка в потоці виводу флагу hex: cout.flags(ios::hex);//виводити в шістнадцятковому форматі Маніпулятор – в бібліотеці IOStream спеціальна функція, яка керує станом потоку вводу-виводу, отримує і повертає посилання на потоковий об’єкт (с.65). Наприклад маніпулятор hex: #include <iomanip.h>//бібліотека маніпуляторівcout<<hex<<16<<endl;//вивести в шістнадцятковому вигляді 16Середовище розробки (framework) -набір програмних компонентів (часто класів), що надають деякі базові послуги в певній області. Таким чином, середовище розробки експортує класи і механізми, які клієнти можуть використовувати або адаптувати. Borland С++ Builder - інтегроване середовище розробки основане на візуальному об’єктно-орієнтованому програмуванні мовою С++ і призначене для розробки програмного забезпечення для Windows і Linux, розподіленого програмного забезпечення з використанням технологій COM і CORBA, систем роботи з базами даних, Internet і т.п. Однією з основних частин С++ Builder є бібліотека візуальних компонентів VCL [66-83]. Бібліотека візуальних компонентів VCL (Visual Component Library) – об’єктно-орієнтована бібліотека програмних компонентів (класів) загального призначення (framework), яка використовується в Borland C++ Builder і Delphi [66-83] (с.73). В бібліотеку входять класи для створення графічного інтерфейсу програми, класи для доступу до баз даних, класи, в яких інкапсульовані різноманітні функції Win32API, службові та інші класи. Класи VCL утворюють ієрархію зі спільним базовим класом TObject. Компонент VCL – програмний компонент (клас бібліотеки VCL, базовий від TComponent), який використовується для розробки додатків Windows. Компоненти можна умовно поділити на службові та елементи керування. Компонент VCL володіє властивостями, методами і подіями. Елементи керування VCL – видимі компоненти VCL (базовий клас - TControl), які використовуються для побудови графічного інтерфейсу програми з користувачем (с.87). Бувають віконні (походять від TWinControl) і графічні (походять від TGraphicControl). Віконні елементи являють собою вікно ОС Windows, можуть отримувати фокус вводу і служити контейнерами для інших елементів, але використовують більше системних ресурсів. Приклад динамічного створення компоненту класу TButton: TButton *Btn=new TButton(Panel1);//динамічно створити кнопку Властивості компоненту VCL (property) – члени класу компоненту, які визначають певні характеристики об’єкту. На відміну від полів (членів даних) класу властивості самі не зберігають дані, а можуть використовувати методи читання і запису у відповідні захищені поля класу, чим забезпечується їх перевага (с.126). Приклад використання властивості Text об’єкту Edit1: Edit1->Text="Hello";//вивести рядок в текстове поле Методи компоненту VCL (method) – функції-члени класу компоненту, які виконують певні обчислювальні процедури над об’єктом (с.126). Приклад використання методу Close об’єкту Form1: Form1->Close();//закрити форму Подія компоненту VCL (event) – типізований вказівник на певний метод в екземплярі класу (с.126). Подія дозволяє компоненту реагувати на певний вплив (наприклад, натиск кнопкою миші на ньому) і пов'язує цей вплив з певним кодом (функцією обробки події). Для визначення подій використовуються властивості. Більшість стандартних подій (OnKeyDown, OnMouseMove, OnMouseDown) відповідають повідомленням Windows (Windows Message). Приклад: //вказати функцію-обробник події OnClick об’єкту Button1Button1->OnClick=Button1Click; Інтерфейс програмування Win32 API (Application Programming Interface) – інтерфейс програмування додатків для 32-х розрядних версій Windows, який описує сукупність низькорівневих системних функцій і структур загального призначення, розміщених у файлах dll ОС Windows. Паралелізм - означає одночасне виконання декількох програм на одній ЕОМ. Паралельна програма складається з одного або декількох програмних компонентів (процесів), які можуть виконуватися паралельно. Виконання паралельної програми визначається як будь-яке чергування атомарних (нероздільних) команд завдань. Потік керування (thread) – окремий процес. Запуск потоку керування приводить до виникнення незалежної динамічної діяльності в системі; дана система може мати декілька одночасно виконуваних потоків, деякі з яких можуть динамічно виникати і знищуватися. У VCL для створення потоків використовується клас TThread. Синхронізація використовується для контролю виконання паралельних процесів, наприклад, два процеси не можуть звертатись до одного ресурсу одночасно. Бібліотека динамічної компоновки DLL (Dynamic-link Library) - набір програмних компонентів (функцій, класів) і ресурсів, які упаковані в один пов’язуваний бінарний модуль, і які можуть динамічно (на етапі виконання) використовуватись кількома програмами (с.129). DLL основані на механізмі підтримки повторного використання програмних компонентів на рівні бінарних файлів у Windows. Модель компонентних об’єктів COM (Component Object Model) об’єктно-орієнтована технологія об’єднання універсальних бінарних програмних компонентів (об’єктів) для Windows [84-86] (с.130). Підтримує повторене використання і можливість взаємодії об’єктів незалежно від мови програмування на якій вони були розроблені (на відміну від DLL) і включає сервери, клієнти, інтерфейси, елементи керування ActiveX, технологію зв’язування і упровадження об’єктів OLE і автоматизацію. Об’єкт COM – екземпляр класу COM в сервері COM. Сервер COM - програма-сервер, яка організовує доступ до створеного в ній об’єкту COM, реалізуючи інтерфейси. Клієнт COM - програма-клієнт, яка, використовуючи інтерфейс, отримує доступ до об’єкту COM. Інтерфейс COM – інтерфейс, який визначає відкриті методи, які використовуються для доступу до об’єкту COM. Клас COM (CoClas) – реалізація інтерфейсу COM в сервері COM. Бібліотека типу (type library) СОМ – бінарний файл, який використовується для визначення типів: інтерфейсів, диспінтерфейсів, класів COM і інших елементів COM. Вміст бібліотеки типу аналогічний вмісту заголовного файлу С++, але до неї можливий доступ незалежно від мови програмування, оскільки бібліотека типу - це відкомпільована версія файлу IDL. Елемент керування ActiveX (OLE) – внутрішньопроцесний сервер COM у вигляді бінарного програмного модуля (DLL), який являє собою універсальний програмний компонент, який може інтегруватися в існуючі додатки (клієнти COM) для розширення їх можливостей (с.132). Елемент ActiveX володіє властивостями, методами і подіями. OLE Automation (OLE автоматизація) – механізм, оснований на COM, який забезпечує програмовану модель функціональних можливостей додатку незалежну від мови реалізації, автоматично визначає стандартні типи даних і забезпечує перетворення типів і транспортування всіх необхідних параметрів, забезпечує стандартний механізм, за допомогою якого керуюча програма може проаналізувати і ідентифікувати методи і властивості інтерфейсу. Автоматизація передбачає диспетчерські інтерфейси (IDispatch), сервери і клієнти (контролери) автоматизації, якими можуть бути мови програмування Visual Basic, VBA, VBScript, Java. Бібліотека активних шаблонів ATL (Active Template Library) – бібліотека програмних компонентів, яка використовується для полегшення розробки компонентів COM. Модель розподілених компонентних об’єктів DCOM (Distributed СОМ) - це розвиток моделі СОМ для розподілених програмних компонентів, у якій підтримується об'єктний протокол, який дає можливість прямого доступу об'єктів СОМ один до одного за допомогою мережі. Архітектура посередника запитів типового об’єкта CORBA (Common Object Request Broker Architecture) об’єктно-орієнтована технологія об’єднання програмних компонентів для побудови розподілених додатків (с.135). Підтримує можливість взаємодії об’єктів незалежно від мови програмування, на якій вони були розроблені, і архітектури, на якій вони використовуються, і включає сервери з реалізацією об’єкту (Skeleton), клієнти з замісником об’єкту (Stub), інтерфейси і брокери об’єктних запитів (ORB) [41]. Брокер об’єктних запитів (ORB) - архітектурний елемент CORBA, який визначає правила взаємодії об'єктних компонентів один з одним, а також дозволяє змішувати компоненти. ORB - це типовий серверний додаток, що опитує певний порт і чекає доступу в процесі з'єднання каналу TCP/IP. Клієнтські додатки з'єднуються з ORB, посилають повідомлення про запити і отримують у відповідь повідомлення від ORB. Основна функція ORB - ініціалізувати посередницькі запити для виклику методу. Мова опису інтерфейсу IDL (Interface Definition Language) – використовується для визначення інтерфейсів з метою уникнути його залежності від мови програмування, яка визначає реалізацію (с.135). Бібліотека основних класів Microsoft MFC (Microsoft Foundation Classes) – об’єктно-орієнтована бібліотека програмних компонентів (класів) загального призначення (framework), яка використовується в середовищі розробки Microsoft Visual C++ (с.139). В бібліотеку входять класи C++ для створення графічного інтерфейсу програми, класи для доступу до баз даних, класи, в яких інкапсульовані різноманітні функції Win32API, службові та інші класи. Java – об’єктно-орієнтована мова програмування, призначена в основному для створення архітектурно-незалежного і розподіленого програмного забезпечення. Архітектурна незалежність досягається шляхом інтерпретації скомпільованого байт-коду на віртуальній машині Java. JavaBeans – програмні компоненти у вигляді Java-класів. Компоненти володіють властивостями, методами і подіями. .NET – об’єктно-орієнтована технологія об’єднання програмних компонентів, яка забезпечує загальномовне середовище виконання CLR (common language runtime), загальну систему типів CTS (common type system), бібліотеку класів.NET Framework і призначена, в основному, для створення архітектурно-незалежного, мовно-незалежного і розподіленого програмного забезпечення [98-112] (с.149). Загальномовне середовище виконання основане на використанні проміжної мови IL (intermediate language) і її компіляції безпосередньо перед виконанням. .NET Framework – бібліотека класів загального призначення, яка використовується для платформи.NET (с.149). С# - об’єктно-орієнтована мова програмування, призначена в основному для створення програмного забезпечення в рамках платформи.NET [98-112]. Сбір сміття – технологія розподілу пам’яті, яка в процесі виконання програми автоматично визначає втрачені блоки пам’яті і робить їх вільними. Використовується в сучасних мовах програмування, наприклад, у Java і С#. Уніфікована мова моделювання UML (Unified Modeling Language) є графічною мовою для візуалізації, специфікації, конструювання і документування систем, в яких велика роль належить, програмному забезпеченню. За допомогою UML можна розробити детальний план створюваної системи, що містить не тільки її концептуальні елементи, такі як системні функції і бізнес-процеси, але і конкретні особливості, наприклад класи, написані на спеціальних мовах програмування, схеми баз даних і програмні компоненти багатократного використання. Перспективи розвитку об’єктно-орієнтованих технологій у програмуванні – створення програмних компонентів високого рівня абстракції, незалежних від архітектури і мови програмування для побудови розподілених додатків.
2 Основи програмування мовою C++ Найпростіша програма //директива підстановки файлу iostream.h,//в якому описаний об’єкт cout і оператор <<#include <iostream.h>void main()//головна функція{cout<<"Hello world!"; //команда виводу рядка на екран}Директиви препроцесора //директива підстановки файлу iostream.h#include <iostream.h>//директива визначення макросу K#define K 15//директива визначення макросу F#define F(x) x*x+K//директива підстановки файлу File1.h#include "File1.h"//головна функціяvoid main(){x=2;prn;//макропідстановка//директива підстановки файлу File2.h#include "File2.h"prn;//макропідстановка} // File1.h//директива визначення макросу prn#define prn cout<<F(x)<<endlfloat x;//оголошення глобальної змінної // File2.h//директива видалення визначення макросу F#undef F//директива визначення макросу F(x)#define F(x) x*x+22.3 Основні типи даних С++ #include <iostream.h>void main(){//оголошення і ініціалізація константconst k1=7,k2=9;const int j=3;const float pi=3.14;//оголошення зміннихint i=-2,l;//цілого типуshort int n;//короткого цілого типуunsigned int m;//беззнакового цілого типуfloat x;//дійсного типуdouble y,z=3.25e-2;//дійсного типу подвійної точностіchar c1,c2='B';//символьного типуbool b1=true,b2;//булевого (логічного) типуtypedef unsigned short int uint;//визначення типу uintuint u;//оголошення змінної типу uint//присвоєння змінним значеньi=5;l=-12;n=3;m=17;x=25.751;y=383.321;c1='A';c1=65;c1=0x41;cout<<c1;b2=false;u=13;}
|
||
|
Последнее изменение этой страницы: 2017-01-24; просмотров: 402; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.10 (0.01 с.) |