Структура програми
Початковий текст програми представляється у вигляді послідовності рядків, при цьому текст рядка може починатися з будь-якої позиції. Структурно програма складається із заголовка і блоку. Заголовок знаходиться на початку програми і має вигляд:
Program < Ім'я програми >; Блок складається з двох частин: описової і старанної. У описовій частині міститься опис елементів програми, а в старанній указуються дії з різними елементами програми, що дозволяють отримати необхідний результат. У загальному випадку описова частина складається з наступних розділів: 1. підключення модулів; 2. оголошенні міток; 3. оголошення констант; 4. описи типів даних; 5. оголошення змінних; 6. описи процедур і функцій. В кінці кожного з вказаних розділів ставиться крапка з комою. Структуру програми в загальному випадку можна представити таким чином: Program < Ім'я програми >; Uses < Список модулів >; Label < Список міток >; Const < Список констант >; Турі < Опис типів >; Var < Оголошення змінних >; < Опис процедур >; < Опис функцій >; Begin <оператори>; End. У структурі конкретної програми будь-який з розділів опису і оголошення може бути відсутнім. Розділи описів і оголошень, окрім розділу підключення модулів, який розташовується відразу після заголовка програми, можуть зустрічатися в програмі довільне число раз і слідувати в довільному порядку. При цьому всі описи і оголошення елементів програми повинні бути зроблені до того, як вони будуть використані. Розглянемо докладніше окремі розділи програми. Розділ підключення модулів складається із зарезервованого слова uses і списку імен стандартних і призначених для користувача бібліотечних модулів, що підключаються. Формат цього розділу: Uses < Ім’я 1>, < Ім’я 2>,..., <Ім’я N>; Наприклад Uses Crt, Dos, MyLib; Розділ оголошення міток починається зарезервованим словом Label, за яким слідують імена міток, розділені комами. Формат даного розділу: Label < Ім’я 1 >, < Ім’я 2>,..., < Ім’я N>; У програмі цей розділ може виглядати так: Label metka1, metka2, 10, 567; У розділі оголошення констант проводиться привласнення ідентифікаторам констант їх значень. Розділ починається ключовим словом const, за яким слідує ряд конструкцій, що привласнюють константам значення. Ці конструкції є ім'ям константи і вираз, значення якого привласнюється константі. Ім'я константи відокремлене від виразу знаком рівності, в кінці конструкції ставиться крапка з комою. Формат цього розділу: < ідентифікатор 1> = < Вираження >; . < ідентифікатор N> = < Вираження >; Приклад. Оголошення констант. Const stl =‘WORD’; ch =‘5’; n34 = 45.8; Тип константи розпізнається компілятором автоматично на підставі типу виразу. У Delphi є велика кількість констант, які можна використовувати без їх попереднього оголошення, наприклад, Nil, True і MaxInt. У розділі опису типів описуються типи даних користувача. Цей розділ не є обов'язковим, і типи можуть бути описані неявно в розділі оголошення змінних. Розділ опису типів починається ключовим словом Турі, за яким розташовуються імена типів і їх описи, розділені знаком рівності. В кінці опису ставиться крапка з комою. Формат розділу: Турі < Ім’я типа 1> = < Опис типа >; . < Ім’я типа N> = < Опис типа >; Наприклад Type char2 = ('а'..'z'); massiv = array[1..100] of real; month = 1..12; У Delphi є багато стандартних типів, що не вимагають попереднього Опису: Real, Integer, Char, Boolean і ін. Кожна змінна програми повинна бути оголошена. Оголошення обов'язково передує використанню змінної. Розділ оголошення змінних починається з ключового слова var, після якого через коми перераховуються імена змінних і через двокрапку їх тип. Формат розділу: Var < ідентифікатори >:<тип>; . < ідентифікатори >:<тип>;
Наприклад Var а, bht u7: real; simvol: char; n1, n2: integer; Примітка: Оголошення змінних забезпечує виділення пам'яті для розміщення змінних відповідно до їх типа, але не привласнення їм початкових значень. Програміст повинен самостійно задати потрібні значення змінним перед їх використанням. Розділ операторів починається з ключового слова Begin, після якого слідують оператори мови, розділені крапкою з комою. Завершує цей розділ ключове слово End, після якого указується крапка. Формат розділу:
Begin < оператор 1 >; . < оператор N >; End. Тут можуть використовуватися будь-які оператори мови, наприклад, оператор привласнення або умовний оператор.
4 Введення і виведення даних Виведення інформації Виведення інформації завжди має на увазі виведення рядків тексту. Тому для виведення числових констант і змінних їх необхідно перетворювати в текст наступними функціями: IntToStr (ціле число); FloatToStr(дійсне число); Для виведення інформації на екран використовується процедура ShowMessage(const Msg: string); Тут MSG – рядок тексту, увязнена в апострофи, або сукупність рядків, сполучених знаком +. Можна проводити виведення числових даних, символів, рядків, арифметичних виразів, елементів масивів, полів записів і інших даних. Але заздалегідь всі вони повинні бути перетворені в строкову константу відповідними функціями. Приклад. ShowMessage (‘Число сторін =’+IntToStr(5)); ShowMessage (‘Довжина сторони =’+FloatToStr(5.25)); Для висновку можна використовувати деякі компоненти форми, у яких є властивість CAPTION. Form1.Caption:=’X=’+IntToStr(78); Label1.Caption:=’Y=’+FloatToStr(567.89); Компонент EDIT спеціально передбачений для введення і висновку. Для висновку можна використовувати його властивість TEXT Edit1.Text:= FloatToStr(-667.98);
Функція MessageDlg більш універсальна. Вона дозволяє помістити у вікно з повідомленням один із стандартних значків, наприклад «Увага», задати кількість і тип командних кнопок і визначити, яку з кнопок натиснув користувач Звернення до функції MessageDlg в загальному вигляді: Вибір:=MessageDlg (повідомлення, тип повідомлення, кнопки, довідка); де: повідомлення - текст повідомлення (рядок символів); тип повідомлення, кнопки - задають вигляд повідомлення, кількість і тип командних кнопок для відповіді користувача.
Таблиця 8 Константи типів повідомлення функції MessageDlg
Кнопки - це список кількості і виду кнопок вікна повідомлення. Список може складатися з декількох розділених комами іменованих констант - типів кнопок. Весь список замикається в квадратні дужки. Таблиця 7 Список іменованих констант - типів кнопок
Наприклад, для того, щоб у вікні повідомлення були присутні кнопки «Cancel», «Abort», «Ignore», список кнопки повинен складатися з 3-х констант: [mbCancel, mbAbort, mblgnore]. Функція MessageDlg може використовувати також ще три константи: mbAbortRetryIgnore, mbYesNoCancel, mbOkCancel. Вони визначають комбінації командних кнопок, які часто використовуються в діалогових вікнах. Довідка - це параметр, який визначає номер екрану довідкової системи, який з'являється при натисненні на клавішу F1 в той час, коли вікно повідомлення знаходиться на екрані дисплея. Якщо використання довідкової системи не передбачається, то у функції MessageDlg параметр «довідка» повинна дорівнювати нулю. Значення функції MessageDlg дозволяє визначити, яка з командних кнопок була натиснута. У таблиці 8 приведено перелік констант, які ідентифікують натиснуту кнопку.
Таблиця 8 Константи, які ідентифікують натиснуту кнопку
Висновок в полі діалогового вікна Частина діалогового вікна, призначена для виведення інформації називається полем висновку або полем мітки. Для того, щоб в полі висновку з'явився текст, досить привласнити значення властивості Caption цього поля. Властивість Caption поля мітки має символьний тип. Тому, для того щоб вивести в це поле значення числового типа, не обхідний заздалегідь перетворити початкове значення на рядок символів, наприклад; Labell.Caption:= FloatToStr(у);
Введення інформації Введення інформації завжди має на увазі введення рядків тексту. Тому для введення числових констант і змінних їх необхідно після введення рядка перетворювати у відповідний тип наступними функціями: StrToInt (рядок); - в ціле число StrToFloat (рядок); - в дійсне число Для введення використовується функція InputBox (const ACaption, APrompt, ADefault: string) Тут ACaption, APrompt, ADefault – рядки тексту, ув’язнені в апострофи, або сукупності рядків, сполучених знаком +, що позначають заголовок вікна введення, підказку, значення за умовчанням. Приклад. f:= InputBox(' Введення ',’ Введіть значення Х', '20’); Потім введене значення треба перетворити до речовинного значення змінної Х. X:= StrToFloat (f); Компонент EDIT спеціально передбачений для введення і висновку. Для введення можна використовувати його властивість TEXT Х:= StrToFloat(Edit1.Text).
5 Процедури і функції При програмуванні в Delphi робота програміста полягає в основному в розробці процедур (підпрограм) обробки подій. При виникненні події автоматично запускається процедура обробки події, яку і повинен написати програміст. Завдання виклику процедури обробки при виникненні відповідної події бере на себе Delphi. У мові Object Pascal основною програмною одиницею є підпрограма. Розрізняють два види підпрограм: процедури і функції. Як процедура, так і функція, є послідовністю інструкцій, призначених для виконання деякої роботи. Щоб виконати інструкції підпрограми, треба викликати цю підпрограму. Відмінність функції від процедури полягає в тому, що з ім'ям функції пов'язано значення, тому ім'я функції можна використовувати у виразах.
|