Тема. Поняття
змінної.
Оголошення
змінної. Типи
даних.
Оператори
введення і
виведення
даних.
Мета. Ознайомитись
з типами
величин, що
використовують
при
складання
програм.
Оволодіти методами
ініціалізації
типів
змінних і констант.
Формувати
практичні
навички
опису
величин
інформаційних
задач. Розвивати
алгоритмічне
мислення..
Використана
література.
1.
Глинський
Я. М., Анохін В.
Є., Ряжська
В.А – Паскаль,
Львів 2005.
2.
Електронний
підручник Borland Delphi.
3.
Я.
М. Глинський
–
Інформатика,
книжка 1.
Львів 2002
Зміст.
§ Рядки
3. Оператори
введення і
виведення
даних.
Типи
величин Delphi.
Стандартні
ф-ї. Види операторів.
Процедури введення і виведення
даних.
типи даних:
числові
цілі
|
Назва типу |
Діапазон значень |
|
Byte |
0...255 |
|
Shorting |
-128...127 |
|
Word |
0...65535 |
|
Integer(основний тип) |
-32768...32768 |
|
Longint |
-2147483648...2147483647 |
типи даних:
числові
дійсні
|
Назва типу |
Діапазон |
|
Single |
1.5∙10-45–3.4∙1038 |
|
Real (основний тип) |
2.9∙10-39–1.7∙1038 |
|
Double |
5.0∙10-324–1.7∙10308 |
|
extented |
3.4∙10-4951–1.1∙104932 |
Символьний тип (char) — це множина
символів
кодової таблиці комп'ютера
ASCII. Символьна
стала — це
символ,
взятий у
лапки,
наприклад,'а','5','%'.
Логічний тип (boolean) характеризується двома значеннями:
false (хибність)
та true (істинність).
Рядковий тип даних
(string). Значенням
змінної
рядкового
типу може
бути довільна
послідовність
символів.
Види операторів.
Команда
присвоєння
має вигляд
|
<ім'я змінної> := <вираз>;
|
Наприклад:
p:=a+b+c;
p:=p/2;
label1.caption:=’Сарни’;
Основні математичні
операції
|
Пріоритет |
Операції |
Зміст операції |
|
1 |
+,
– |
Присвоєння знаку Додавання,
віднімання
|
|
2 |
*,
/ div,
mod |
Множення, ділення Цілочислові
операції |
|
4 |
=,<>,<,>,<=,>= |
Відношення (порівняння) |
Результатом
операції
div є ціла частина від ділення
двох
чисел, а mod - остача,
наприклад:
(9-2) div 2=3;
7 mod 2 = 1.
Основні стандартні
функції
|
Функція |
Тип аргументу |
Тип результату |
Математичний запис, коментар |
|
abs(x) |
integer, real |
integer, real |
|x| |
|
arctan(x) |
integer, real |
real |
Arctgx |
|
cos(x) |
integer, real |
real |
Cosx |
|
sin(x) |
integer, real |
real |
Sinx |
|
exp(x) |
integer, real |
real |
ex |
|
ln(x) |
integer, real |
real |
lnx |
|
sqrt(x) |
integer, real |
real |
|
|
sqr(x) |
integer, real |
integer, real |
x2 |
|
Round(x) |
real |
Integer |
Заокруглює число х до цілого |
|
Random(x) |
Integer |
Integer |
Генерує випадкове число з діапазону від 0 до х |
Функції перетворення
даних.
|
Функція |
Значення функції |
|
Chr(n) |
Символ, код якого рівний n |
|
IntToStr
(k) |
рядок, являє зображення цілого k |
|
FloatToStr
(n) |
Рядок, являє зображення дійсного n |
|
FloatToStrF(n, f , k,m) |
Рядок, являє зображення дійсного n. При визові функції вказують: f — формат (спосіб зображення, (ffGeneral
– загальний числовий, ffExponent
– науковий, ffFixed
– з десятковою крапкою, ffCurrency
– грошовий формат)); k — точність (потрібна кількість цифр); m — кількість цифр після коми. |
|
StrToInt
(s) |
Ціле, значенням якого є рядок s |
|
StrToFloat
(s) |
Дійсне, значенням якого є рядок s |
У
математиці
змінні класифікуються
у
відповідності
до їх
головних характеристик.
Здійснюється
строге розмежування
між дійсними,
комплексними
та логічними
змінними, між
змінними, що
є окремою
змінною та
множиною
змінних і т.і.
При обробці
даних на ЕОМ
така
класифікація
є ще більш
суттєвою. У
кожній
алгоритмічній
мові кожна
константа, змінна,
вираз чи
функція є
певного типу.
У Pascal
існує
правило: тип
явно
вказується при
описі
змінної чи
функції, який
передує їх
використанню.
Концепція
типу змінних
мови Pascal
має такі
головні
властивості:
@ будь-який
тип даних
визначає
множину значень,
до якого
належить
константа,
які можуть
приймати
змінні та
функції, або
генерувати
операція чи
функція;
@ тип
значення, що
задається
константою,
змінною чи
виразом
можна
визначити за
їх виглядом
чи описом;
@ кожна
операція чи
функція
вимагає
аргументів
фіксованого
типу і видає
результат фіксованого
типу.
Тип
визначає:
@ можливі
значення
змінних,
констант,
функцій,
виразів, що
належать
даному типу;
@ внутрішню
форму
подання
даних в ЕОМ;
@ операції
та функції,
які можуть
виконуватись
з величинами
даного типу;
У мові Delphi
існують
скалярні та
структуровані
типи даних.
До скалярних
типів
стосуються
стандартні
типи і типи,
що
визначаються
користувачем.
Стандартні
@ цілі
@ дійсні
@ символьний
@ логічний
@ адресний
Типи, що
визначаються
користувачем
@ перерахований
@ інтервальний
Структуровані
типи
@ масиви
@ множини
@ записи
@ файли
@ рядки
символів
Крім
перерахованих
є ще два типи
даних:
@ процедурний
@ об’єктний
З
групи
скалярних
типів можна
виділити
порядкові
типи, які
характеризуються
такими
властивостями:
@ всі
можливі
значення
порядкового
типу є обмеженою
впорядкованою
множиною
@ до
довільного
порядкового
типу можна
застосувати
стандартну
функцію Ord,
яка, як
результат,
повертає
порядковий
номер
конкретного
значення у
даному типі
@ до
довільного
порядкового
типу можна
застосувати
стандарті
функції Pred
та Succ, які
повертають,
як результат,
наступне або
попереднє
значення відповідно
@ до
довільного
порядкового
типу можна
застосувати
стандартні
функції Low
та High, які
повертають
найбільше та
найменше значення
величин
даного типу
Стандартні
типи даних.
Розглянемо
детальніше
найбільш вживані
стандартні
типи змінних.
До них стосуються
цілі типи,
дійсні,
символьний
та адресний.
Визначають
константи,
змінні та
функції, значення
яких
реалізується
множиною
цілих чисел,
що
припустимі у
даній ЕОМ.
|
Назва
типу |
Діапазон
значень |
|
Byte |
0...255 |
|
Shorting |
-128...127 |
|
Word |
0...65535 |
|
Integer(основний
тип) |
-32768...32768 |
|
Longint |
-2147483648...2147483647 |
Дійсні типи
визначають
ті дані, які
реалізуються
підмножиною
дійсних
чисел, що
припускається
у даній ЕОМ.
Всі дійсні
числа можуть
бути як від’ємними,
так і
додатними.
|
Назва типу |
Діапазон |
|
Single |
1.5∙10-45–3.4∙1038 |
|
Real (основний
тип) |
2.9∙10-39–1.7∙1038 |
|
Double |
5.0∙10-324–1.7∙10308 |
|
extented |
3.4∙10-4951–1.1∙104932 |
Логічний
тип (або Boolean
– булевський)
визначає ті
дані, які
можуть
приймати
логічні
значення True
або False.
До булевських
операндів
можна
застосовувати
логічні
операції:
not
and or xor
Логічний
тип
визначений
таким чином,
що False < True.
Це дозволяє
застосовувати
до булевських
операндів
всі операції
відношення.
Символьний
тип, або тип Char,
визначає
впорядковану
сукупність
символів,
припустимих
у даній ЕОМ.
Значення
символьної
змінної або
константи –
це один символ
з припустимого
набору.
Символьну
константу
можна
записати у
програмі
трьома
методами:
@ як
один символ,
розміщений
між
апострофами (
‘F’ ‘a’
‘3’
‘!’ )
@ за
допомогою
конструкції
#N, де N – код
відповідного
символу,
причому
значення
коду має бути
у межах 0..255 ( #48 #55 #128)
@ за
допомогою
конструкції
вигляду ^M, де M –
код
відповідного
керуючого
символу + 64
До величин
символьного
типу можна
застосовувати
всі операції
відношення.
Стандартні
функції
Для величин
символьного
типу
визначені дві
функції перетворення:
Ord(C) –
повертає
порядковий
номер символа
С в наборі
символів ( Ord
(‘a’) = 97 )
Chr(K) –
повертає
символ з
порядковим
номером К ( Chr
(97) = ’a’ )
До
аргументів
символьного
типу можна
застосовувати
функції, які
визначають:
Pred (C) – попереднії
символ ( Pred (‘c’) = ’b’
)
Succ (C) -
наступний
символ (Succ
(‘3’) = ’2’ )
За
відсутності
попереднього
та наступного
символу
значення цих
функцій не
визначено.
Для
літер з
інтервалу ‘a’ .. ‘z’
можна
застосовувати
функцію
UpCase(C), котра
переводить
маленькі
літери у
великі ( UpCase (‘f’) = ‘F’ )
Тип
констант
визначається
за їх
виглядом: Константи
цілого типу –
це цілі
числа, що не
мають
десяткової
точки,
константи
дійсного
типу – дійсні
числа,
логічні
константи – True або False,
символьні –
або рядки
довжиною у
один символ, або
конструкції
вигляду #K або ^K
та ін.
Переліковий тип
є обмеженою
впорядкованою
послідовністю
однотипних
скалярних
констант, що
і складають
цей тип.
Значення
кожної
константи
задається її
ім’ям. Імена
окремих
констант
відокремлюють
одне від
одного
комами, а вся
сукупність констант,
що складає переліковий
тип,
обмежується
круглими
дужками.
Програміст
об’єднує до
однієї групи
за якоюсь
ознакою всю
сукупність
значень, що
складають переліковий
тип.
Наприклад, переліковий
тип turn
(поворот)
об’єднує
скалярні
значення left,
right; cube
(кубик)
об’єднує
значення с1, с2,
с3, с4, с5, с6; move
(рух)
об’єднує
значення left,
right, backward, forward.
Переліковий тип
описується у
блоці опису
типів, що починається
зі
службового
слова type.
Наприклад:
Type
turn = ( left, right );
cube = ( c1, c2, c3, c4, c5, c6 );
Кожне
значення є
константою
свого типу і
може
належати
тільки
одному з
перерахованих
типів, що
задані у
програмі.
Наприклад
типи turn не
може бути
визначеними
у одній
програмі з
типом move
через те, що
обидва типи
містять
однакові константи
left та right.
Далі, після
опису типу,
його можна
використовувати,
як звичайний
стандартний
тип для опису
змінних.
Впорядкована
послідовність
значень, що
становить переліковий
тип,
автоматично
нумерується,
починаючи з 0
і далі через 1.
Звідси
випливає, що
до перелікових
змінних та
констант
можна
застосовувати
стандартні
функції Pred,
Succ та Ord.
Змінні перелікового
типу не
можуть бути
елементами
списків
входу або
виходу.
Відтинок
довільного
порядкового
типу може
бути
визначеним
як інтервальний
або
обмежений
тип. Відтинок
задається
діапазоном
від
найменшого
до
найбільшого
значення
констант,
розділених
двома крапками
“..”.
Константи
можуть
використовуватись
цілого,
символьного,
логічного (булевського)
та перелікового
типів.
Скалярний
тип, на якому
базується відтинок,
називається
базовим
типом.
Найменше та
найбільше
значення
констант називають
нижньою та
верхньою
границями
відтинка, що
визначають інтервальний
тип. Нижня
границя має
бути меншою
за верхню.
Наприклад:
Type
interval = 1..100;
Над
змінними інтервального
типу можуть
виконуватись
всі операції
та застосовуватись
всі
стандартні
функції стосовні
відповідного
базового
типу.
При
застосуванні
у програмах інтервальний
типів даних
можу
здійснюватись
контроль над
тим, щоб
значення
змінних не
виходили за
межі,
встановлені
у описі інтервального
типу.
Ініціалізація
змінних.
У
відкомпільованій
програмі
(тобто робочій
програмі,
файл якої має
розширення ехе) для
всіх змінних
виділено
місце у
пам’яті та
всім змінним
присвоєно
нульове
значення.
Для задання
початкових
значень
(ініціалізація
змінних) Delphi
Pascal, як і всі
попередні
версії Pascal,
дозволяє
присвоювати
значення
змінним
одночасно з
їх описом.
Для цього
використовується
конструкція
Ім’я_змінної
: тип =
значення;
Наприклад
i : integer = 5;
Зауважимо,
що тип
змінної та
тип значення
має
співпадати.
Змінні перелікового
типу можуть
бути описані
у блоці
(розділі)
опису
змінних.
Наприклад:
Var
Turn : ( left, right );
При
цьому імена
типів
відсутні, а
змінні
визначаються
сукупність
значень, що складають
даний переліковий
тип. До
змінних перелікового
типу можна
застосовувати
оператор
присвоєння.
Turn :=
left;
Особливе
місце у Delphi
займають
масиви
символів, або
рядки – String.
Стандартні
змінні
елементів
форми, що використовуються
для введення
чи виведення інформації,
такі як Label.Caption,
Form.Caption, Edit.Text, Button.Caption та інші
мають
рядковий тип.
Символьний
рядок може
бути або
рядковою константою,
або рядковою
змінною.
Рядкова константа,
або рядок, є
сукупністю
символів, обмеженою
апострофами.
Рядок –
елементарна
конструкція
мови Delphi Pascal.
Рядкові
константи
можуть
входити до
складу
виразів. Як і
числові
константи,
вони можуть
бути
описаними у
блоці опису
констант.
Наприклад,
якщо рядок
міститиме не
більше за 50
символів, то
його тип буде
визначений,
як
Type
S : string [50];
Довжина
рядку не може
перевищувати
255 символів.
Тому, якщо ми
не вказуємо
максимальну довжину,
то вона
автоматично
вважається 255. Тобто
при описі
Type
S : string [255];
AS : string ;
типи S та AS
будуть
повністю
ідентичними.
Якщо розмір
текстового
рядку при
присвоєнні
перевищує
допустиму
описану
кількість
символів для
даної
змінної, то Delphi збереже
тільки
стільки
перших
символів рядку,
яка
кількість
вказана при
описі змінної
(типу).
Особливістю
змінних типу String є те, що
до них можна
звертатись,
як до скалярних
змінних, так
і як до
масивів. Наприклад:
var
SA,S: string;
…
begin
…
S := ’Перша спроба’;
SA := ‘роботи
з Delphi’;
SA := S+SA;
…
S[2] := ’a’;
S[3] := SA[5];
…
Зазначимо,
що при
використанні
рядкової змінної,
як масиву
символів,
нижня
границя індексу
дорівнює 1.
Крім того 0-й
елемент
рядку
містить інформацію
про довжину
всього рядка
у вигляді
конструкції
#N, де N – число у
діапазоні від
0 до 255.
Операції
та функції.
Для
отримання
інформації
про довжину
рядку, до
змінних
рядкового
типу можна
застосовувати
функцію length
(s), де s – рядкова
змінна.
Також, крім
операції
присвоєння,
для рядків
визначені
операції
порівняння
та приєднання
(конкатенації).
= < > <> >= <= +
Для
порівняння
рядків можна
застосовувати
всі операції
відношення.
Порівняння
рядків
здійснюється
посимвольно,
починаючи з
першого
символу.
Рядки вважаємо
однаковими,
якщо вони
мають
однакову довжину
та
співпадають посимвольно.
Рядки
можуть
виступати
частинами
списку вводу-виводу,
при цьому
використовується
ім’я рядку
без індексів.
При
введенні
рядкових
змінних,
кількість символів
у рядку може
бути як
більше, ніж
описана
довжина
рядку
(розглянуто
вище), так і
менше. У
останньому
випадку
символи, що
були введені,
розташуються
на початку,
решта ж рядку
буде
заповнена
пропусками.
Ініціалізація.
Ініціалізація
рядків може
здійснюватись
за допомогою
типізованих
констант:
Const
CompName: string[9]
= ‘Dual Xeon’;
Тест-контроль
Тема
1. Типи даних.
Види
операторів.
Функції.
1. З якого
службового
слова
розпочинається
розділ опису
констант?
А. Begin
Б. Var
В. Const
Г. End
Д. Label
2. Якого
типу даних не
має у Delphi?
А.
Числовий
Б.
Рядковий
В.
Символьний
Г.
Логічний
Д.
Змінний
3. Яке з
слів
відповідає
рядковому
типу даних?
А. String
Б. Integer
В. Real
Г. Short
Д. Char
4. Який із
запропонованих
типів даних
не є цілочисельним?
А. Integer
Б. Byte
В. Shorting
Г. Word
Д. Real
5. Який
знак
відповідає
вказівці
присвоєння
А =:
Б ><
В <>
Г ^
Д :=
6. Який
буде
значення у
внаслідок
виконання математичної
операції у = (6 - 9)/3+5?
А 5
Б 4
В
–3/8
Г 6
Д 3/8
7. Що
означає
запис Label1.Width:=50?
А.
Текстовий
напис 50
Б.
Значення
текстового
поля рівне 50
В.
Висота форми
рівна 50
Г.
Ширина
текстового
напису рівна
50
Д
Відступ від
верхнього
краю форми 50.
8. Який
результат
операції 17div3?
А. 6
Б. 2
В. 5
Г. 4
Д. 3
9. Який
результат
операції 23 mod
6?
А. 3
Б. 4
В. 5
Г. 6
Д. 7
10. Яка з
функцій
відповідає
модулю?
А. Succ
Б. Abs
В. Sqr
Г. Sqrt
Д. Exp
11. Чому
рівне
значення
виразу Sqrt(sqr(7))?
А. 7
Б. 14
В. -7
Г 49
Д. 21
12. Чому
рівне
значення
виразу round(6.7)?
А. 6
Б. 7
В. 0.7
Г. 3
Д. 1
13. Яка з
функцій
перетворює
рядок у ціле
число?
А. Chr
Б. IntToStr
В. FloatToStr
Г. StrToInt
Д. Random
14. Яка з
функцій
перетворює
дійсне число
у рядок?
А. Chr
Б. IntToStr
В. FloatToStr
Г. StrToInt
Д. Random
15. Що
означає
запис А := StrToInt(Edit1.text)?
А. Змінна А є
цілим числом
списаним з
текстового
поля.
Б. Значення
змінної А
відображається
у текстовому
полі.
В.
Змінна А
набуває
значення
текстового
напису.
Г.
Змінна А з
цілого числа
перетворюється
на рядок.
16. Змінна
це – …?
17.
Опишіть
мовою Delphi
дані умови
задачі:
скласти
програму
знаходження
периметру
прямокутника,
якщо одна з його
сторін рівна
18.
Перепишіть
математичний
вираз на мову
delphi -
.
19. Яке
призначення
має функція random?
20. Яке призначення
має функція
StrToFloat (s)
Тест-контроль
Тема
1. Типи даних.
Види
операторів.
Функції.
1. З якого
службового
слова
розпочинається
розділ опису
змінних?
А. Begin
Б. Var
В. Const
Г. End
Д. Label
2. Якого
типу даних не
має у Delphi?
А.
Числовий
Б.
Рядковий
В.
Змінний
Г.
Логічний
Д.
Символьний
3. Яке з
слів
відповідає
логічному
типу даних?
А. String
Б. Integer
В. Boolean
Г. Short
Д. Char
4. Який із
запропонованих
типів даних
не є дійсним?
А. Single
Б. Real
В. Double
Г. extented
Д. Char
5. Який
знак
відповідає
вказівці
присвоєння
А =:
Б ><
В <>
Г ^
Д :=
6. Який
буде
значення у
внаслідок
виконання математичної
операції у = (7 - 11)/2+3?
А 5
Б 4
В –4/5
Г 1
Д 4/5
7. Що
означає
запис Buuton1.Height:=35?
А.
Назва кнопки
35
Б.
Кнопка
набуває
значення 35
В.
Ширина форми
рівна 35
Г.
Висота
кнопки рівна
35
Д
Відступ від
верхнього
краю форми 35.
8. Який
результат
операції 19div4?
А. 6
Б. 2
В. 5
Г. 4
Д. 3
9. Який
результат
операції 13 mod
7?
А. 3
Б. 4
В. 5
Г. 6
Д. 7
10. Яка з
функцій
відповідає
модулю?
А. Succ
Б. Abs
В. Sqr
Г. Sqrt
Д. Exp
11. Чому
рівне
значення
виразу Sqrt(sqr(9))?
А. 81
Б. 18
В. -9
Г 9
Д. 3
12. Чому рівне
значення
виразу round(7.6)?
А. 6
Б. 7
В. 0.7
Г. 3
Д. 8
13. Яка з
функцій
перетворює
рядок у ціле
число?
А. Chr
Б. IntToStr
В. FloatToStr
Г. StrToInt
Д. Random
14. Яка з
функцій
перетворює
дійсне число
у рядок?
А. Chr
Б. IntToStr
В. FloatToStr
Г. StrToInt
Д. Random
15. Що
означає
запис А := StrToInt(Edit1.text)?
А. Змінна А є
цілим числом
списаним з
текстового
поля.
Б. Значення
змінної А
відображається
у текстовому
полі.
В.
Змінна А
набуває
значення
текстового
напису.
Г.
Змінна А з
цілого числа
перетворюється
на рядок.
16. Змінна
це – …?
17.
Опишіть
мовою Delphi
дані умови
задачі:
скласти
програму
знаходження
гіпотенузи
трикутника,
якщо один з його
катетів
рівний
18.
Перепишіть
математичний
вираз на мову
delphi -
.
19. Яке
призначення
має функція random?
20. Яке призначення
має функція
StrToInt (s)