Тема. Поняття змінної. Оголошення змінної. Типи даних. Оператори введення і виведення даних.

Мета. Ознайомитись з типами величин, що використовують при складання програм. Оволодіти методами ініціалізації типів змінних і констант. Формувати практичні навички опису величин інформаційних задач. Розвивати алгоритмічне мислення..

 

Використана література.

1.      Глинський Я. М., Анохін В. Є., Ряжська В.А ­– Паскаль, Львів 2005.

2.      Електронний підручник Borland Delphi.

3.      Я. М. Глинський – Інформатика, книжка 1. Львів 2002

 

Зміст.

1.     Концепція типу даних

2.     Класифікація типів даних

§  Цілі типи

§  Дійсні типи

§  Логічний тип

§  Символьний тип

§  Переліковий тип

§  Інтервальний тип

§  Рядки

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

 


1. Концепція типу даних.

 

          У математиці змінні класифікуються у відповідності до їх головних характеристик. Здійснюється строге розмежування між дійсними, комплексними та логічними змінними, між змінними, що є окремою змінною та множиною змінних і т.і.

          При обробці даних на ЕОМ така класифікація є ще більш суттєвою. У кожній алгоритмічній мові кожна константа, змінна, вираз чи функція є певного типу.

          У 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 дані умови задачі: скласти програму знаходження периметру прямокутника, якщо одна з його сторін рівна 5 см.

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 дані умови задачі: скласти програму знаходження гіпотенузи трикутника, якщо один з його катетів рівний 5 см.

18. Перепишіть математичний вираз на мову delphi - .

19. Яке призначення має функція random?

20. Яке призначення має функція StrToInt (s)