Главная Рефераты по рекламе Рефераты по физике Рефераты по философии Рефераты по финансам Рефераты по химии Рефераты по хозяйственному праву Рефераты по цифровым устройствам Рефераты по экологическому праву Рефераты по экономико-математическому моделированию Рефераты по экономической географии Рефераты по экономической теории Рефераты по этике Рефераты по юриспруденции Рефераты по языковедению Рефераты по юридическим наукам Рефераты по истории Рефераты по компьютерным наукам Рефераты по медицинским наукам Рефераты по финансовым наукам Рефераты по управленческим наукам Психология и педагогика Промышленность производство Биология и химия Языкознание филология Издательское дело и полиграфия Рефераты по краеведению и этнографии Рефераты по религии и мифологии Рефераты по медицине Рефераты по сексологии Рефераты по информатике программированию Краткое содержание произведений |
Курсовая работа: Розробка програми для сумісної роботи з додатками PowerPoint з використанням технології OLEКурсовая работа: Розробка програми для сумісної роботи з додатками PowerPoint з використанням технології OLEВступТема роботи: «Розробка програми для сумісної роботи з додатками Microsoft PowerPoint із використанням технології OLE.» Завдання: Розробити програму, що надає користувачу можливості керування додатками Microsoft PowerPoint: запуск вказаного додатку, переключення слайдів (вперед, назад, перший, останній, по вказаному номеру слайду), виведення інформації про слайд (його номер, версія PowerPoint тощо), коректне завершення і вигруження з пам’яті презентації, що переглядається. Програма повинна бути виконана з використанням технології OLE. Мова програмування: Delphi в середовищі Borland Delphi 7 Операційна система: WINDOWS XP 1. Постановка задачі При виконанні даного курсового проекту потрібно вирішити наступні задачі: 1. Запуск вказаного користувачем додатку PowerPoint. 2. Переключення слайдів: вперед, назад, перший, останній, по вказаному номеру слайду. 3. Виведення інформації про слайд, такої як його номер, версія PowerPoint тощо. 4. Коректне завершення і вигруження з пам’яті презентації, що переглядається. 5. Програма повинна бути компактною та завжди бути поверх всіх вікон. Вихідними даними є: 1. Шлях до файлу презентації St1; 2. Номер слайду, обраного користувачем Num. Цей параметр є опціональним, тобто таким, що не є обов’язковим. 2. Теоретичні відомостіMicrosoft PowerPoint Microsoft PowerPoint (повна назва – Microsoft Office PowerPoint) – програма для створення і проведення презентацій, що є частиною Microsoft Office і доступна в редакціях для операційних систем Microsoft Windows і Mac OS. PowerPoint є частиною Microsoft Office. Це дозволило PowerPoint стати найбільш поширеною у всьому світі програмою для створення презентацій. Файли презентацій PowerPoint часто пересилаються користувачами програми на інші комп'ютери, що означає необхідну сумісність з ними програм конкурентів. Проте, оскільки PowerPoint має можливість підключення елементів інших застосувань через OLE, деякі презентації стають сильно прив'язаними до платформи Windows, що робить неможливим відкриття даних файлів, наприклад, у версії для Mac OS. Це призвело до переходу на відкриті стандарти, такі як PDF і OASIS OpenDocument. Технологія OLE OLE (англ. Object Linking and Embedding) – технологія зв'язування та впровадження об'єктів в інші документи та об'єкти, розроблені корпорацією Майкрософт. OLE дозволяє передавати частину роботи від однієї програми редагування до іншої і повертати результати тому. Наприклад, встановлена на персональному комп'ютері видавнича система може послати якийсь текст на обробку в текстовий редактор, або деяке зображення в редактор зображень за допомогою OLE-технології. Основна перевага використання OLE (крім зменшення розміру файлу) в тому, що вона дозволяє створити головний файл, картотеку функцій, до якої звертається програма. Цей файл може оперувати даними з вихідної програми, які після обробки повертаються у вихідний документ. OLE використовується при обробці складених документів (англ. compound documents), може бути використана при передачі даних між різними непов'язаними між собою системами за допомогою інтерфейсу переносу (англ. drag-and-drop), а також при виконанні операцій з буфером обміну. Ідея запровадження широко використовується при роботі з мультимедійним змістом на веб-сторінках (приклад – Веб-ТБ), де використовується передача зображення, звуку, відео, анімації в сторінках HTML (мова гіпертекстової розмітки) або в інших файлах, також використовують текстову розмітку (наприклад, XML та SGML). Однак, технологія OLE використовує архітектуру «товстого клієнта», тобто мережевий ПК із надлишковими обчислювальними ресурсами. Це означає, що тип файлу або програма, яку намагаються впровадити, повинна бути присутнім на машині клієнта. Наприклад, якщо OLE оперує таблицями Microsoft Excel, то програма Excel повинна бути інстальована на машині користувача. 3. Технічне завданняВступНайменування – це програма, що демонструє роботу з додатками Microsoft PowerPoint із використанням технології OLE. Програмний продукт розробляється в навчальних цілях та має за мету продемонструвати використання технології OLE для обміну даними між додатками. Підстава для розробкиПідставою для розробки програми є завдання на курсовий проект з дисципліни «(Вписать дисциплину)», видане викладачем. Найменування теми для курсового проекту «Розробка програми для сумісної роботи з додатками Microsoft PowerPoint із використанням технології OLE.». Призначення програмиФункціональне призначення даного програмного виробу полягає в демонстрації роботи з додатками Microsoft PowerPoint із використанням технології OLE. Експлуатаційне призначення – використання на платформі Microsoft Windows. Вимоги до програмиВимоги до функціональних характеристик Програма, що розроблюється, повинна своїми характеристиками задовольняти сучасні вимоги стосовно швидкості виконання процесів, зовнішнім вимогам та відповідати функціональному та експлуатаційному призначенню. Необхідним є наступний набір операцій (функцій) для виконання програмою: · запуск вказаного користувачем додатку PowerPoint; · можливість переключення слайдів: вперед, назад, перший, останній, по вказаному номеру слайду; · виведення інформації про слайд, такої як його номер, версія PowerPoint тощо. · коректне завершення і вигруження з пам’яті презентації, що переглядається; · програма повинна бути компактною та завжди бути поверх всіх вікон. Програмний продукт повинен мати зрозумілий, простий для користувача і чіткий інтерфейс, підтримуватися платформою Microsoft Windows. Програмний продукт повинен вірно та стабільно працювати, якщо буде введено не правильне не введено взагалі ім’я файлу презентації (або файл матиме не підтримуваний програмою тип), а також якщо введено не допустимий номер слайду. Умови експлуатації програмного продукту, що розробляється, полягають в тому, що достатньо мати базовий набір знань роботи з прикладними програмами ОС Windows ХР. Вимоги до складу та параметрів технічних засобів Написання програмного продукту виконується за допомогою середовища Borland Delphi 7, мова програмування – Delphi. Для нормальної та стабільної роботи програмного продукту повинні бути технічні засоби з таким мінімальним набором характеристик: · Операційна система Windows XP; · Процесор фірми INTEL Pentium II (частота 600 MHz) або йому еквівалентний фірми AMD; · Оперативна пам'ять об’ємом 128 Мбайт; · Вільне місце на жорсткому диску: 0,5 Мбайт. Вимоги до інформаційної та програмної сумісності Виконання програмного продукту передбачає його подальше функціонування на платформі Windows 98/ME/2000/2003/XP. Формат робочого модулю програми – EXE. Вимоги до програмної документації Розробка програмного продукту супроводжується низкою документів: пояснювальна записка, технічне завдання, інструкція програміста, інструкція користувача. Усі супроводжувальні документи повинні відповідати вимогам, що сформульовані у наступних стандартах: ДСТУ 3008–95 – Документація. Звіти у сфері науки і техніки, групі стандартів ГОСТ ЕСПД (Єдина система програмної документації) про загальні положення, правила виконання схем алгоритмів, умовні графічні позначення, вимоги складання технічного завдання та специфікацій, терміни та визначення. Стадії та етапи розробки · Уточнення постановки задачі – 1 тиждень; · Збір теоретичної інформації – 1 тиждень; · Розробка технічного завдання та його затвердження – 1 тиждень; · Розробка інтерфейсу користувача – 3 дні; · Розробка алгоритму роботи програми – 4 дні; · Розробка програми – 1 тиждень; · Тестування програми та виправлення помилок – 2 дні; · Оформлення пояснювальної записки та документації – 1 тиждень; · Захист роботи. 4. Розробка алгоритму програмиСтруктура програмиПрограма має графічний інтерфейс і розроблена об’єктно-орієнованою мовою Delphi. Тому її склад відрізняється від звичного складу програми, розробленої при процедурному програмуванні. Програма включає 8 процедур обробки натиснення кнопок (Button_RUNClick, Button_CLOSEClick, Button_NEXTClick, Button_PREVClick, Button_FIRSTClick, Button_LASTClick, Button_Way_to_FileClick, Button_NUMBERClick) на формі і 1 процедуру (Form_refresh1), що контролює їх натискання для того, щоб програма не завершилася аварійно з помилкою. Програма включає бібліотеки, які приведені в таблиці 4.1. Таблиця 4.1. Бібліотеки, використані в програмі
Опис зміннихКожна програма має деякий набір змінних, що, зазвичай, підрозділяється на глобальні та локальні змінні. Локальних змінних в програмі немає, а всі глобальні змінні описані в таблиці 4.2, яка представлена нижче. Таблиця 4.2. Глобальні змінні
Опис алгоритму програмиПрограма включає 8 процедур обробки натиснення кнопок (Button_RUNClick, Button_CLOSEClick, Button_NEXTClick, Button_PREVClick, Button_FIRSTClick, Button_LASTClick, Button_Way_to_FileClick, Button_NUMBERClick) на формі і 1 процедуру (Form_refresh1), що контролює їх натискання для того, щоб програма не завершилася аварійно з помилкою. При запуску програми користувачу потрібно спочатку вказати шлях до файлу презентації за допомогою клавіши «Открыть», натиснення якої обробляється процедурою Button_Way_to_FileClick. Якщо вказаний шлях має правильний формат, то він копіюється текстове поле поряд з цією кнопкою і розблокується наступна кнопка «Запустить». Ця кнопка запускає вказану презентацію на перегляд. Натиснення цією кнопки обробляється процедурою Button_RUNClick. Після цього презентація починає своє виконання, а програма знаходиться поверх всіх вікон (в тому числі і презентації). Це дає можливість керувати виконанням презентації прямо з програми. Керування презентацієї виконується за допомогою відповідних функціональних клавіш, що знаходяться поряд. Вони обробляються процедурами Button_NEXTClick, Button_PREVClick, Button_FIRSTClick, Button_LASTClick, Button_NUMBERClick і дають користувачу можливість переключати слайд відповідно вперед, назад, перший, останній, по номеру слайду (вказується користувачем). При виконанні програми можливі ситуації, коли користувачем введе номер неіснуючого слайду. Контроль вводу користувачем даних проводить процедура Button_NUMBERClick. Якщо поточний номер слайду дорівнює 1, то блокуються кнопки переключення слайдів на 1 слайд назад та на перший слайд. Якщо поточний номер слайду дорівнює максимальній кількості слайдів, то блокуються кнопки переключення слайдів на 1 слайд вперед та на останній слайд. За це відповідає процедура Form_refresh1. За коректне завершення перегляду слайду відповідає кнопка «Закрыть» (процедура Button_CLOSEClick). Блок-схеми алгоритмів програмиНижче приведені блок-схеми алгоритмів процедур програми. Рис. 4.1. Алгоритм Button_RUNClick
а) б) Рис. 4.2. Алгоритм Button_NEXTClick (а) та Button_PREVClick (б) а) б) Рис. 4.3. Алгоритм Button_FIRSTClick (а) та Button_LASTClick (б) Рис. 4.4. Алгоритм Button_CLOSEClick Рис. 4.5. Алгоритм Button_Way_to_FileClick Рис. 4.6. Алгоритм Button_NUMBERClick Рис. 4.7. Алгоритм Form_refresh1 5. Опис програмиЗагальні відомостіПрограма, розроблена в даному курсовому проекті називається Панель управления PowerPoint. Для використання даної програми не потрібно ніяке додаткове програмне забезпечення. Все що потрібно це вихідний файл програми (PowerPoint++.exe). Його потрібно просто запустити на виконання. Ця програма написана на мові програмування Delphi. Середовище розробки Borland Delphi 7. Функціональне призначенняОсновне призначення програми – навчальне. Тобто, за допомогою цієї програми можна навчитися правильно працювати з OLE та COM об’єктами в середовищі Windows. Технічні засоби, що використовуютьсяДаний програмний продукт, працює на всіх ІВМ сумісних ЕОМ, не нижче Pentium II (частотою 600 MHz). Виклик та завантаженняДля виклику програми потрібно запустити на виконання PowerPoint++.exe. Програма споживає не більше 5% процесорного часу (AMD Athlon 3000+ CPU 1,6 GHz) та 11,5 Мбайт оперативної пам’яті. Вхідні даніВхідними даними для програми є дані отримані від користувача. До цієї інформації входить шлях до файлу презентації і номер слайду, обраного користувачем. Вихідні даніВихідними даними є двійкові слова, а також інформація, яка відображається на екрані монітора. До цієї інформації входить кількість слайдів, номер поточно слайду, версія Power Point. 6. Посібник системного програмістаЗагальні відомості про програмуФункціональне призначення даного програмного виробу полягає в демонстрації роботи з додатками Microsoft PowerPoint із використанням технології OLE. Експлуатаційне призначення – використання на платформі Microsoft Windows. Структура програмиПрограма включає 8 процедур обробки натиснення кнопок (Button_RUNClick, Button_CLOSEClick, Button_NEXTClick, Button_PREVClick, Button_FIRSTClick, Button_LASTClick, Button_Way_to_FileClick, Button_NUMBERClick) на формі і 1 процедуру (Form_refresh1), що контролює їх натискання для того, щоб програма не завершилася аварійно з помилкою. Налаштування програмиДаний програмний продукт у силу своїх функціональних можливостей, є налаштованим. Єдине, що може налаштувати користувач – це вибрати файл презентації для перегляду. Перевірка програмиДля перевірки програми потрібно мати тільки комп’ютер. При цьому потрібно запустити програму PowerPoint++.EXE, вказати шлях до файлу презентації, та натиснути кнопку перегляду. Ознакою того, що програма працює буде виведення презентації на екран та управління нею. Повідомлення системному програмістуПрограма може видати повідомлення про помилки 3 типів: 1) Помилка, пов’язана з неправильним вводом імені файлу, або взагалі не було введено ім’я файлу (рис. 6.1). Для того, щоб помилка не виникала, потрібно вибирати файли з розширеннями *.ppt, *pptx, *.pps. Рис. 6.1. Повідомлення про помилку 1 2) Помилка, пов’язана з не введенням номеру слайду (рис. 6.2). Для того, щоб помилка не виникала, потрібно вказати значення слайду у відповідному полі. Рис. 6.2. Повідомлення про помилку 2 3) Помилка, пов’язана з неправильним вводом номеру слайду (рис. 6.3). Для того, щоб помилка не виникала, потрібно вказати значення слайду від 1 до максимальної кількості слайдів, але не менші і не більше. Рис. 6.3. Повідомлення про помилку 3 7. Посібник оператораПризначення програмиДаний програмний продукт призначений для демонстрації роботи з додатками Microsoft PowerPoint із використанням технології OLE. В даному випадку це запуск вказаної користувачем презентації, переключення слайдів, коректне завершення презентації. Умови виконання програмиАпаратні засоби: · Операційна система Windows XP; · Процесор фірми INTEL Pentium II (частота 600 MHz) або йому еквівалентний фірми AMD; · ОЗУ об’ємом 128 Мбайт; · Вільне місце на жорсткому диску: 0,5 Мбайт. Програмні засоби: Windows 98/ME/2000/2003/XP. Microsoft®.NET Framework 1.1 або вище. Виконання програмиРобота користувача з програмою починається з того, що потрібно вказати шлях до файлу презентації, так як це показано на рис. 7.1. Рис. 7.1. Введення імені файлу Далі потрібно натиснути на клавішу «Запустить». Презентації запуститься і буде виведено повідомлення про версію Power Point, так як показано на рис. 7.2. Рис. 7.2. Запуск презентації Після успішного запуску презентації розблокуються кнопки управління презентацією, а також клавіша закриття перегляду «Закрыть». Для того, що управляти переглядом слайду потрібно натискати на відповідні клавіши зі стрілками. Для того, щоб перейти на слайд з номером, потрібно ввести номер у відповідне поле поряд з кнопкою «№», та натиснути її, як показано на рис. 7.3. Рис. 7.3. Перехід на слайд з номером 3 Після закінчення роботи з програмою для коректного вигруження презентації з пам’яті потрібно натиснути на клавішу «Закрыть». При цьому заблокуються кнопки управління презентацією (Рис. 7.4). Рис. 7.4. Закриття презентації Висновки Під час виконання курсового проекту, було розроблено програмний продукт «Панель управления PowerPoint» (PowerPoint++). Для розробки даного програмного продукту були використано технологію OLE. Даний програмний продукт дозволяє: 1. Запускати вказаний користувачем додаток PowerPoint. 2. Переключати слайди: вперед, назад, перший, останній, по вказаному номеру слайду. 3. Коректне завершення і вигруження з пам’яті презентації, що переглядається. 4. Програма має компактний графічний інтерфейс. Вихідними даними є: Серед мінусів програми можна відмітити те, що програма хоча і має компактний вигляд, але все ж таки вона трохи затуляє презентацію, але це можна вирішити переміщення програми до нижнього краю екрану, затуливши при цьому панель Windows. На основі всього вище сказаного та основі плюсів і мінусів програми, можна зробити висновок, що були виконані основні задачі поставленого завдання. Перелік використаних джерел 1. Фаронов В.В. Программирование баз данных в Delphi 6: Учебный курс. – СПб: Питер, 2003. – 352 с. 2. Калиткин Н.Н. Численные методы. – М: Главная редакция физико-математической литературы изд-ва «Наука», 1978. – 512 с. (електронна версія) 3. Архангельский А.Я. Программирование в Delphi 6. – М.: БИНОМ, 2003. – 1120 с. 4. Фаронов В.В. Delphi 6: Учеб. курс. – М.: Издатель Молгачева С.В., 2003. – 672 с. Додаток Лістинг програми PowerPoint++: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, comobj, StdCtrls, OleServer, PowerPointXP, Buttons, OleCtnrs; type TForm1 = class(TForm) PowerPointApplication1: TPowerPointApplication; PowerPointPresentation1: TPowerPointPresentation; Button_EXIT: TButton; Button_FIRST: TBitBtn; Button_LAST: TBitBtn; Button_NEXT: TBitBtn; Button_PREV: TBitBtn; Button_RUN: TBitBtn; Button_CLOSE: TBitBtn; Edit_Path: TEdit; OpenDialog1: TOpenDialog; Button_Way_to_File: TButton; Button_NUMBER: TButton; Edit_NUM: TEdit; Label_NUM: TLabel; procedure Button_RUNClick (Sender: TObject); procedure Button_CLOSEClick (Sender: TObject); procedure Button_EXITClick (Sender: TObject); procedure Button_NEXTClick (Sender: TObject); procedure Button_PREVClick (Sender: TObject); procedure Button_FIRSTClick (Sender: TObject); procedure Button_LASTClick (Sender: TObject); procedure Button_Way_to_FileClick (Sender: TObject); procedure Button_NUMBERClick (Sender: TObject); private {Private declarations} public {Public declarations} end; var Form1: TForm1; PowerPointApp: OLEVariant; // объект самой презентации St1: string; // строка пути к файлу Num, // Номер слайда, выбранного пользователем K, // Номер текущего слайда ALL: integer; // Общее количество слайдов procedure Form_refresh1; implementation {$R *.dfm} procedure Form_refresh1; begin // Если слайд первый If (K=1) then begin Form1. Button_FIRST. Enabled:=false; Form1. Button_PREV. Enabled:=false; Form1. Button_NEXT. Enabled:=true; Form1. Button_LAST. Enabled:=true; end; // Если слайд не первый и не последний (все остальные) If ((K>1) and (K<=ALL-1)) then begin Form1. Button_FIRST. Enabled:=true; Form1. Button_PREV. Enabled:=true; Form1. Button_NEXT. Enabled:=true; Form1. Button_LAST. Enabled:=true; end; // Если слайд последний If (K=ALL) then begin Form1. Button_FIRST. Enabled:=true; Form1. Button_PREV. Enabled:=true; Form1. Button_NEXT. Enabled:=false; Form1. Button_LAST. Enabled:=false; end; end; procedure TForm1. Button_RUNClick (Sender: TObject); begin try PowerPointApp:= CreateOleObject ('PowerPoint. Application'); // Разблокирование определённых кнопок при успешном открытии презентации Button_CLOSE. Enabled:=True; Button_RUN. Enabled:=False; Button_FIRST. Enabled:=false; Button_PREV. Enabled:=false; Button_NEXT. Enabled:=True; Button_LAST. Enabled:=True; Button_NUMBER. Enabled:=True; Edit_NUM. Enabled:=true; Label_NUM. Visible:=true; K:=1; // Номер текущего слайда except ShowMessage ('Ошибка! Проверьте наличие PowerPoint.'); Exit; end; // Сделать PowerPoint видимым PowerPointApp. Visible:= True; // Открыть презентацию PowerPointApp. Presentations. Open (St1, False, False, True); // Запустить презентацию PowerPointApp. ActivePresentation. SlideShowSettings. Run; // Показать текущую версию презентации ShowMessage (Format('Powerpoint version:%s', [PowerPointApp. Version])); // Показать текущее количество слайдов в презентации ALL:=StrToInt (Format(' % s', [PowerPointApp. ActivePresentation. Slides. Count])); Label_NUM. Caption:=InttoStr(K); end; procedure TForm1. Button_CLOSEClick (Sender: TObject); begin // Закрыть презентацию и выгрузить из памяти PowerPointApp. Quit; PowerPointApp:= UnAssigned; // Заблокирование кнопок при успешном закрытии Button_CLOSE. Enabled:=False; Button_RUN. Enabled:=True; Button_FIRST. Enabled:=False; Button_PREV. Enabled:=False; Button_NEXT. Enabled:=False; Button_LAST. Enabled:=False; Button_NUMBER. Enabled:=False; Edit_NUM. Enabled:=false; Label_NUM. Visible:=false; end; procedure TForm1. Button_EXITClick (Sender: TObject); begin Form1. Close; end; procedure TForm1. Button_NEXTClick (Sender: TObject); begin // Перейти к следующему слайду PowerPointApp. ActivePresentation. SlideShowWindow. View. Next; K:=K+1; Label_NUM. Caption:=InttoStr(K); Form_refresh1; end; procedure TForm1. Button_PREVClick (Sender: TObject); begin // Переход к предыдущему слайду PowerPointApp. ActivePresentation. SlideShowWindow. View. Previous; K:=K-1; Label_NUM. Caption:=InttoStr(K); Form_refresh1; end; procedure TForm1. Button_FIRSTClick (Sender: TObject); begin // Переход к первому слайду PowerPointApp. ActivePresentation. SlideShowWindow. View. First; K:=1; Label_NUM. Caption:=InttoStr(K); Form_refresh1; end; procedure TForm1. Button_LASTClick (Sender: TObject); begin // Переход к последнему слайду PowerPointApp. ActivePresentation. SlideShowWindow. View. Last; K:=ALL; Label_NUM. Caption:=InttoStr(K); Form_refresh1; end; procedure TForm1. Button_Way_to_FileClick (Sender: TObject); begin OpenDialog1. Execute; St1:=OpenDialog1. FileName; if St1<>'' then begin Edit_Path.text:=St1; Button_RUN. Enabled:=true; end else with Application do begin NormalizeTopMosts; MessageBox ('Ошибка! Файл не выбран или имеет не правильный формат!', 'Ошибка ввода', MB_ICONERROR); RestoreTopMosts; end; end; procedure TForm1. Button_NUMBERClick (Sender: TObject); begin // Перейти к сладу с номером, указанным пользователем if (Edit_NUM. Text<>'') then begin Num:=StrtoInt (Edit_NUM. Text); if ((Num>=1) and (Num<=ALL)) then begin PowerPointApp. ActivePresentation. SlideShowWindow. View. GoToSlide(Num); K:=Num; Label_NUM. Caption:=InttoStr(K); Form_refresh1; end else with Application do begin NormalizeTopMosts; MessageBox ('Ошибка! Введите правильное число!', 'Ошибка ввода', MB_ICONERROR); RestoreTopMosts; end; end else with Application do begin NormalizeTopMosts; MessageBox ('Ошибка! Введите номер слайда!', 'Ошибка ввода', MB_ICONERROR); RestoreTopMosts; end; end; end. |
|||||||||||||||||||||||||||||||||||
|