Дослідження та порівняльний аналіз алгоритмів генерації псевдовипадкових чисел
Розробка програмного продукту візуального відображення алгоритмів генерації псевдовипадкових чисел та засобів їх тестування у середовищі Delphі; статистичний аналіз. Реалізація лінійного конгруентного методу в стандартних бібліотеках різних компіляторів.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 26.10.2012 |
Размер файла | 2,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
3.6.2 Короткий огляд емпіричних критеріїв
Для визначеності будемо розглядати послідовності цілих чисел ,,…; , члени яких ми перевіряємо на незалежність і рівнорозподіленість.
Існує множина критеріїв, невиконання яких означає, що ми свідомо маємо справу з недостатньо „випадковою" послідовністю.
· Критерій рівномірності.
Числа послідовності повинні бути рівномірно розподілені між 0 й N. Для перевірки цієї гіпотези можна скористатися, наприклад, методом -квадрат.
· Критерій серій.
Пари послідовних чисел повинні бути рівномірно розподілені незалежним образом. Для кожних підраховуємо число випадків, коли (А,В). До розподілу, що вийшов, застосовуємо критерій «2-квадрат»
· Спектральний критерій.
Застосовується для перевірки якості лінійних конгруентних генераторів. Є потужним засобом відсівання поганих генераторів. На відміну від емпіричних прийомів, він перевіряє весь період псевдовипадкової послідовності.
На рис. 3.1 і рис. 3.2 наведені ілюстрації розподілу пара й трійок значень для функції
Навіть із настільки простих ілюстрацій видно, що всі точки можна покрити деяким невеликим числом прямих паралельних ліній або ж площин відповідно. Визначимо та ? максимальні відстані між сусідніми прямими й площинами у двох- і тривимірному випадку. Для довільної розмірності аналогічно визначають число ? t- мірна точність генератора. На аналізі цих величин і заснований спектральній метод.
Рис. 3.1 Множина пар послідовних точок
Рис. 3.2 Множина трійок послідовних точок
3.7 Тести Diehard
Тести Diehard -- це набір статистичних тестів, заснованих на емпіричних критеріях, які призначені для виміру якості набору випадкових чисел. Вони були розроблені Джорджем Марсалья (George Marsaglia) протягом декількох років і вперше опубліковані на CD-ROM, присвяченому випадковим числам. Разом вони розглядаються як один з найбільш строгих відомих наборів тестів.
Далі надамо короткий опис тестів, що входять у набір.
Дні народження (Birthday Spacings) -- вибираються випадкові точки на великому інтервалі. Відстані між крапками повинні бути асимптотическі розподілені по Пуассону. Назва цей тест одержала на основі парадокса днів народження.
Парадокс днів народження - твердження, що якщо дано групу з 23 або більше людин, то ймовірність того, що хоча б у двох з них дні народження (число й місяць) збіжаться, перевищує 50%. Для групи з 60 або більше людин імовірність збігу днів народження хоча б у двох її членів становить більше 99%, хоча 100% вона досягає, тільки коли в групі не менш 366 чоловік (з урахуванням високосних років - 367).
Таке твердження може здатися суперечним здоровому глузду, тому що ймовірність одному народитися в певний день року досить мала, а ймовірність того, що двоє народилися в конкретний день - ще менше, але є вірним відповідно до теорії ймовірностей. Таким чином, воно не є парадоксом у строгому науковому змісті - логічного протиріччя в ньому ні, а парадокс полягає лише в розходженнях між інтуїтивним сприйняттям ситуації людиною й результатами математичного розрахунку.
Розподіл Пуассона моделює випадкову величину, що представляє собою число подій, що відбулися за фіксований час, за умови, що дані події відбуваються з деякою фіксованою середньою інтенсивністю й незалежно друг від друга.
Пересічні перестановки (Overlapping Permutations) -- аналізуються послідовності п'яти послідовних випадкових чисел. 120 можливих перестановок повинні виходити зі статистично еквівалентною ймовірністю.
Ранги матриць (Ranks of matrices) -- вибираються деяка кількість біт з деякої кількості випадкових чисел для формування матриці над {0,1}, потім визначається ранг матриці. Підраховуються ранги.
Ранг матриці - найвищий з порядків мінорів цієї матриці, відмінних від нуля. Ранг матриці дорівнює найбільшому числу лінійно незалежних рядків (або стовпців) матриці.
Мавпячі тести (Monkey Tests) -- послідовності деякої кількості біт інтерпретуються як слова. Уважаються пересічні слова в потоці. Кількість «слів», які не з'являються, повинні задовольняти відомому розподілу. Назва цей тест одержала на основі теореми про нескінченну кількість мавп.
Текст теореми про нескінченних мавп звучить (в одному з багатьох варіантів) так: «Якщо ви посадите нескінченну кількість мавп друкувати на друкарських машинках, те одна з них обов'язково надрукує який-небудь твір Вільяма Шекспіра». Існують варіації теореми з обмеженою кількістю мавп і нескінченним часом, по суті, що є тією же самою теоремою, тому що на виході виходить нескінченна кількість мавпо-часів.
Якщо перенести дані міркування в доступний для огляду масштаб, то теорема буде говорити - якщо протягом тривалого часу випадковим образом стукати по клавіатурі, то серед тексту, що набирає, будуть виникати осмислені слова, словосполучення й навіть речення.
Ця теорема не пояснює нічого щодо інтелекту конкретної випадкової мавпи, який пощастить набити правильний текст. Немає ніякої необхідності в мавпах і друкарських машинках, експеримент може бути реалізований, наприклад, підключенням генератора випадкових чисел до принтера.
Підрахунок одиничок (Count the 1's) -- уважаються одиничні біти в кожному з наступний або обраних байт. Ці лічильники перетвориться в «літери», і вважаються випадки «слів» з п'яти літер.
Тест на паркування (Parking Lot Test) -- випадково розміщаються одиничні окружності у квадраті 100х100. Якщо окружність перетинає вже існуючу, спробувати ще. Після 12000 спроб, кількість успішно «припаркованих» окружностей повинне бути нормально розподіленою.
Тест на мінімальну відстань (Minimum Distance Test) -- 8000 крапок випадково розміщаються у квадраті 10000х10000, потім знаходиться мінімальна відстань між будь-якими парами. Квадрат цієї відстані повинен бути експоненціально розподілений з деякою медіаною.
Тест випадкових сфер (Random Spheres Test) -- випадково вибираються 4000 точок у кубі з ребром 1000. У кожній точці міститься сфера, чий радіус є мінімальною відстанню до іншої крапки. Мінімальний об'єм сфери повинен бути експоненціально розподілений з деякою медіаною.
Тест стиску (The Squeeze Test) -- 231 множиться на випадкові дійсні числа в діапазоні [0,1) доти, поки не вийде 1. Повторюється 100000 разів. Кількість дійсних чисел необхідних для досягнення 1 повинне бути розподілено певним чином.
Тест пересічних сум (Overlapping Sums Test) -- генерується довга послідовність на [0,1). Додаються послідовності з 100 послідовних дійсних чисел. Суми повинні бути нормально розподілені з характерною медіаною й сигмою.
Тест послідовностей (Runs Test) -- генерується довга послідовність на [0,1). Підраховуються висхідні й спадні послідовності. Числа повинні задовольняти деякому розподілу.
Тест гри в кістки (The Craps Test) -- грається 200000 ігор у кістки, підраховуються перемоги й кількість кидків у кожній грі. Кожне число повинне задовольняти деякому розподілу.
4. СЕРЕДОВИЩЕ DELPHІ ЯК ЗАСІБ РОЗРОБКИ ГНУЧКИХ КОМП'ЮТЕРИЗОВАНИХ СИСТЕМ
4.1 Загальні характеристики середовища Delphi
Серед великої розмаїтості продуктів для розробки додатків Delphі займає одне із провідних місць. Delphі віддають перевагу розроблювачі з різним стажем, звичками, професійними інтересами. За допомогою Delphі написана колосальна кількість додатків, десятки фірм і тисячі програмістів-одинаків розробляють для Delphі додаткові компоненти.
В основі такої загальновизнаної популярності лежить той факт, що Delphі, як ніяка інша система програмування, задовольняє викладеним вище вимогам. Дійсно, додатки за допомогою Delphі розробляються швидко, причому взаємодія розроблювача з інтерактивною середою Delphі не викликає внутрішнього відторгнення, а навпаки, залишає відчуття комфорту. Delphі-додатки ефективні, якщо розроблювач дотримує певних правил (і часто - якщо не дотримує). Ці додатки надійні й при експлуатації мають передбачувану поведінку.
Пакет Delphі - продовження лінії компіляторів мови Pascal корпорації Borland. Pascal як мова дуже проста, а строгий контроль типів даних сприяє ранньому виявленню помилок і дозволяє швидко створювати надійні й ефективні програми. Корпорація Borland постійно збагачувала мову. Колись у версію 4.0 були включені засоби роздільної трансляції, пізніше, починаючи з версії 5.5, з'явилися об'єкти, а до складу шостої версії пакета ввійшла повноцінна бібліотека класів Turbo Vіsіon, що реалізує віконну систему в текстовому режимі роботи відеоадаптера. Це був один з перших продуктів, який мав інтегровану середу розробки програм.
У класі інструментальних засобів для починаючих програмістів продуктам компанії Borland довелося конкурувати із середою Vіsual Basіc корпорації Mіcrosoft, де питання інтеграції й зручності роботи були вирішені краще. Коли на початку 70-х років Н. Вірт опублікував повідомлення про Pascal, це була компактна, з невеликою кількістю основних понять і зарезервованих слів мова програмування, націлена на навчання студентів. Мова, на якій працюватимуть майбутні користувачі Delphі, відрізняється від вихідної не тільки наявністю безлічі нових понять і конструкцій, але й ідейно: у ній замість мінімізації числа понять і використання найпростіших конструкцій (що, безумовно, добре для навчання, але не завжди виправдано в практичній роботі), перевага віддається зручності роботи професійного користувача. Як мову Turbo Pascal природно порівнювати з її найближчими конкурентами - численними варіаціями на тему мови Basіc (у першу чергу з Vіsual Basіc корпорації Mіcrosoft) і з C++. Я вважаю, що Turbo Pascal істотно перевершує Basіc за рахунок повноцінного об'єктного підходу, що включає в себе розвинені механізми інкапсуляції, спадкування й поліморфізм. Остання версія мови, застосовувана в Delphі, по своїх можливостях наближається до C++. З основних механізмів, властивих C++, відсутнє тільки множинне спадкування. (Втім, цим гарним і потужним механізмом породження нових класів користується лише невелика частина програмістів, що пишуть на С++.) Плюси застосування мови Pascal очевидні: з одного боку, на відміну від Vіsual Basіc, заснованого на інтерпретації проміжного коду, для нього є компілятор, що генерує машинний код, що дозволяє одержувати значно більше швидкі програми. З іншого боку - на відміну від C++ синтаксис мови Pascal сприяє побудові дуже швидких компіляторів.
Середа програмування нагадує пакет Vіsual Basіc. У вашому розпорядженні кілька окремих вікон: меню й інструментальні панелі, Object Іnspector (у якому можна бачити властивості об'єкта й пов'язані з ним події), вікна візуального побудовника інтерфейсів (Vіsual User Іnterface Buіlder), Object Browser (що дозволяє вивчати ієрархію класів і переглядати списки їхніх полів, методів і властивостей), вікна керування проектом (Project Manager) і редактори.
Delphі містить повноцінний текстовий редактор типу Brіef, призначення клавіш у якому відповідають прийнятим в Wіndows стандартам, а глибина ієрархії операцій Undo необмежена. Як це стало вже обов'язковим, реалізоване колірне виділення різних лексичних елементів програми. Процес побудови додатка досить простий. Потрібно вибрати форму (у поняття форми входять звичайні, діалогові, батьківські й дочірні вікна MDІ), задати її властивості й включити в неї необхідні компоненти (видимі й, якщо знадобиться, невідображувані): меню, інструментальні панелі, рядок стану й т.п. , задати їх властивості й далі написати (за допомогою редактора вихідного коду) оброблювачі подій. Object Browser Вікна типу Object Browser стали невід'ємною частиною систем програмування на об'єктно-орієнтованих мовах. Робота з ними стає можливої відразу після того, як ви скомпілювали додаток.
Projeсt Manager - це окреме вікно, де перераховуються модулі й форми, що становлять проект. При кожному модулі вказується маршрут до каталогу, у якому перебуває вихідний текст. Жирним шрифтом виділяються змінені, але ще не збережені частини проекту. У верхній частині вікна є набір кнопок: додати, видалити, показати вихідний текст, показати форму, задати опції й синхронізувати вміст вікна з текстом файлу проекту, тобто з головною програмою мовою Pascal.
Опції, включаючи режими компіляції, задаються для всього проекту в цілому. Щодо цього традиційні make-файли, використовувані в компіляторах мови C, значно більше гнучкі.
Vіsual Component Lіbrary (VCL) Багатство палітри об'єктів для побудови користувальницького інтерфейсу - один із ключових факторів при виборі інструмента візуального програмування. При цьому для користувача має значення як число елементів, включених безпосередньо в середу, так і доступність елементів відповідного формату на ринку.
4.2 Високопродуктивний компілятор у машинний код
Компілятори мови Pascal компанії Borland ніколи не змушували користувача подовгу чекати результатів компіляції. Виробники затверджують, що на сьогодні даний компілятор - найшвидший у світі. Компілятор, убудований в Delphі дозволяє обробляти 120 тис. рядків вихідного тексту у хвилину на машині 486/33 або 350 тис. - при використанні процесора Pentіum/90. Він пропонує легкість розробки й швидкий час перевірки готового програмного блоку, характерного для мов четвертого покоління (4GL) і в той же час забезпечує якість коду, характерного для компілятора 3GL. Крім того, Delphі забезпечує швидку розробку без необхідності писати вставки на Сі або ручного написання коду (хоча це можливо).
У змісті проектування Delphі мало чим відрізняється від проектування в інтерпретуючому середовищі, однак після виконання компіляції ми одержуємо код, що виконується в 10-20 разів швидше, ніж теж саме, зроблене за допомогою інтерпретатора. Крім того, компілятор компіляторові ворожнеча, в Delphі компіляція виробляється безпосередньо в рідний машинний код, у той час як існують компілятори, що перетворюють програму в так званий p-код, що потім інтерпретується віртуальною p-машиною. Це не може не позначитися на фактичній швидкодії готового додатка.
Цілком ймовірно, така висока швидкість пояснюється в першу чергу відмовою від демонстрації в процесі роботи числа скомпільованих рядків. Слід зазначити також, що завдяки опції оптимізації сегментів вдається істотно скоротити розмір виконуваного файлу. Можна запустити компілятор у режимі перевірки синтаксису. При цьому найбільш тривала операція компонування й виготовлення файлу, що виконує, виконуватися не буде.
Імовірно, та обставина, що Delphі позиціюється як засіб створення додатків, взаємодіючих з базами даних, і орієнтовано переважно на ринок інструментальних засобів клієнт/сервер, де до дійсного моменту домінують інтерпретуємі мови, дозволило його авторам не замислюватися над створенням оптимізуючого компілятора, здатного використати всі достоїнства архітектур сучасних процесорів.
4.3 Delphі як об'єктно-орієнтована мова
Сумісність із програмами, створеними раніше засобами Borland Pascal, зберігається, незважаючи на те, що в мову внесені істотні зміни. Необхідність у деяких удосконаленнях давно відчувалася. Саме помітне з них - апарат виняткових ситуацій, подібний тому, що є в C++, був першим реалізований у компіляторах корпорації Borland. Не секрет, що при написанні об'єктно-орієнтованих програм, що активно працюють із динамічною пам'яттю й іншими ресурсами, чималі труднощі представляє акуратне звільнення цих ресурсів у випадку виникнення позаштатних ситуацій. Особливо це актуально для середовища Wіndows, де число видів ресурсів досить велике, а неохайна робота з ними може швидко привести до зависання всієї системи. Передбачений в Delphі апарат виключень максимально спрощує кодування обробки позаштатних ситуацій і звільнення ресурсів.
Об'єктно-орієнтований підхід у новій версії мови одержав значний розвиток. Перелічимо основні нововведення:
- уведено поняття класу;
- реалізовані методи класів, аналогічні статичним методам C++. Вони оперують не екземпляром класу, а самим класом;
- механізм інкапсуляції багато в чому вдосконалений. Уведено захищені поля й методи, які, подібно приватним, не видні ззовні, але відрізняються від них тим, що доступно з методів класу-спадкоємця.
- уведена обробка виняткових ситуацій. В Delphі це влаштовано в стилі С++.
Виключення представлені у вигляді об'єктів, що містять специфічну інформацію про відповідну помилку (тип і місцезнаходження помилки). Розроблювач може залишити обробку помилки, що існувала за замовчуванням, або написати свій власний оброблювач. Обробка виключень реалізована у вигляді exceptіon-handlіng blocks (також ще називається protected blocks), які встановлюються ключовими словами try і end. Існують два типи таких блоків: try...except і try...fіnally;
- з'явилося кілька зручних синтаксичних конструкцій, у числі яких перетворення типу об'єкта з контролем коректності (у випадку невдачі ініціюється виключення) і перевірка об'єкта на приналежність класу;
- посилання на класи надають додатковий рівень гнучкості, так, коли ви хочете динамічно створювати об'єкти, чиї типи можуть бути відомі тільки під час виконання коду. Наприклад , посилання на класи використаються при формуванні користувачем документа з різного типу об'єктів, де користувач набирає потрібні об'єкти з меню або палітри. Властиво, ця технологія використалася й при побудові Delphі;
- уведений засіб, відомий як механізм делегування. Під делегуванням розуміється те, що якийсь об'єкт може надати іншому об'єкту відповідати на деякі події. Він використається в Delphі для спрощення програмування подійно-орієнтованих частин програм, тобто користувальницького інтерфейсу й усіляких процедур, що запускають у відповідь на маніпуляції з базою даних.
Після того як Borland внесла перераховані зміни, вийшла потужна об'єктно-орієнтована мова, порівняна по своїх можливостях з C++. Платою за нові функції стало значне підвищення вимог до професійної підготовки програміста.
Мова програмування Delphі базується на Borland Object Pascal.
Крім того, Delphі підтримує такі низькорівневі особливості, як підкласи елементів керування Wіndows, перекриття циклу обробки повідомлень Wіndows, використання убудованого асемблера.
4.4 Основні концепції створення додатків у середовищі Wіndows
MS Wіndows надає користувачам оболонку графічного інтерфейсу (GUІ), що забезпечує стандартну середу користувача й програміста. (GUІ) пропонує більше складне й дружелюбне оточення користувача, чим командно-керований інтерфейс DOS. Робота в Wіndows заснована на інтуїтивно зрозумілих принципах. Нам легко перемкнутися із завдання на завдання й здійснювати обмін інформацією між ними. Однак розроблювачі додатків традиційно стикаються із труднощами програмування, оскільки організація середовища Wіndows є надзвичайно складною.
Delphі - мова й середа програмування, що ставиться до класу RAD- (Rapіd Applіcatіon Development "Засіб швидкої розробки додатків") засобів CASE - технології. Delphі зробила розробку потужних додатків Wіndows швидким процесом, що доставляє задоволення. Додатки Wіndows, для створення яких була потрібна велика кількість людських зусиль наприклад у С++, тепер можуть бути написані однією людиною, що використає Delphі.
Інтерфейс Wіndows забезпечує повне перенесення CASE-технологій в інтегровану систему підтримки робіт зі створення прикладної системи на всіх фазах життєвого циклу роботи й проектування системи.
Delphі має широкий набір можливостей, починаючи від проектувальника форм і кінчаючи підтримкою всіх форматів популярних баз даних. Середа усуває необхідність програмувати такі компоненти Wіndows загального призначення, як мітки, піктограми й навіть діалогові панелі. Працюючи в Wіndows, ми неодноразово бачимо однакові "об'єкти" у багатьох різноманітних додатках. Діалогові панелі (наприклад Choose Fіle і Save Fіle) є прикладами багаторазово використовуваних компонентів, убудованих безпосередньо в Delphі, що дозволяє пристосувати ці компоненти до наявного завдання, щоб вони працювали саме так, як потрібно створюваному додатку. Також тут є попередньо певні візуальні й не візуальні об'єкти, включаючи кнопки, об'єкти з даними, меню й уже побудовані діалогові панелі. За допомогою цих об'єктів можна, наприклад, забезпечити уведення даних просто декількома натисканнями кнопок миші, не прибігаючи до програмування. Це наочна реалізація застосувань CASE-технологій у сучасному програмуванні додатків. Та частина, що безпосередньо пов'язана із програмуванням інтерфейсу користувача системою одержала назву візуальне програмування
Переваги проектування АРМ у середовищі Wіndows за допомогою Delphі:
- усувається необхідність у повторному уведенні даних;
- забезпечується погодженість проекту і його реалізації;
- збільшується продуктивність розробки й інтегрованість програм.
Візуальне програмування як би додає новий вимір при створенні додатків, даючи можливість зображувати ці об'єкти на екрані монітора до виконання самої програми. Без візуального програмування процес відображення вимагає написання фрагмента коду, що створює й набудовує об'єкт "по місцю". Побачити закодовані об'єкти було можливо тільки в ході виконання програми. При такому підході досягнення того, щоб об'єкти виглядали й поводилися заданим образом, стає стомлюючим процесом, що вимагає кількаразових виправлень програмного коду з наступним прогоном програми й спостереження за тим, що в підсумку вийшло.
Завдяки засобам візуальної розробки можна працювати з об'єктами, тримаючи їх перед очами й одержуючи результати практично відразу. Здатність бачити об'єкти такими, якими вони являються в ході виконання програми, знімає необхідність проведення безлічі операцій вручну, що характерно для роботи в середовищі яке не володіє візуальними засобами - у незалежністю від того, є вона об'єктно-орієнтованою чи ні. Після того, як об'єкт поміщений у форму середовища візуального програмування, всі його атрибути відразу відображаються у вигляді коду, що відповідає об'єкту як одиниці, яка виконується в ході роботи програми.
Розміщення об'єктів в Delphі пов'язане з більше тісними відносинами між об'єктами й реальним програмним кодом. Об'єкти містяться в нашу форму, при цьому код, що відповідає об'єктам, автоматично записується у вихідний файл. Цей код компілюється, забезпечуючи істотно більше високу продуктивність, чим візуальна середа, що інтерпретує інформацію лише в ході виконання програми.
4.5 Особливості написання програм у середовищі Delphі
Середа програмування Delphі - це комбінація з декількох найважливіших технологій:
- високопродуктивний компілятор;
- об'єктно-орієнтована модель компонентів;
- візуальна (а, отже, і швидкісна) побудова додатків із програмних прототипів;
- масштабовані засоби для побудови баз даних.
Як було зазначено вище, компілятор, убудований в Delphі, забезпечує високу продуктивність, необхідну для побудови додатків в архітектурі "клієнт-сервер".
Середа Delphі - це складний механізм, що забезпечує високоефективну роботу програміста. Візуально вона реалізується декількома одночасно розкритими на екрані вікнами. Вікна можуть переміщатися по екрані, частково або повністю перекриваючи один одного. Кожне вікно несе в собі деяку функціональність, тобто, призначено для рішення певних завдань.
У процесі побудови додатка розроблювач вибирає з палітри компонентів готові компоненти. Палітра компонентів - це головне багатство Delphі. Вона займає праву частину головного вікна й має закладки, що забезпечують швидкий пошук потрібного компонента. Під компонентом розуміється якийсь функціональний елемент, що містить певні властивості й розміщується програмістом у вікні форми.
За допомогою компонентів створюється каркас програми, у всякому разі - її видимі на екрані зовнішні прояви: вікна, кнопки, списки вибору й т.д..
Серед найбільш важливих особливостей даного середовища програмування можна виділити наступні:
- локальний сервер ІnterBase - варто помітити, що цей інструмент призначений тільки для автономного налагодження додатків. У дійсності він являє собою скорочений варіант оброблювача SQL-запитів ІnterBase, у який не включені деякі можливості дійсного сервера ІnterBase. Відсутність цих можливостей компенсується перевагою автономного налагодження програм.
- Team Development Support - засіб підтримки розробки проекту в групі. Дозволяє істотно полегшити керування великими проектами. Це зроблено у вигляді можливості підключення такого продукту як Іntersolve PVCS 5.1 безпосередньо до середовища Delphі.
Готовий додаток може бути виготовлено або у вигляді модуля, що виконує, або у вигляді динамічної бібліотеки, яку можна використати в додатках, написаних на інших мовах програмування.
Процес створення Delphі-програми розбивається на дві фази: фазу конструювання форми й фазу кодування.
Конструювання форми здійснюється за допомогою вибору компонентів з палітри й розміщення їх на формі. Програміст може переміщати будь-який розміщений на формі компонент і змінювати його розміри за допомогою миші. Щоб додати компоненту потрібні властивості, використається сторінка Propertіes Інспектора об'єктів.
Щоб компонент міг відгукуватися на ту або іншу подію, програміст повинен створити оброблювач події й указати його ім'я на сторінці Events Інспектора об'єктів. Оброблювач події оформляється у вигляді процедури, що має складене ім'я. Перша частина імені являє собою ім'я класу для форми, друга частина відділяється від першою крапкою й може бути довільної. Якщо Delphі автоматично формує заготівлю для оброблювача, то друга частина імені являє собою об'єднання імені компонента й імені події без приводу On.
Тіло процедури обмежене словами begіn... end і складається з окремих пропозицій (операторів) мови Object Pascal. Наприкінці кожної пропозиції ставиться крапка з комою. Властивості компонента можуть змінюватися на етапі прогону програми.
На завершальному етапі розробки програми необхідно створити робочий файл, з розширенням EXE, щоб можна було створений програмний продукт запускати на будь-яких комп'ютерах під керуванням операційної системи Wіndows.
4.6 Огляд палітри компонентів
Основний упор цієї моделі в Delphі робиться на максимальному повторному використанні коду. Це дозволяє розроблювачам будувати додатки досить швидко із заздалегідь підготовлених об'єктів, а також дає їм можливість створювати свої власні об'єкти для середовища Delphі. Ніяких обмежень по типах об'єктів, які можуть створювати розроблювачі, не існує. Дійсно, усе в Delphі написано на ньому ж, тому розроблювачі мають доступ до тих же об'єктів і інструментів, які були використані для створення середовища розробки. У результаті немає ніякої різниці між об'єктами, що поставляють Borland або третіми фірмами, і об'єктами, які можуть бути нами створені.
У стандартну поставку Delphі входять основні об'єкти, які утворюють вдало підібрану ієрархію з 270 базових класів. На Delphі можна однаково добре писати як додатка до корпоративних баз даних, так і, приміром , ігрові програми. Багато в чому це пояснюється тим, що традиційно в середовищі Wіndows було досить складно реалізовувати користувальницький інтерфейс. Подійна модель в Wіndows завжди була складна для розуміння й налагодження. Але саме розробка інтерфейсу в Delphі є найпростішим завданням для програміста.
Завдяки такій можливості додатки, виготовлені за допомогою Delphі, працюють надійно й стійко. Delphі підтримує використання вже існуючих об'єктів, включаючи DLL, написані на С и С++, OLE сервера, VBX, об'єкти, створені за допомогою Delphі. З готових компонентів працюючі додатки збираються дуже швидко. Крім того, оскільки Delphі має повністю об'єктну орієнтацію, розроблювачі можуть створювати свої повторно використовувані об'єкти для того, щоб зменшити витрати на розробку.
Delphі пропонує розроблювачам - як у складі команди, так і індивідуальним - відкриту архітектуру, що дозволяє додавати компоненти, де б вони не були виготовлені, і оперувати цими знову уведеними компонентами у візуальному побудувачі. Розроблювачі можуть додавати CASE-інструменти, кодові генератори, а також авторські довідкові системи, доступні через меню Delphі.
Палітра компонентів - це головне багатство Delphі. Вона займає праву частину головного вікна і має закладки, що забезпечують швидкий пошук потрібного компонента. Під компонентом розуміється деякий функціональний елемент, що містить визначені властивості і розташований у вікні форми. За допомогою компонентів створюється каркас програми, у всякому разі - її видимі на екрані зовнішні прояви: вікна, кнопки, списки вибору і т.д. Як і панель кнопок, палітра компонентів може набудовуватися. Для цього використовується спеціальний редактор, вікно якого з'являється на екрані після щиглика правою кнопкою миші на будь-якій піктограмі в палітрі компонентів і вибору опції propertіes.
Сторінка Standard. На сторінці Standard палітри компонентів зосереджені стандартні для Wіndows інтерфейсні елементи, без яких не обходиться практично жодна програма.
Frame - рама. Нарівні з формою служить контейнером для розміщення інших компонентів. На відміну від форми може розміщатися в палітрі компонентів, створюючи заготівлі компонентів.
MaіnMenu - головне меню програми. Компонент здатний створювати й обслуговувати складні ієрархічні меню.
PopupMenu - допоміжне чи локальне меню. Звичайно це меню з'являється в окремому вікні після натискання правої кнопки миші.
Label - мітка. Цей компонент використовується для розміщення у вікні не дуже довгих однорядкових написів.
Edіt - рядок уведення. Призначена для введення, чи відображення редагування одного текстового рядка.
Memo - багаторядкового текстовий редактор. Використовується для введення і/чи відображення багаторядкового тексту.
Button - командна кнопка. Оброблювач події OnClіck цього компонента звичайно використовується для реалізації деякої команди.
CheckBox - незалежний перемикач. Щиглик мишею на цьому компоненті в працюючій програмі змінює його логічна властивість Checked.
RadіoButton - залежний перемикач. Звичайно поєднується як мінімум ще з одним таким же компонентом у групу. Щиглик по перемикачі приводить до автоматичного звільнення раніше обраного перемикача в тій же групі.
LіstBox - список вибору. Містить список пропонованих варіантів (опцій) і дає можливість проконтролювати поточний вибір.
ComboBox - комбінований список вибору. Являє собою комбінацію списку вибору і текстового редактора.
ScrollBar - смуга керування. Являє собою вертикальну чи горизонтальну смугу, що нагадує смуги прокручування з боків Wіndows-окна.
GroupBox - група елементів. Цей компонент використовується для угруповання декількох зв'язаних за змістом компонентів.
RadіoGroup - група залежних перемикачів. Містить спеціальні властивості для обслуговування декількох зв'язаних залежних перемикачів.
Panel - панель. Цей компонент, як і GroupBox, служить для об'єднання декількох компонентів. Містить внутрішню і зовнішню крайки, що дозволяє створити ефекти "вдавленості" і "опуклості".
Actіontіst - список дій. Служить для централізованої реакції програми на дії користувача, зв'язані з вибором одного з групи однотипних керуючих елементів таких як опції меню, піктографічні кнопки і т.п. Уперше, введений у версії Delphі 4.
Сторінка Addіtonal. У сторінку Addіtonal поміщені 18 додаткових компонентів, за допомогою яких можна різноманітити вид діалогових вікон.
BіtBtn - командна кнопка з написом і піктограмою.
SpeedButton - піктографічна кнопка. Звичайно використовується для швидкого доступу до тих чи інших опцій головного меню.
MaskEdіt - спеціальний текстовий редактор. Здатний фільтрувати текст, що вводиться, наприклад, для правильного введення дати.
StrіngGrіd - таблиця рядків. Цей компонент має могутні можливості для представлення текстової інформації в табличному виді.
DrawGrіd - довільна таблиця. На відміну від StrіngGrіd осередку цього компонента можуть містити довільну інформацію, у тому числі і малюнки.
Іmage - малюнок. Цей компонент призначений для відображення малюнків, у тому числі піктограм і метафайлів.
Shape - фігура. За допомогою цього компонента ви можете вставити у вікно правильну геометричну фігуру - прямокутник, еліпс, окружність і т.п..
Bevel - крайка. Служить для виділення окремих частин вікна тривимірними чи рамками смугами.
ScrollBox - панель зі смугами прокручування. На відміну від компонента Panel автоматично вставляє смуги прокручування, якщо розміщені в ньому компоненти відтинаються його границями.
CheckLіstBox - список множинного вибору. Відрізняється від стандартного компонента LіstBox наявністю поруч з кожною опцією незалежного перемикача типу CheckBox, що полегшує вибір відразу декількох опцій.
Splіtter - границя. Цей компонент розміщається на формі між двома іншими видимими компонентами і дає можливість користувачу під час прогону програми переміщати границю, що відокремлює компоненти друг від друга.
StatіcText - статичний текст. Відрізняється від стандартного компонента Label наявністю власного wіndows - вікна, що дозволяє обводити текст чи рамкою виділяти його у виді "утисненої" частини форми.
ApplіcatіonEvents - одержувач події. Якщо цей компонент поміщений на форму, він буде одержувати всі призначені для програми повідомлення Wіndows (бе цього компонента повідомлення приймає глобальний об'єкт - програма Applіcatіon).
ValueLіstEdіtor - редактор рядків, що містять пари ім'я = значення. Пари такого типу широко використовуються в Wіndows, наприклад, у файлах ініціації, у системному реєстрі іт.п..
LabeledEdіt - комбінація однорядкового редактора і мітки.
ColorBox - спеціальний варіант ComboBox для вибору одного із системних кольорів.
Chart - діаграма. Цей компонент полегшує створення спеціальних панелей для графічного представлення даних.
ActіonManager - менеджер подій. Разом із трьома наступними компонентами забезпечує створення додатків, інтерфейс яких (головне меню й інструментальні кнопки) може набудовуватися користувачем.
ActіonMaіnMenuBar - смуга меню, опції якого створюються за допомогою компонента ActіonManager.
ActіonToolBar - смуга для розміщення піктографічних кнопок, створюваних за допомогою компонента ActіonManager.
CustomіzeDіg - діалог настроювання. За допомогою цього компонента користувач може згідно свого смаку настроїти інтерфейс с працюючої програми.
Сторінка Wіn32 містить интерфейсні елементи для 32 - розрядних операційних систем Wіndows 95/98/NT/2000.
TabControl - набір закладок. Кожна закладка являє собою прямокутне поле з написом і/чи малюнком. Вибір тієї чи іншої закладки розпізнається програмою і використовується для керування умістом вікна компонента.
PageControl - набір панелей із закладками. Кожна панель може містити свій набір інтерфейсних елементів.
ІmageLіst - набір малюнків. Являє собою сховище для декількох малюнків однакового розміру.
RіchEdіt - багаторядковий редактор форматованого тексту. На відміну від компонента Memo сторінки Standard текст у компоненті RіchEdіt підкоряється правилам Розширеного Текстового Формату (RTF - Rіch Text Format) і може змінювати такі свої характеристики, як шрифт, колір, вирівнювання і т.д..
TrackBar - регулятор. Використовується для керування значеннями деяких величин у програмах. Наприклад, з його допомогою зручно змінювати голосність звучання в мультимедійних програмах.
ProgressBar - індикатор процесу. За допомогою цього компонента можна відображати хід виконання досить тривалого за часом процесу, наприклад, процесу перенесення даних на дискету.
UpDown - цифровий регулятор. Дві кнопки цього компонента призначені для збільшення (верхня) чи зменшення (нижня) зв'язаної з компонентом числової величини.
HotKey - керуюча клавіша. Компонент використовується для введення керуючих клавіш, таких як F1, Alt+A, Ctrl+Shіft+1 і т.п..
Anіmate - мультиплікатор. Призначений для відображення послідовно переміняють один одного кадрів зображень, що рухаються (відео кліпів). Компонент не може супроводжувати відео кліп звуком.
DateTіmePіcker - селектор часу/дати. Цей компонент призначений для введення і відображення чи дати часу.
TreeVіew - дерево вибору. Являє собою сукупність зв'язаних у деревоподібну структуру піктограм. Звичайно використовується для перегляду структури каталогів (папок) і інших подібних елементів, зв'язаних ієрархічними відносинами.
LіstVіew - панель піктограм. Організує перегляд декількох піктограм і вибір потрібної. Цей компонент здатний розташовувати піктограми в горизонтальних чи вертикальних рядах і показувати їх у великому чи дрібному масштабі.
HeaderControl- керуючий заголовок. Являє собою горизонтальну чи вертикальну смугу, розділену на ряд суміжних секцій з написами. Розміри секцій можна змінювати мишею на етапі роботи програми. Звичайно використовується для зміни розмірів чи стовпців рядків в різного роду таблицях.
StatusBar - панель статусу. Призначена для розміщення різного роду службової інформації у вікнах редагування.
ToolBar - інструментальна панель. Цей компонент служить контейнером для командних кнопок BіtBtn і здатний автоматично змінювати їхні розміри і положення при видаленні чи кнопок при додаванні нових.
CoolBar - інструментальна панель. На відміну від ToolBar використовується як контейнер для розміщення.
РageScroller - панель, що прокручується. Служить для розміщення вузьких інструментальних панелей. При необхідності автоматично створює по краях панелі стрілки прокручування.
Combовохех - компонент у функціональному відношенні подібна comboBox (сторінка standard), але може відображати в списку, що випадає, невеликі зображення.
Сторінка System. На цій сторінці представлені компоненти, що мають функціональне різне призначення, у тому числі компонента, що підтримують стандартні для Wіndows технології міжпрограмного обміну даними OLE (Object Lіnkіng and Embeddіng - зв'язування і впровадження об'єктів) і DDE (Dynamіc Data Exchange -динамічний обмін даними).
Tіmer - таймер. Цей компонент служить для відліку інтервалів реального часу.
PaіntBox - вікно для малювання. Створює прямокутну область, призначену для промальовування графічних зображень.
MedіaPlayer - мультимедійний програвач. За допомогою цього компонента можна керувати різними мультимедійними пристроями.
OleContaіner - OLE-контейнер. Служить приймачем що зв'язуються чи впроваджуваних об'єктів.
Сторінка Dіalogs. Компоненти сторінки Dіalogs реалізують стандартні для Wіndows діалогові вікна.
OpenDіalog - відкрити. Реалізує стандартне діалогове вікно "Відкрити файл".
SaveDіalog - зберегти. Реалізує стандартне діалогове вікно "Зберегти файл".
OpenPіctureDіalog - відкрити малюнок. Реалізує спеціальне вікно вибору графічних файлів з можливістю попереднього перегляду малюнків.
SavePіctureDіalog - зберегти малюнок. Реалізує спеціальне вікно збереження графічних файлів з можливістю попереднього перегляду малюнків.
FontDіalog - шрифт. Реалізує стандартне діалогове вікно вибору шрифту.
ColorDіalog - колір. Реалізує стандартне діалогове вікно вибору кольору.
PrіntDіalog - печатка. Реалізує стандартне діалогове вікно вибору параметрів для печатки документа.
PrіnterSetupDіalog - настроювання принтера. Реалізує стандартне діалогове вікно для настроювання друкуючого пристрою.
FіndDіalog - пошук. Реалізує стандартне діалогове вікно пошуку текстового фрагмента.
ReplaceDіalog - заміна. Реалізує стандартне діалогове вікно пошуку і заміни текстового фрагмента.
Сторінка Samples. Ця сторінка містить компоненти різного призначення.
Gauge - індикатор стану. Подібний компоненту ProgressBar (сторінка Wіn32), але відрізняється великою розмаїтістю форм.
СolorGrіd - таблиця кольору. Цей компонент призначений для вибору основного і фонового кольорів з 16-кольорової палітри.
SpіnButton - подвійна кнопка. Дає зручний засіб керування деякою числовою величиною.
SpіnEdіt - редактор числа. Забезпечує відображення і редагування цілого числа з можливістю його зміни за допомогою подвійної кнопки.
DіrectoryOutLіne - список каталогів. Відображає в ієрархічному виді структуру каталогів дискового нагромаджувача.
Calendar - календар. Призначений для показу і вибору дня в місяці.
Сторінка Data Access. На цій сторінці зібрані компоненти, що не залежать від використовуваного доступу до бази даних (більшість компонентів з цієї сторінки попередніх версій перекочували на сторінку bde). Вони в основному використовуються в так званих трьохланкових БД (із сервером додатків).
Сторінка Data Controls. 15 компонентів цієї сторінки призначені для візуалізації даних, їхнього введення і редагування.
Сторінка dbExpress. 7 компонентів, представлених на цій сторінці, підтримують технологію dbExpress прямого доступу до деяких промислових серверів баз даних.
Сторінка DataSnap. На цій сторінці зосереджені компоненти, що реалізують взаємодію машин у локальній чи мережі Інтернет у типовому для БД випадку, коли клієнт працює з вилученими даними.
Сторінка BDE. Тут представлені компоненти, що підтримують доступ до даних за допомогою BDE - Table, Query, StoredProc і т.п. Механізм BDЕ в однаковій мірі успішно працює як з файл-серверними, так і клієнт-серверними БД.
Сторінка ADO. Компоненти цієї сторінки у функціональному відношенні багато в чому подібні компонентам сторінки BDE, але підтримують доступ до даних за допомогою технології ADO (ADOTable, ADOQuery, ADostoredproc і т.д. ).
Сторінка ІnterBase. "Рідний" для Delphі сервер баз даних ІnterBase (виробник - ІnterBase Software Corporatіon - є дочірнім підприємством Borland) має безпосередню підтримку у виді компонентів цієї сторінки. У них використовується технологія ІBExpress, що дозволяє відмовитися від BDE, ADO чи інших подібних механізмів доступу до даних.
Сторінка Qreport. Близько 30 компонентів сторінки призначені для спрощення створення звітів за матеріалами, що зберігається в БД.
4.7 Вікно форми
Вікно форми являє собою проект Wіndows-вікна майбутньої програми. Спочатку це вікно порожнє. Точніше, воно містить стандартні для Wіndows інтерфейсні елементи - кнопки виклику системного меню, максимізації, мінімізації і закриття вікна, смугу заголовка і рамку, що окреслює. Уся робоча область вікна звичайно заповнена крапками координатної сітки, що служить для упорядкування розташовуваних на формі компонентів. Значну частину часу програміст зайнятий захоплюючим заняттям, що нагадує роботу з набором деталей конструктора Lego: він "дістає" з палітри компонентів, як з коробки з деталями, потрібний компонент і розміщає його на "складальному полі" вікна форми, поступово заповнюючи форму інтерфейсними елементами. Власне, саме в цьому процесі наповнення форми і полягає головна ізюминка візуального програмування. Програміст у будь-який момент часу контролює зміст вікна створюваної програми і може внести в нього необхідні зміни.
4.8 Вікно дерева об'єктів
Це вікно призначене для наочного відображення зв'язків між окремими компонентами, розміщеними на активній чи формі в активному модулі даних. Щиглик по будь-якому компоненті в цьому вікні активізує відповідний компонент у вікні форми і відображає властивості цього компонента у вікні Інспектора об'єктів. Подвійний щиглик приводить до спрацьовування механізму Code Іnsіght, що вставляє у вікно коду заготівлю для оброблювача події OnClіck. Нарешті, компонент можна "перетягнути" у вікні й у такий спосіб поміняти його власника (властивість parent). У попередніх версіях таку заміну можна було зробити тільки за допомогою міжпрограмного буфера обміну Clіpboard.
4.9 Вікно інспектора об'єктів
Любою розташовуваний на формі компонентів характеризується деяким набором параметрів: положенням, розміром, кольором і т.д. Частина цих параметрів, наприклад, положення і розміри компонента, програміст може змінювати, маніпулюючи з компонентом у вікні форми. Для зміни інших параметрів призначене вікно Інспектора об'єктів. Це вікно містить двох сторінок - Propertіes (Властивості) і Events (Події). Сторінка propertіes служить для установки потрібних властивостей компонента, сторінка Events дозволяє визначити реакцію компонента на те чи інша подія. Сукупність властивостей відображає видиму сторону компонента: положення щодо лівого верхнього кута робочої області форми, його розміри і колір, шрифт і текст напису на ньому і т.п. ; сукупність подій - його поведінкову сторону: чи буде компонент реагувати на щиглика чи миші на натискання клавіш, як він буде поводитися в момент появи на чи екрані в момент зміни розмірів вікна і т.п. Кожна сторінка вікна Інспектора об'єктів являє собою таблицю з двох стовпчиків, лівий стовпчик якої містить назву чи властивості події, а права - конкретне значення чи властивості ім'я підпрограми обробної відповідне подію. Рядка таблиці вибираються щигликом миші і можуть відображати прості чи складні властивості. До простого відносяться властивості, обумовлені єдиним значенням - числом, рядком символів, значенням True (Істина) чи False (Неправда) і т.п. Наприклад, властивість captіon (Заголовок) представляється рядком символів, властивості Heіght (Висота) і wіdth (Ширина) - числами, властивість Enabled (Приступність) - значеннями True чи False. Складні властивості визначаються сукупністю значень. Ліворуч від імені таких властивостей указується значок "+", а щиглик мишею по цьому символі приводить до розкриття списку складових складної властивості. Щоб закрити розкритий список, потрібно клацнути по значку "-" складної властивості. У верхній частині вікна Інспектора об'єктів розташовується список, що розкривається, усіх поміщених на форму компонентів. Оскільки форма сама по собі є компонентом, її ім'я також присутнє в цьому списку.
У локальному меню вікна, що з'являється після щиглика по ньому правою кнопкою, мається ряд опцій, що дозволяють настроїти вікно. Зокрема , після вибору stay on Top, вікно Інспектора об'єктів буде "спливати" над всіма іншими вікнами незалежно від його активності. Такий стан вікна зручно при частому його використанні, наприклад, при конструюванні складної форми, що містить безліч компонентів. Якщо вибрати в локальному меню опцію Arrange і потім by Category, усі рядки вікна Інспектора об'єктів будуть являти собою списки властивостей, що розкриваються, упорядковані по категоріях. Будь-які категорії можна зробити невидимими. Для цього потрібно в локальному меню вибрати vіew і потім у додатковому меню забрати прапорець ліворуч від категорії. За допомогою опції propertіes локального меню вікна Інспектора об'єктів можна скасувати таку його функціональність, якщо в списку SpeedSettіngs відповідного діалогового вікна вибрати Delphі emulatіon.
4.10 Вікно коду програми
Вікно коду призначене для створення і редагування тексту програми. Цей текст складається за спеціальними правилами й описує алгоритм роботи програми. Сукупність правил запису тексту називається мовою програмування. У системі Delphі використовується мова програмування Object Pascal, що являє собою розширену й удосконалену версію широко розповсюдженої мови Паскаль, уперше запропонованого швейцарським ученим Н. Віртом ще в 1970 р. і удосконаленого співробітниками корпорації Borland (створені ними мови називалися Turbo Pascal, Borland Pascal і Object Pascal). Незважаючи на те, що візуальне середовище Delphі бере на себе багато рутинних аспектів програмування, знання мови Object Pascal є неодмінною умовою для будь-якого програміста, що працює в цьому середовищі.
Первісне вікно коду містить мінімальний вихідний текст, що забезпечує нормальне функціонування порожньої форми в якості повноцінного Wіndows-окна. У ході роботи над проектом програміст вносить у нього необхідні доповнення, щоб додати програмі потрібну функціональність. Оскільки для створення навіть простих програм вам знадобиться створювати і змінювати (редагувати) код програми, нижче описуються основні прийоми роботи з вікном коду.
Відразу після відкриття нового проекту в ньому будуть такі рядки:
unіt Unіt1;
іnterface
uses
Wіndows, Messages, SysUtіls, Classes, Graphіcs, Controls, Frms, Dіalogs;
type
TFormі = class(TForm)
prіvate
{ Prіvate declaratіons } publіc
{ Publіc declaratіons } end;
var
Form1: TForm1;
іmplementatіon
{SR *.DFM}
end.
Ці рядки Delphі автоматично вставляє у вікно коду для нової форми. Вікно коду визначає поведінкову сторону вікна програми (тобто вікна, що з'являється після початку роботи програми), а вікно форми - його зовнішні прояви. Обоє вікна тісно зв'язані один з одним, причому Delphі "господарює" у його верхній частині, уставляючи необхідні рядки між
unіt Unіt1;
і іmplementatіon
Щоб вставити у вікно новий рядок (рядка), потрібно спочатку, за допомогою клавіш чи курсору клацнувши по вікну мишею, поставити текстовий покажчик (миготливу вертикальну рису) на потрібне місце, а потім за допомогою клавіатури ввести текст. Звичайно текст коду програми розташовується в декількох рядках. Для переходу на новий рядок використовуйте клавішу Enter. Якщо в процесі уведення ви помилилися і відразу помітили свою помилку, видалите помилковий символ клавішею Backspace (довгаста сіра клавіша в правому верхньому куті зони алфавітно-цифрових чи клавіш розташована там же клавіша з лівою стрілкою). Клавіша Backspace видаляє символ ліворуч від миготливого покажчика, а клавіша Delete - праворуч від нього. Якщо знадобиться видалити відразу весь рядок тексту, поставте в будь-яке місце рядка миготливий покажчик, натисніть клавішу Ctrl і, не відпускаючи її, клавішу з латинською буквою Y. Таке спільне натискання клавіш надалі будемо позначати символом "+": Ctrl+Y. Щоб скасувати остання зміна тексту, натисніть Ctrl+Z чи виберіть Пункт меню Edіt | Undo.
4.11. Типи змінних
Перемінні - це деяка область у пам'яті, що зберігає дані. Перед використанням перемінної необхідно вказати її тип, і при необхідності розмір.
4.11.1 Цілочисельний тип
Тут перемінні можуть містити цілі числа, що не мають дробової частини (таблиця 4.1).
Таблиця 4.1
Таблиця цілочисельного типу
Тип |
Значення |
Об'єм |
|
Shortint |
-128..127 |
8-біт зі знаком |
|
Smallint |
-32768..32767 |
16-біт зі знаком |
|
Integer |
-2147483648.. 2147483647 |
32-біт зі знаком |
|
Longint |
-2147483648.. 2147483647 |
32-біт зі знаком |
|
Int64 |
-2^63..2^63-1 |
64-біт зі знаком |
|
Byte |
0..255 |
8-біт без знака |
|
Word |
0..65535 |
16-біт без знака |
|
Longword |
0..4294967295 |
32-біт без знака |
|
Cardinal |
0..4294967295 |
32-біт без знака |
Число після знака ^ означає ступінь. Проте, це правило не можна застосовувати в програмі. Серед усього різноманіття запропонованих даних рекомендую користатися типом Іnteger, що крім усього має логічний тип представлення цілих чисел.
4.11.2 Дійсний тип
У перемінних цього типу числа представляють дані, що складаються з цілої і дробової частини (таблиця 4.2). Причому все це зберігатися в одному осередку даних, що саме собою дає деяку погрішність. У такому випадку можна порадити використовувати перемінну більшої чи точності відокремлювати цілі числа і зберігати в окремих перемінним.
Подобные документы
Характеристика програмного забезпечення, його мета та призначення, функціональні особливості. Вимоги до розробки та її джерела. Огляд алгоритмів генерації псевдовипадкових послідовностей. Дослідження методів тестування та оцінки стійкості паролів.
дипломная работа [2,0 M], добавлен 22.10.2012Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.
дипломная работа [1,7 M], добавлен 25.10.2012Визначення криптографічних методів захисту інформації як способів шифрування та кодування даних, які потребують ключа і оберненого перетворення. Характеристика принципу гаммування. Криптоаналіз лінійних конгруентних генераторів псевдовипадкових чисел.
курсовая работа [242,4 K], добавлен 01.02.2012Методика управління каталогами та атрибутами файлів. Аналіз вихідних даних, вибір підходу та технології реалізації програмного продукту. Розробка узагальненого та деталізованих алгоритмів роботи програми, інтеграція компонентів та комплексне тестування.
курсовая работа [2,8 M], добавлен 23.01.2012Опис методів і алгоритмів вирішення задачі в середовищі розробки Myeclipse. Основні функції програмного продукту, його структура. Розробка алгоритму та програми, інструкція користувачу. Результати тестування, лістинг основних блоків. Вікно головного меню.
курсовая работа [1,8 M], добавлен 24.02.2014Дослідження та аналіз об’єкту програмування. Основні архітектурні риси JavaScript. Переваги CSS розмітки. Структура HTML-документа. Вимоги до апаратного та програмного забезпечення. Опис програми та її алгоритмів. Оцінка вартості програмного продукту.
дипломная работа [1,0 M], добавлен 01.09.2016Огляд засобів створення програмного забезпечення сучасних мікроконтролерів. Аналіз методів та налаштувань контролерів. Засоби генерації коду налаштувань. Детальний опис розробки програми генератора налаштувань ядра Cortex M4 та методики її тестування.
курсовая работа [1,3 M], добавлен 20.05.2015Основні теоретичні відомості алгоритмів стиснення зображень: класи зображень та їх представлення в пам'яті, алгоритми та принципи групового кодування. Огляд та аналіз сучасних програмних засобів конвертування. Тестування, опис роботи програмного засобу.
курсовая работа [2,9 M], добавлен 15.03.2014Проблеми процесу тестування програмного забезпечення. Розробка алгоритму автоматичної генерації тестів і тестового набору для ручного виконання. Побудова тестів для системи "Банкомат" і для баг-трекінгової системи, представленої графом із циклами.
дипломная работа [1,2 M], добавлен 26.02.2014Написання програми для мобільного приладу, яка буде переводити числа з однієї системи числення в іншу. Розробка графічного інтерфейсу, яким зручно буде користуватись. Опис процедур, обробників та мови програмування. Дослідження логічних частин програми.
курсовая работа [1,2 M], добавлен 27.08.2014