21299

Діаграми класів

Лекция

Информатика, кибернетика и программирование

При цьому можливе використання графічних зображень для асоціацій та їх специфічних властивостей таких як відношення агрегації коли складовими частинами класу можуть виступати інші класи. У цих розділах можуть зазначатися ім'я класу атрибути змінні та операції методи.1 Графічне зображення класу на діаграмі класів Обов'язковим елементом позначення класу є його ім'я. На початкових етапах розробки діаграми окремі класи можуть позначатися простим прямокутником із зазначенням тільки імені відповідного класу рис.

Украинкский

2013-08-02

160.5 KB

19 чел.

Лекція 3. Діаграми класів

Вступ

  Центральне місце в об'єктно-орієнтованому програмуванні займає розробка логічної моделі системи у вигляді діаграми класів. Нотація UML надає широкі можливості для відображення додаткової інформації (абстрактні операції і класи, стереотипи, загальні і приватні методи, деталізовані інтерфейси, параметризрвані класи). При цьому можливе використання графічних зображень для асоціацій та їх специфічних властивостей, таких як відношення агрегації, коли складовими частинами класу можуть виступати інші класи.

  Діаграма класів служить для представлення статичної структури моделі системи в термінології класів об'єктно-орієнтованого програмування. Діаграма класів може відбивати, зокрема, різні взаємозв'язки між окремими сутностями предметної області, такими як об'єкти і підсистеми, а також описує їхню внутрішню структуру і типи відносин. На даній діаграмі не вказується інформація про тимчасові аспектах функціонування системи. З цієї точки зору діаграма класів є подальшим розвитком концептуальної моделі проектованої системи.

  Діаграма класів є певний граф, вершинами якого є елементи типу «класифікатор», які пов'язані різними типами структурних відносин. Слід зауважити, що діаграма класів може також містити інтерфейси, пакети, відносини і навіть окремі екземпляри, такі як об'єкти і зв'язку. Коли говорять про дану діаграмі, мають на увазі статичну структурну модель проектованої системи. Тому діаграму класів прийнято вважати графічним представленому таких структурних взаємозв'язків логічної моделі системи, які не залежать або інваріантні від часу.

  Діаграма класів складається з безлічі елементів, які в сукупності відображають декларативні знання про предметну область. Ці знання інтерпретуються в базових поняттях мови UML, таких як класи, інтерфейси і відносини між ними та їх складовими компонентами. При цьому окремі компоненти цієї діаграми можуть утворювати пакети для представлення більш загальної моделі системи. Якщо діаграма класів є частиною деякого пакету, то її компоненти повинні відповідати елементам цього пакета, включаючи можливі посилання на елементи з інших пакетів.

  У загальному випадку пакет статичної структурної моделі може бути представлений у вигляді однієї або декількох діаграм класів. Декомпозиція деякого подання на окремі діаграми виконується з метою зручності та графічної візуалізації структурних взаємозв'язків предметної області. При цьому компоненти діаграми відповідають елементам статичної семантичної моделі. Модель системи, у свою чергу, повинна бути узгоджена з внутрішньою структурою класів, яка описується на мові UML.

Клас

  Клас (class) в мові UML служить для позначення безлічі об'єктів, які мають однаковою структурою, поведінкою та стосунками з об'єктами з інших класів. Графічно клас зображається у вигляді прямокутника, який додатково може бути розділений горизонтальними лініями на розділи або секції (рис. 6.1). У цих розділах можуть зазначатися ім'я класу, атрибути (змінні) та операції (методи).

Рис. 6.1 Графічне зображення класу на діаграмі класів

  Обов'язковим елементом позначення класу є його ім'я. На початкових етапах розробки діаграми окремі класи можуть позначатися простим прямокутником із зазначенням тільки імені відповідного класу (рис. 6.1, а). У міру опрацювання окремих компонентів діаграми опису класів доповнюються атрибутами (рис. 6.1, б) і операціями (рис. 6.1, в).

  Передбачається, що остаточний варіант діаграми містить найбільш повний опис класів, які складаються з трьох розділів або секцій. Іноді в позначеннях класів використовується додатковий четвертий розділ, в якому наводиться семантична інформація довідкового характеру або явно вказуються виняткові ситуації.

  Навіть якщо секція атрибутів і операцій є порожньою, в позначенні класу вона виділяється горизонтальною лінією, щоб відразу відрізнити клас від інших елементів мови UML. Приклади графічного зображення класів на діаграмі класів наведено на рис. 6.2. У першому випадку для класу «Прямокутник» (рис. 6.2, а) вказані тільки його атрибути - точки на координатній площині, які визначають його розташування. Для класу «Вікно» (рис. 6.2, б) зазначені тільки його операції, секція атрибутів залишена порожньою. Для класу «Рахунок» (рис. 6.2, в) додатково зображена четверта секція, в якій зазначено виняток - відмова від обробки простроченої кредитної картки.

Рис.5.2. Приклади графічного зображення класів на діаграмі

Ім'я класу

  Ім'я класу має бути унікальним в межах пакету, який описується деякою сукупністю діаграм класів (можливо, однією діаграмою). Воно вказується в першій верхній секції прямокутника. На додаток до загальним правилом найменування елементів мови UML, ім'я класу записується по центру секції імені напівжирним шрифтом і повинно починатися з великої літери. Рекомендується як імен класів використовувати іменники, записані з практичних міркувань без пробілів. Необхідно пам'ятати, що саме імена класів утворюють словник предметної області при об'єктно-орієнтованому програмуванні.

  У першій секції позначення класу можуть знаходитися посилання на стандартні шаблони або абстрактні класи, від яких утворений даний клас і, відповідно, від яких він успадковує властивості і методи. У цій секції може наводитися інформація про розробника даного класу і статус стану розробки, а також можуть записуватися і інші загальні властивості цього класу, що мають відношення до інших класів діаграми або стандартним елементам мови UML.

  Прикладами імен класів можуть бути такі іменники, як «Співробітник», «Компанія», «Керівник», «Клієнт», «Продавець», «Менеджер», «Офіс» і багато інших, що мають безпосереднє відношення до модельованої предметної області і функціональному призначенню проектованої системи.

  Клас може не мати примірників або об'єктів. У цьому випадку він називається абстрактним класом, а для позначення його імені використовується похилий шрифт (курсив). В UML прийнято спільну угоду про те, що будь-який текст, що відноситься до абстрактного елементу, записується курсивом. Дана обставина є семантичним аспектом опису відповідних елементів мови UML.

 Примітка

  У деяких випадках необхідно явно вказати, до якого пакунку належить той або інший клас. Для цієї мети використовується спеціальний символ розділювач - подвійне двокрапка «::». Синтаксис рядка імені класу в цьому випадку буде наступний <Имя_Пакета>:: <імя_класса>. Іншими словами, перед ім'ям класу має бути явно вказано ім'я пакету, до якого його слід віднести. Наприклад, якщо визначено пакет з ім'ям «Банк», то клас «Рахунок» в цьому банку може бути записаний у вигляді: «Банк:: Рахунок».

Атрібути класу

  У другій зверху секції прямокутника класу записуються його атрибути (attributes) або властивості. В UML прийнята певна стандартизація запису атрибутів класу, яка підпорядковується деяким синтаксичним правилам. Кожному атрибуту класу відповідає окремий рядок тексту, яка складається з квантора видимості атрибута, назви ознаки, його кратності, типу значень атрибута і, можливо, його вихідного значення:

  <Квантор видимості> <ім'я атрибута> [кратність]:

  <Тип атрибута> = <початкове значення> {рядок-властивість}

  Квантор видимості може приймати одне з трьох можливих значень і, відповідно, відображається за допомогою спеціальних символів:

• Символ "" позначає атрибут з областю видимості типу загальнодоступний (public). Атрибут з цією областю видимості доступний або видний з будь-якого іншого класу пакету, в якому визначена діаграма.

• Символ "#" позначає атрибут з областю видимості типу захищений (protected). Атрибут з цією областю видимості недоступний або не видко було для всіх класів, за винятком підкласів даного класу.

• І, нарешті, знак "-" позначає атрибут з областю видимості типу закритий (private). Атрибут з цією областю видимості недоступний або не видко було для всіх класів без винятку.

  Квантор видимості може бути опущений. У цьому випадку його відсутності просто означає, що видимість атрибута не вказується. Ця ситуація відрізняється від прийнятих за умовчанням угод в традиційних мовах програмування, коли відсутність квантора видимості трактується як public або private. Однак замість умовних графічних позначень можна записувати відповідне ключове слово: public, protected, private.

  Ім'я атрибута представляє собою рядок тексту, що використовується в якості ідентифікатора відповідного атрибута і тому повинна бути унікальною в межах даного класу. Ім'я атрибута є єдиним обов'язковим елементом синтаксичного позначення атрибута.

  Кратність атрибуту характеризує загальна кількість конкретних атрибутів даного типу, що входять до складу окремого класу. У загальному випадку кратність записується у формі рядка тексту в квадратних дужках після імені відповідного атрибуту:

  [Ніжняя_граніца1 .. верхняя_граніца1, ніжняя_граніца2 .. верхняя_грашца2, ..., нuжняя_гpaнuцak .. верхняя_граніцаk], де ніжняя_граніца і верхняя_граніца є позитивними цілими числами, кожна пара яких служить для позначення окремого замкнутого інтервалу цілих чисел, у якого нижня (верхня) межа дорівнює значенню ніжняя_граніца (верхняя_граніца). У цілому дане умовне позначення кратності відповідає теоретико-множинного об'єднанню відповідних інтервалів. Як верхней_граніци може використовуватися спеціальний символ "*", який означає довільне позитивне ціле число. Іншими словами, це означає необмежену зверху значення кратності відповідного атрибуту.

  Значення кратності з інтервалу слідують в монотонно зростаючому порядку без пропуску окремих чисел, що лежать між нижньою і верхньою межами. При цьому дотримуються наступного правила: відповідні нижні і верхні межі інтервалів включаються до значення кратності. Якщо в якості кратності вказується єдине число, то кратність атрибуту приймається рівною даному числу. Якщо ж вказується єдиний знак "*", то це означає, що кратність атрибута може бути довільним позитивним цілим числом або нулем.

  В якості прикладу розглянемо наступні варіанти завдання кратності атрибутів.

• [0 .. 1] означає, що кратність атрибута може приймати значення О або 1. При цьому 0 означає відсутність значення для даного атрибуту.

• [0 ..*] означає, що кратність атрибута може приймати будь-яке позитивне ціле значення більше або дорівнює 0. Ця кратність може бути записана коротше у вигляді простого символу - [*].

• [1.: *] Означає, що кратність атрибута може приймати будь-яке позитивне ціле значення більше або дорівнює 1.

• [1 .. 5] означає, що кратність атрибута може приймати будь-яке значення з чисел: 1, 2, 3, 4, 5.

• [1 .. 3,5,7] означає, що кратність атрибута може приймати будь-яке значення з чисел: 1, 2, 3, 5, 7.

• [1 .. 3,7 .. 10] означає, що кратність атрибута може приймати будь-яке значення з чисел: 1, 2, 3, 7, 8, 9, 10.

• [1 .. 3,7 ..*] означає, що кратність атрибута може приймати будь-яке значення з чисел: 1, 2, 3, а також будь-яке позитивне ціле значення дорівнює або перевищує 7.

  Якщо кратність атрибута не вказана, то за замовчуванням приймається її значення рівне 1 .. 1, тобто в точності 1.

  Тип атрибута є виразом, семантика якого визначається мовою специфікації відповідної моделі. У нотації UML тип атрибута іноді визначається в залежності від мови програмування, який передбачається використовувати для реалізації даної моделі. У найпростішому випадку тип атрибута вказується рядком тексту, що має осмислене значення в межах пакету або моделі, до яких відноситься розглянутий клас.

  Можна навести такі приклади завдання імен і типів атрибутів класів:

• колір: Соlоr - тут колір є ім'ям атрибута, Color - ім'ям типу даного атрибуту. Зазначена запис може визначати традиційно використовувану RGB-модель (червоний, зелений, синій) для представлення кольору. У цьому випадку ім'я типу Color якраз і характеризує семантичну конструкцію, яка застосовується в більшості мов програмування для представлення кольору.

• імя_сотрудніка [1 .. 2]: String - тут імя_сотрудніка є ім'ям атрибута, який служить для представлення інформації про ім'я, а можливо, і по батькові конкретного співробітника. Тип атрибута String (Рядок) якраз і вказує на той факт, що окреме значення імені представляє собою рядок тексту з одного або двох слів (наприклад, "Кирило" або "Дмитро Іванович"). Оскільки в багатьох мовах програмування існує тип даних String, використання відповідного англомовного терміна не викликає непорозуміння у більшості програмістів. Однак, хоча в мові UML всі терміни даються в англомовному поданні, використання в якості типу атрибуту Рядок в даній ситуації не виключається і визначається тільки міркуваннями зручності.

• видимість: Boolean - тут видимість є ім'я абстрактного атрибуту (курсив тут не випадковий), який може характеризувати наявність візуального представлення відповідного класу на екрані монітора. У цьому випадку тип Boolean означає, що можливими значеннями даного атрибуту є одне з двох логічних значень: істина (true) або брехня (false). При цьому значення істина може відповідати наявності графічного зображення на екрані монітора, а значення брехня - його відсутності, про що додатково вказується в пояснювальному тексті. Оскільки кратність атрибуту видимість не вказана, вона приймає значення 1 за замовчуванням. У цій ситуації англомовне ім'я типу атрибуту цілком виправдано наявністю відповідного базового типу в мовах програмування. Абстрактний характер даного атрибуту позначається курсивним текстом у записі даного атрибуту.

• форма: Багатокутник - тут ім'я атрибута форма може характеризувати такий клас, який є геометричною фігурою на площині. У цьому випадку тип атрибута Багатокутник вказує на той факт, що окрема геометрична фігура може мати форму трикутника, прямокутника, ромба, п'ятикутника і будь-якого іншого багатокутника, але не окружності або еліпса. Цілком очевидно, що в даній ситуації використання відповідного англомовного терміна навряд чи доцільно, оскільки тип Багатокутник не є базовим для мов програмування.

  Початкове значення служить для завдання деякого початкового значення для відповідного атрибуту в момент створення окремого екземпляра класу. Тут необхідно дотримуватися правила приналежності значення типу конкретного атрибута. Якщо вихідне значення не вказано, то значення відповідного атрибута не визначено на момент створення нового екземпляра класу. З іншого боку, конструктор відповідного об'єкта може перевизначати вихідне значення в процесі виконання програми, якщо в цьому виникає необхідність.

  В якості прикладів вихідних значень атрибутів можна навести такі доповнені вище варіанти завдання атрибутів:

• колір: Соlоr = (255, 0, 0) - в RGB-моделі кольору це відповідає чистому червоному кольору в якості вихідного значення для даного атрибуту.

• імя_сотрудніка [1 .. 2]: String = Іван Іванович - можливо, це нетиповий випадок, який, швидше, відповідає ситуації імя_руководітеля [2]: 81пп § = Іван Іванович.

• видимість: Вооlеаn = істина - може відповідати ситуації, коли в момент створення екземпляра класу створюється видиме на екрані монітора вікно, відповідне даному об'єкту.

• форма: Багатокутник = прямокутник - навряд чи потребує коментарів, оскільки тут мова йде про геометричній формі створюваного об'єкта.

  При завданні атрибутів можуть бути використані дві додаткові синтаксичні конструкції - це підкреслення рядка атрибута і пояснювальний текст в фігурних дужках.

  Підкреслення рядка атрибута означає, що відповідний атрибут може приймати підмножина значень з деякої області значень атрибута, обумовленою його типом. Ці значення можна розглядати як набір однотипних записів або масив, які в сукупності характеризують кожний об'єкт класу.

  Наприклад, якщо певний атрибут задано у вигляді форма: Прямокутник. то це буде означати, що всі об'єкти даного класу можуть мати декілька різних форм, кожна з яких є прямокутником. Іншим прикладом може служити завдання атрибуту у вигляді номер_счета: Integer. що може означати для об'єкта Співробітник наявність деякого підмножини рахунків, загальна кількість яких заздалегідь не фіксується.

  Рядок-властивість служить для вказівки значень атрибута, які не можуть бути змінені в програмі при роботі з даним типом об'єктів. Фігурні дужки як раз і позначають фіксоване значення відповідного атрибута для класу в цілому, яке повинні приймати всі новостворювані екземпляри класу без винятку. Це значення приймається за початкове значення атрибуту, яке не може бути перевизначено у подальшому. Відсутність рядка-властивості за умовчанням трактується так, що значення відповідного атрибута може бути змінено у програмі. Наприклад, рядок-властивість в записі атрибуту заработная_плата: Currency = = {$ 500} може служити для позначення фіксованої заробітної плати для кожного об'єкта класу "Співробітник" певної посади в деякій організації. З іншого боку, запис цього атрибуту у вигляді заработная_плата: Currency = $ 500 означає вже щось інше, а саме - при створенні нового екземпляра Співробітник (аналогія - прийом на роботу нового співробітника) для нього встановлюється за умовчанням заробітна плата в $ 500. Проте для окремих співробітників можуть бути зроблені виключення як у велику, так і в меншу сторону, про що необхідно подбати додатково в програмі.

Операція

  У третій зверху секції прямокутника записуються операції або методи класу.

  Операція (operation) представляє собою деякий сервіс, що надає кожен екземпляр класу за певним вимогу.

  Сукупність операцій характеризує функціональний аспект поведінки класу. Запис операцій класу в UML також стандартизована і підпорядковується певним синтаксичним правилам. При цьому кожній операції класу відповідає окремий рядок, яка складається з квантора видимості операції, імені операції, вирази типу повертається операцією значення і, можливо, рядок-властивість даної операції:

  <Квантор видимості> <ім'я операції> (список параметрів):

  <Вираз типу значення> {рядок-властивість}

  Квантор видимості, як і у випадку атрибутів класу, може приймати одне з трьох можливих значень і, відповідно, відображається за допомогою спеціального символу. Символ "" позначає операцію з областю видимості типу загальнодоступний (public). Символ "#" позначає операцію з областю видимості типу захищений (protected). І, нарешті, символ "-" використовується для позначення операції з областю видимості типу закритий (private).

  Квантор видимості для операції може бути опущений. У цьому випадку його відсутності просто означає, що видимість операції не вказується. Замість умовних графічних позначень також можна записувати відповідне ключове слово: public, protected, private.

  Примітка

  Стосовно конкретних мов програмування можуть бути визначені додаткові квантори видимості. У цьому випадку подібні доповнення є розширенням базової нотації і вимагають відповідних пояснень у формі тексту природною мовою або у вигляді рядка-властивості.

  Ім'я операції являє собою рядок тексту, що використовується в якості ідентифікатора відповідної операції і тому повинна бути унікальною в межах даного класу. Ім'я атрибута є єдиним обов'язковим елементом синтаксичного позначення операції.

  Список параметрів є переліком розділених комою формальних параметрів, кожен з яких може бути представлений в наступному вигляді:

  <Вид параметра> <ім'я параметра>: <вираз типу> = <значення параметра за замовчуванням>.

  Тут вид параметра - є одна з ключових слів in, out або inout зі значенням in за замовчуванням, у разі якщо вид параметра не вказується. Ім'я параметра є ідентифікатор відповідного формального параметра. Вираз типу є залежною від конкретної мови програмування специфікацією типу значення для відповідного формального параметра. Нарешті, значення за замовчуванням в загальному випадку являє собою вираз для значення формального параметра, синтаксис якого залежить від конкретної мови програмування і підпорядковується прийнятим в ньому обмеженням.

  Вираз типу значення також є залежною від мови реалізації специфікацією типу або типів значень параметрів, які повертаються об'єктом після виконання відповідної операції. Двокрапка і вираз типу значення можуть бути опущені, якщо операція не повертає ніякого значення. Для вказівки кратності значення, що повертається дана специфікація може бути записана у вигляді списку окремих виразів.

  Рядок-властивість служить для вказівки значень властивостей, які можуть бути застосовані до даного елементу. Рядок-властивість не є обов'язковою, вона може бути відсутнім, якщо ніякі властивості не специфіковані.

  Операція з областю дії на весь клас показується підкресленням імені і рядки вирази типу. За замовчуванням під областю операції розуміється об'єкт класу. У цьому випадку ім'я та рядок вирази типу операції не підкреслюються.

  Операція, яка не може змінювати стан системи і, відповідно, не має ніякого побічного ефекту, позначається рядком-властивістю "{запит}" ("{query}"). В іншому випадку операція може змінювати стан системи, хоча немає жодних гарантій, що вона буде це робити.

  Для підвищення продуктивності системи одні операції можуть виконуватися паралельно або одночасно, а інші - тільки послідовно. У цьому випадку для вказівки паралельності виконання операції використовується рядок-властивість виду "{concurrency = ім'я}", де ім'я може приймати одне з наступних значень: послідовна (sequential), паралельна (concurrent), що охороняється (guarded).

  При цьому дотримуються наступної семантики для даних значень:

послідовна (sequential) - для даної операції необхідно забезпечити її єдине виконання в системі, одночасне виконання інших операцій може привести до помилок або порушень цілісності об'єктів класу.

паралельна (concurrent) - дана операція в силу своїх особливостей може виконуватися паралельно з іншими операціями в системі, при цьому паралельність повинна підтримуватися на рівні реалізації моделі.

що охороняється (guarded) - всі звернення до даної операції повинні бути строго впорядковані в часі з метою збереження цілісності об'єктів даного класу, при цьому можуть бути прийняті додаткові заходи з контролю виняткових ситуацій на етапі її виконання.

  З метою скорочення позначень допускається використання одного імені як рядки-властивості для зазначення відповідного значення паралельності. Відсутність цього рядка-властивості означає, що семантика паралельності для операції не визначена. Тому варто припустити найгірший з точки зору продуктивності випадок, коли дана операція вимагає послідовного виконання.

  Поява сигнатури операції на самому верхньому рівні оголошує цю операцію на весь клас, при цьому дана операція успадковується всіма нащадками даного класу. Якщо в деякому класі операція не виконується (тобто деякий метод не застосовується), то така операція може бути позначена як абстрактна "{abstract}". Інший спосіб показати абстрактний характер операції - записати її сигнатуру курсивом. Підлегле поява запису даної операції без властивості {абстрактна} вказує на той факт, що відповідний клас-нащадок може виконувати цю операцію в якості свого "методу.

  Якщо для деякої операції необхідно додатково вказати особливості її реалізації (наприклад, алгоритм), то це може бути зроблено у формі примітки, записаного у вигляді тексту, який приєднується до запису операції у відповідній секції класу. Якщо об'єкти класу приймають і реагують на певний сигнал, то запис даної операції позначається ключовим словом "сигнал" ("signal"). Це позначення рівнозначно позначенню деякої операції. Реакція об'єкта на прийом сигналу може бути показана у вигляді деякого автомата. Крім інших випадків ця нотація може бути використана, щоб показати реакцію об'єктів класу на помилкові ситуації або виключення, які можуть моделюватися як сигнали або повідомлення.

  Поведінка операції може бути зазначено додатково у формі приєднаного до операції примітки. У цьому випадку текст примітки полягає в дужки, якщо він являє собою формальну специфікацію на деякій мові програмування і відповідає елементу "семантичне обмеження мови UML". В іншому випадку текст примітки є простим описом на природній мові і позначається прямокутником з "загнутим" верхнім правим куточком (див. розділ 4).

  Список формальних параметрів і тип значення можуть не вказуватися. Квантор видимості атрибутів і операцій може бути вказаний у вигляді спеціального значка або символу, які використовуються для графічного представлення моделей в деякому інструментальному засобі. Імена операцій, так само як і атрибутів, записуються з малої (малу) літери, а їх типи - з великої (великий) літери. При цьому обов'язковою частиною рядка запису операції є наявність імені операції і круглих дужок.

  В якості прикладів запису операцій можна навести такі позначення окремих операцій:

створити () - може позначати абстрактну операцію по створенню окремого об'єкта класу, що є загальнодоступною і не містить формальних параметрів. Ця операція не повертає ніякого значення після свого виконання.

намалювати (форма: Багатокутник = прямокутник, цвет_залівкі: Color = (О, О, 255)) - може позначати операцію по зображенню на екрані монітора прямокутної області синього кольору, якщо не вказуються інші значення в якості аргументів даної операції.

запросіть_счет_кліента (номер_счета: 1п1е § ег): Сіггепсу - позначає операцію по встановленню наявності коштів на поточному рахунку клієнта банку. При цьому аргументом даної операції є номер рахунку клієнта, який записується у вигляді цілого числа (наприклад, "123456"). Результатом виконання цієї операції є деяке число, записане у прийнятому грошовому форматі (наприклад, $ 1,500.00).

видать_сообщеніе ():{" Помилка поділу на нуль "} - зміст даної операції не потребує пояснення, оскільки міститься в рядку-властивості операції. Дане повідомлення може з'явитися на екрані монітора в разі спроби поділу деякого числа на нуль, що неприпустимо.


 

А также другие работы, которые могут Вас заинтересовать

64453. АНТИКРИЗОВА ПОЛІТИКА БАНКІВСЬКОГО СЕКТОРУ КРАЇН ЦЕНТРАЛЬНОЇ ТА СХІДНОЇ ЄВРОПИ 292 KB
  Слабка фінансова система значна зовнішня заборгованість виражена в іноземній валюті недосконалий нагляд та втручання держави в розподіл та оцінку кредитів підсилюють ризики банківських систем таких країн зіштовхнутися з кризами.
64454. МЕТОДИЧНІ ЗАСАДИ МОНІТОРИНГУ ЯКОСТІ ФАХОВОЇ ПІДГОТОВКИ МАЙБУТНІХ УЧИТЕЛІВ ТРУДОВОГО НАВЧАННЯ 219 KB
  Одним із завдань України щодо інтеграції у європейський освітній простір є потреба у суспільно визнаній оцінці якості освіти. Аналіз науковометодичної літератури показав що з огляду на започатковані процеси реформування активізувалися...
64455. МАТЕМАТИЧНІ МОДЕЛІ ТА ОБЧИСЛЮВАЛЬНІ МЕТОДИ РІШЕННЯ ОДНОГО КЛАСУ ЗАДАЧ ДИФРАКЦІЇ ПЛОСКИХ ЛІНІЙНО ПОЛЯРИЗОВАНИХ ЕЛЕКТРОМАГНІТНИХ ХВИЛЬ 1.71 MB
  Явище дифракції плоских лінійно поляризованих електромагнітних хвиль на періодичних гратках широко використовується в техніці зокрема для створення частотних і поляризаційних фільтрів антен діаграмообразуючих пристроїв генераторів дифракційного...
64456. НАУКОВО-ТЕХНОЛОГІЧНІ ОСНОВИ ЛАЗЕРНИХ І ГІБРИДНИХ ПРОЦЕСІВ НАПЛАВЛЕННЯ ТА МОДИФІКАЦІЇ ПОВЕРХОНЬ МЕТАЛЕВИХ ВИРОБІВ 3.93 MB
  Саме до них належать нові гібридні технології спрямовані на розширення можливостей лазерної обробки за рахунок спільного використання лазерного випромінювання з іншими джерелами теплової енергії електричною дугою струменем плазми високочастотним...
64457. ЗАБЕЗПЕЧЕННЯ РАЦІОНАЛЬНОГО ПРИРОДОКОРИСТУВАННЯ ШЛЯХОМ ЗМІНИ КАДРОВОЇ ПОЛІТИКИ СУДНОПЛАВНИХ КОМПАНІЙ УКРАЇНИ 224 KB
  За умови використання сучасних інноваційних підходів у відновлені судноплавної галузі і як результат у зміні кадрової політики судноплавних компаній України стане можливим використання українського флоту збудованого з використанням екологічно безпечних технологій та залучення морських...
64458. ПОЛІПШЕННЯ ЯКОСТІ ВЕДУЧИХ МОСТІВ СІЛЬСЬКОГОСПОДАРСЬКИХ ТРАКТОРІВ ЗАГАЛЬНОГО ПРИЗНАЧЕННЯ 572 KB
  Для досягнення поставленої мети сформульовані наступні задачі: проаналізувати якість роботи основних елементів ведучих мостів сільськогосподарських тракторів загального призначення та з урахуванням аналізу статистичних відмов визначити...
64459. Глибинне шліфування турбінних лопаток з важкооброблюємих матеріалів із застосуванням планетарних шліфувальних головок 911.45 KB
  Підвищення продуктивності обробки при звичайних методах шліфування завжди супроводжується підвищенням температури у зоні різання, що приводить до дефектів у вигляді шліфувальних тріщин та припалинь.
64460. ПОТЕНЦІАЛ ЗЕМЕЛЬНИХ РЕСУРСІВ РЕГІОНАЛЬНОЇ ГОСПОДАРСЬКОЇ СИСТЕМИ ТА НАПРЯМКИ ЙОГО ВИКОРИСТАННЯ 221.5 KB
  Актуальність проблеми просторового формування потенціалу земельних ресурсів регіональної господарської системи обумовлюється тим що у 17 регіонах галузі агропродовольчого комплексу домінують в структурі валової доданої вартості.
64461. Розробка технології і обґрунтування параметрів відновлення шліцьових валів сільськогосподарських машин 214.5 KB
  Мета роботи: підвищення якості відновлених шліцьових валів обґрунтування методу і параметрів обробки що забезпечують мінімальний рівень напружень. Завдання досліджень: провести статистичний аналіз чинників і характеру...