Lazarus

1.  Перші кроки
Для створення графічного інтерфейсу Lazarus надає програмісту палітру компонентів для створення інтерфейсу користувача. Програмісту потрібно всього лише вибрати на палітрі потрібні компоненти і за допомогою миші перенести їх на форму. Після того, як компонент розміщений на формі, він стає
об'єктом, який має свої встановлені за замовчуванням властивості. Ці властивості можна переглядати та змінювати за допомогою вікна Властивості.
У нашій першій програмі при створенні інтерфейсу користувача будемо використовувати три компоненти: TForm (Форма), Label (Напис) і TButton (Командна кнопка).
2.  Об'єкт Форма
Форма (об'єкт типу TForm) є основою програми. Властивості форми визначають вигляд вікна програми.
3. Основні властивості форми



 
4. Компонент TLabel
 Компонент Label (Напис) використовується для виведення на форму тексту, який користувач не може змінити під час виконання програми.
    5. Основні властивості компонента TLabel
 
 6.  Компонент TButton
Компонент Button (Кнопка) - командна кнопка, за допомогою якої користувач може викликати виконання якої-небудь дії.
 

7. Властивості компонента TButton
 8. Моя перша програма
Завдання. Створити проект, який після клацання на кнопці виводить в полі напису текст: «Я програмую !!!»
Створити інтерфейс програми за зразком:Розмістити напис і кнопку на формі і
встановіть значення властивостей,перераховані в таблиці. Коли ви це зробите, форма прийме такий вигляд, як на малюнку.

Хід виконання проекту "Моя перша програма"
Завантажте Lazarus. Створіть новий проект.
Для цього:
1) Виконати команду Проект => Створити проект ... (Project=>New Project).
2) У діалоговому вікні вибрати слово Додаток (Application) і натиснути кнопку ОК.


 Збережіть створений проект. Для цього виконайте команду Проект=>Зберегти проект...(Project=>Save Project)
Задати назву проекту обрати місце для збереження (бажано створити окрему папку для програми) та натиснути кнопку Зберегти.


Відразу ж відкриється вікно Зберегти Unit1 для збереження програмного коду проекту (файл Unit1.pas), в якому також необхідно клацнути по кнопці Зберегти.
Крім цих двох файлів у папці проекту створюється автоматично ще декілька файлів, у тому числі - unit.lfm, який являє собою файл з повними даними про проектувальника форми. Позиція, розмір,розташовані компоненти та ін. Папка проекту повинна містити наступні файли:

Розмістіть на формі компоненти Напис (Label) і Кнопку (Button).Розмістити компонент на формі можна одним із двох способів. Перший - двічі клацнути мишею на значку компонента, розташованого на палітрі компонентів. Однак при цьому компонент потрапить не в те місце, куди Ви хочете, а в лівий
верхній кут форми. Другий - клацнути на значку компонента (при цьому він
виділяється) і клацнути на формі. Таким чином компонент можна помістити в будь-яке місце на формі.






Встановіть нові значення для властивостей, перерахованих в таблиці. Форма прийме такий вигляд, як на малюнку:


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


Для цього:
1) Виконайте подвійне клацання покнопці. Відкриється  створеного  втоматично, додається нова процедура -TForm1.Button1Click - обробник події клацання на кнопці (анг. Button - кнопка, Click -клацання).
2) Щоб процедура виконала необхідні дії, напишіть відповідний код міжоператорними дужками begin і end. У нашому випадку це оператор присвоювання, який змінює властивість Сaption (текст напису) об'єкта Label1 на нове значення:
label1.Caption:='Я програмую!!!';
Закінчивши вводити код, виконайте програму. Це можна зробити одним з трьох способів:
1) клацнувши по кнопці Run (Виконати) на панелі інструментів;
2) вибравши команду Run-Run в головному меню;
3) натиснувши клавішу <F9>.
Відбувається порівняно недовгий процес компіляції, в результаті якого в папці проекту створюється файл. У вікні Повідомлення виводиться протокол збірки
проекту:
Далі цей файл, в разі успішного створення, запускається на виконання.
У випадку, якщо були допущені помилки, повідомлення про це з'являється в протоколі.
При успішній компіляції на екрані з'явитися форма з кнопкою, проте поки що без напису. Якщо тепер клацнути на кнопці, то на формі з'явитися напис.
Таким чином, ви створили додаток, що реагує на дії користувача.Скомпільована програма зберегтися в папці проекту у вигляді файлу без розширенням. Він може бути виконаний на комп'ютері без середовища розробки Lazarus.
Збережіть всі файли проекту. Для цього виконайте команду Проект=>Зберегти або Файл=>Зберегти.
У попередньому завданні нові значення властивостей для компонентів, розміщених на формі, були перераховані в таблиці. У наступних завданнях будуть дані тільки текст завдання і приклад форми. Від Вас очікується, що ви, дивлячись на форму, самі здогадаєтеся, як повинні бути встановлені властивості компонентів.

ВВІД І ВИВІД ДАНИХ

Ввід даних
Функція InputBox () виводить на екран діалогове вікно, в якому можна ввести дані. Аргументами цієї функції є три рядки, а значенням функції - рядок введена користувачем.
У загальному вигляді рядок програмного коду з використанням функції InputBox виглядає так:
Змінна: = InputBox ( 'Заголовок', 'Підказка', 'Значення за замовчуванням');
де:
Змінна - змінна рядкового типу, значення якої повинно бути отримано від користувача;
Заголовок - текст заголовка вікна;
Підказка – текст, який пояснює зміст повідомлення;
Значення за замовчуванням - текст, який буде знаходитися в полі введення, коли вікно з'явитися на екрані.
Наприклад,
n: = InputBox ( Введення числа ',' Введіть число: ',' ');
Результат показаний на рисунку:
 Якщо користувач клацне по кнопці ОК, то значенням функції стане рядок, введений користувачем в текстове поле. Якщо користувач клацне по кнопці Скасувати, то значенням функції стане рядок «Значення за замовчуванням».
Значення функції InputBox завжди рядкового типу (String), тому в разі, якщо потрібно ввести число, то введений рядок повинна бути перетворений в число за допомогою відповідної функції перетворення.
Як приклад візьмемо завдання перерахунку ваги з фунтів в кілограми
Введення вихідних даних з вікна введення і подальше перетворення даних може виглядати так:
funtStr:= InputBox(‘Фунти-кілограми’,’Введіть вагу в фунтах:’,’ ‘);
funtFloat:=StrToFloat(funtStr);

Вивід даних
Результат роботи програми найчастіше виводять у вікно повідомлення ShowMessage, або в поле виведення (компонент Label).
Вивід у вікно повідомлення ShowMessage
Для виведення результату використовується процедура ShowMessage (). Вона виводить на екран діалогове вікно з текстом з командною кнопкою OK.
Загальний вигляд інструкції виклику процедури ShowMessage:
ShowMessage ('Повідомлення');
де Повідомлення - текст, який буде виведений у вікні.
Наприклад, для того щоб вивести результат в програмі перерахунку ваги з фунтів в кілограми, можна додати такий рядок коду:
ShowMessage(‘Вага в кілограмах: ‘+ FloatToStr(kg));
Результат показано на рисунку.

Вивід в поле виведення (Label)
Компонент TLabel (Поле виведення), в який буде здійснюватися вивід, встановлюють на формі під час розробки. Вміст цього поля визначається значенням властивості Caption.
Для того щоб вивести результати в це поле, потрібно в програмному коді помістити оператор присвоювання, який буде змінювати значення властивості Напис на потрібне вам значення.
Наприклад, для того щоб вивести результат в поле виведення Label1 в розглянутій вище задачі, потрібно використовувати наступний оператор:
Label1.Caption:=FloatToStr(kg) + ‘кг‘;
 Практична робота №1
Завдання. Помістити на форму дві кнопки: Введення даних і Вихід. Користувач повинен ввести прізвище, ім'я та вік. Для введення даних використовувати функцію InputBox. Після закінчення введення анкетні дані вивести в поле (КОМПОНЕНТ виведення Label).

 

Хід виконання
1. Створити новий проект. Папку проекту назвати Анкетні дані.
2. Розмістити на формі дві кнопки і напис так, як показано на малюнку вище.
3. Написати програмний код для кнопки Введення даних.
 procedure TForm1.Button1Click(Sender: TObject);
begin
        label1.Caption:=InputBox('Ввід анкетних даних', 'Введіть прізвище, ім’я, вік:','');
end;
4. Написати програмний код для кнопки Вихід
procedure TForm1.Button2Click(Sender: TObject);
begin
        Close;
end;
5. Зберегти проект. Перевірити роботу програми.
Після клацання на кнопці Введення даних має з'явитися діалогове вікно. Введіть в нього вихідні дані.
Після натискання на клавішу Enter введені дані повинні відобразитися на формі. Результат показаний на рисунку.
 На цьому уроці ми розглянули способи організації введення і виведення даних в середовищі Lazarus. Для введення даних ми використовували діалогове вікно InputBox, для виведення - діалогове вікно ShowMessage і компонент форми TLabel (Поле виведення).
Компонент TLabel встановлюється на формі під час розробки, діалогові вікна виводяться в окремому вікні під час виконання програми, не займають місце на формі. Для їх виведення потрібен відповідний програмний код.



Для розв'язання завдань в будь-якій програмі виконується обробка будь-яких даних. Дані зберігаються в пам'яті комп'ютера і можуть бути самих різних типів: цілі і дійсні числа, символи, рядки, масиви.
Типи даних визначають спосіб зберігання чисел або символів в пам'яті комп'ютера. Вони задають розміри комірки, в яку буде записано те чи інше значення, визначаючи тим самим його максимальну величину або точність задання.
Ділянка пам'яті (комірка), в якій зберігається значення певного типу, називається змінною. У змінної є ім'я (ідентифікатор), тип і значення.
Ім'я служить для звернення до області пам'яті, в якій зберігається значення.
Під час виконання програми значення змінної можна змінити. У Lazarus кожна змінна перед використанням повинна бути описана (оголошена). При оголошенні змінної задається її ім'я і тип. В оперативній пам'яті виділяється місце для зберігання змінної. Для опис змінних використовується службового слова var.
Загальний вигляд оператора:
Var ім'я_змінної: тип змінної;
Наприклад:
Var
а: integer; // Оголошена цілочисельна змінна
b, c: real; // Оголошено дві дійсні змінні.
Цілочисельний тип даних
Цілочисельні типи даних можуть займати в пам'яті комп'ютера один, два, чотири або 8 байтів.
Тип
Діапазон
Розмір (байт)
Shortint
-128 .. 127
1
Integer
-32768 .. 32767
4
Longint
-2147483648 .. 2147483647
4
Byte
0 .. 255
1
Word
0 .. 65535
2
Дійсний тип даних
Внутрішнє представлення дійсного числа в пам'яті комп'ютера відрізняється від представлення цілого числа. Дійсне число представлено в експотенціальній  формі mE^p, де m - мантиса (ціле або дробове число з десятковою крапкою), р - порядок (ціле число). Щоб перейти від експотенціальної форми до звичайного подання числа, необхідно мантису помножити на десять в степені(порядок).
Дійсне число може займати від 4 до 10 байтів.
Дійсні типи
Діапазон
Кількість значущих цифр
Розмір, байт
Real
2.9e-39 ..1.7e+38
11-12
8
Single
1.5-e45 .. 3.4e+38
7-8
4
Double
5.0e-324.. 1.7e308
15-16
8
Extended
3.4e-4932 ..1.1e4932
19-20
8
Приклад опису дійсних змінних:
Var
r1, r2: real; d: double;
Операції і вирази
Вираз задає порядок виконання дій над даними і складається з операндів (констант, змінних, звернень до функцій), круглих дужок і знаків операцій.
Наприклад: A + B * sin (х).
У таблиці представлені основні алгебраїчні оператори мови програмування Free Pascal
Оператор
Дія
+
Додавання
-
Віднімання
*
Множення
/
Ділення
DIV
Цілочисельне ділення
MOD
Остача від ділення
Оператори цілочисельний арифметики DIV і MOD застосовуються тільки до цілочисельних операндів.
DIV дозволяє отримувати цілу частину результату ділення одного числа на інше.
Наприклад, 15 DIV 7 = 2.
Оператор MOD отримує остачу від ділення одного числа на інше.
Наприклад: 15 MOD 7 = 1. Для задання потрібного порядку виконання операцій у виразі можна використовувати дужки.
Стандартні функції
У мові визначені стандартні функції. Деякі арифметичні функції представлені в таблиці нижче.
Позначеня
Дія
Abs(n)
Абсолютне значення n.
Sqrt(n)
Квадратний корінь із n.
Sqr(n)
Квадрат n.
Exp(n)
Експонента n.
Ln(n)
Натуральний логарифм n.
Random(n)
Випадкове ціле число в діапазоні від 0 до п-1. (Перед першим зверненням до функції необхідно викликати функцію Randomize, яка виконає ініціалізацію програмного генератора випадкових чисел)
Sin()
Синус вираженого в радіанах кута
Cos()
Косинус вираженого в радіанах кута
Arctan()
Арктангенс вираженого в радіанах кута
Величина кута тригонометричних функцій повинна бути виражена в радіанах. Для перетворення величини кута з градусів в радіани використовується формула:
(α * 3,1415256) / 180, де α - величина кута в градусах, 3.1415256 число π.
Замість константи 3.1415256 можна використовувати стандартну іменовану константу PI.
Функції перетворення
Функції перетворення типів часто використовуються при введенні і виведенні інформації
Наприклад, для того щоб вивести в поле виведення (компонент Label) діалогового вікна значення змінної Real, необхідно перетворити число в рядок символів, що зображає дане число. Це можна зробити за допомогою функції FloatToStr, яка повертає рядкове представлення значення виразу, вказаного в якості параметра функції.
Основні функції перетворення типів
Функція
Опис
Chr(n)
Символ, код якого дорівнює n.
IntToStr(k)
Рядок, який є представленням  цілого k.
FloatToStr(n)
Рядок, що є представленням дійсного n.
FloatToStrF(n,f,k,m)
Рядок, що є зображенням дійсного n. При виконанні функції вказують: f - формат; k - точністm (загальна кількість цифр); m - кількість цифр після десяткової коми. Можливі  наступні значення параметра Формат:
ffGeneral - загальний числовий формат;
ffFixed - фіксований формат;
ffCurrency - грошовий формат.
StrToInt(s)
Ціле, зображенням якого є рядок s.
StrToFloat(s)
Дійсний, зображенням, якого є рядок s.
Round(n)
Ціле, отримане шляхом округленняn n за відомими правилами.
Trunc(n)
Ціле, отримане шляхом відкидання дробової частини n.
Frac(n)
Дробове, що представляє собою дробову частину дійсного п.
Int(n)
Дробове, що представляє собою цілу частину дійсного п.
Найбільш часто програма може отримувати вихідні дані з вікна введення або з поля редагування (Edit компонент). Для перетворення даних в числовий тип використовують відповідну функцію.
Наприклад, для перетворення в дійсний тип використовується оператор:
Funt: = StrToFloat (Edit1.Text);
Основні відомості про змінні, числові типах даних та функцій перетворення типів ми повторили. Тепер переходимо до практичної частини нашого заняття.
Проект «Калькулятор»
Завдання. Створити програму для обчислення суми двох чисел. Вікно програми має виглядати так, як показано на малюнку.

Хід виконання
1. Створіть додаток. Збережіть проект у папці Калькулятор.
2. Створіть Інтерфейс за зразком.
 3. Налаштуйте властивості об'єктів відповідно до таблиці.
Компонент
Властивість
Значення
Form1
Caption
Калькулятор
Label1
Caption
Name
Перше число
EditNum1
Label2
Caption
Name
Друге число
EditNum2
Label3
Caption
Name
Результат
EditRezult3
Edit1
Text
Пусто
Edit2
Text
Пусто
Edit3
Text
Пусто
Button1
Cаption
Обчислити
 4. Написати процедуру обробки клацання на кнопці Обчислити.
Для цього виконайте подвійне клацання на кнопці Обчислити. Це призведе до створення процедури TForm1.Button1Click в розділі implementation:
procedure TForm1.Button1Click(Sender: TObject);
begin
 end;
Зрозуміло, що створена процедура не містить жодної команди. Ваше завдання - заповнити шаблон операторами. Всі команди, зазначені в процедурі між begin  і end, будуть виконані при натисканні на кнопці Обчислити.
У нашому випадку процедура TForm1. Button1Click матиме вигляд:
procedure TForm1.Button1Click(Sender: TObject);
var num1, num2, result: integer;
begin
  num1:=StrToInt(editNum1.text);
  num2:=StrToInt(editNum2.text);
  result:=num1+num2;
  edit3.text:=IntToStr(result);
end;
Зверніть увагу, що були написані всього 5 команд, призначених для вирішення поставленого завдання. Решта тексту у вікні редактора створюється автоматично
Зберегти проект. Перевірте роботу програми. Введіть в перші два поля цілі числа, натисніть кнопку Обчислити. В поле результат повинна відобразитися сума цих чисел.
 На  цьому уроці ми повторили основні елементи мови програмування: змінні, числові типи, основні арифметичні операції і функції, створили найпростіший калькулятор.

Комментариев нет:

Отправить комментарий