На попередньому уроці ми розповідали про етапи створення програми в середовищі lazarus на прикладі вашої першої програми.
На цьому уроці ви познайомитеся з основними елементами мови програмування: змінними, їх типами, основними операціями і функціями.
Також ви створите найпростіший калькулятор, який буде виконувати додавання цілих чисел, введених з клавіатури.
Дані в мові Free Pascal
Для розв'язання завдань в будь-якій програмі виконується обробка будь-яких даних. Дані зберігаються в пам'яті комп'ютера і можуть бути самих різних типів: цілі і дійсні числа, символи, рядки, масиви.
Типи даних визначають спосіб зберігання чисел або символів в пам'яті комп'ютера. Вони задають розміри комірки, в яку буде записано те чи інше значення, визначаючи тим самим його максимальну величину або точність задання.
Ділянка пам'яті (комірка), в якій зберігається значення певного типу, називається змінною. У змінної є ім'я (ідентифікатор), тип і значення.
Ім'я служить для звернення до області пам'яті, в якій зберігається значення.
Під час виконання програми значення змінної можна змінити. У 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 |
Перше число |
Label2 |
Caption |
Друге число |
Label3 |
Caption |
Результат |
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 команд, призначених для вирішення поставленого завдання. Решта тексту у вікні редактора створюється автоматично
Зберегти проект. Перевірте роботу програми. Введіть в перші два поля цілі числа, натисніть кнопку Обчислити. В поле результат повинна відобразитися сума цих чисел.
На цьому уроці ми повторили основні елементи мови програмування: змінні, числові типи, основні арифметичні операції і функції, створили найпростіший калькулятор.
Наступний урок: «Введення і виведення даних».