Процедура Val

Сиґнатура цієї процедури містить три параметри, один із яких є параметром-аргументом, а інші два – параметри-значення.

Procedure val (s:string;var t:real; var k:integer;).Увага! Другий параметр може бути і цілочисельним.

Дана процедура засилає у числову змінну t числовий образ рядка s. Якщо рядок s складається тільки з цифрових символів (образ цілого числа), чи між цифрами є одна кома (образ дійсного числа), тоді така дія можлива і змінній k надається значення 0. Інакше зміннаk отримає значення, котре відповідає порядковому номеру першого невірного символу.

Приклад 3.10 Дано рядок символів ‘12t56’. Потрібно визначити номер символу у даному рядку, який не є цифрою. Для цього застосуємо процедуру Val, для якої використаємо оголошені нами параметри w, e: integer. Останній параметр е, потрібний для того, щоб визначити порядковий номер «невірного» символу. Тож процедура із фактичним параметром буде такою:

Val(‘12t56’,w,e). На рисунку 3.18 запропонована реалізація коду для прикладу 3.10.

 

 

Рисунок 3.18 Програмна і візуальна реалізація прикладу 3.10

 

3.4 Функції перетворення типів

 

Існує велика множина стандартних функцій, завдяки яким відбувається перетворення з одного типу у інший, їх ще іноді називають функціями зведення типів. До таких наприклад, відносять функцію round(a:real):integer – яка зводить дійсне число до цілочисельного шляхом заокруглення дійсного параметра а, або функцію trunk(a:real):integer – яка теж зводить дійсне число до цілочисельного щляхом відкидання дробової частини від дійсного параметра а. У межах цієї лекції розглянемо кілька стандартних функцій перетворення типів, які мають відношення до типу string.

 

3.4.1 Функція IntToStr

 

Cиґнатура функції містить один цілочисельний параметр. FunctionIntToStr (n:integer):string – перетворює цілочисельне значення параметра n у рядковий аналог значення функції.

Приклад 3.11. Дано змінна f, якій надано значення 123. Для того, щоб її відобразити у полі редагування Edit1, треба застосувати перетворення із цілочисельного типу у рядковий. Для розв’язання прикладу можна піти трьома відомими нам шляхами.

1. Написати такий програмний рядок Edit1.Text:=’123’;

2. Застосувати процедуру str(f,s), якщо vars:string і далі написати рядок: Edit1.Text:=s;

3. Застосувати функцію IntToStr:

Edit1.Text:= IntToStr(f);

 

3.4.2 Функція StrToInt

 

Cиґнатура функції містить один рядковий параметр. FunctionStrToInt (n:string):integer – перетворює рядкове значення параметра n у його цілочисельний аналог значення функції.

Приклад 3.12. Дано рядок ‘124’. Потрібно створити його числовий цілочисельний образ. Для цього можемо застосувати вказану функцію: StrToInt(‘124’);

 

3.4.3 Функція FloatToStr

 

Дія функції аналогічна до IntToStr, тільки параметром її є змінна типу real. Термін Floatпоходить від англійського –«плавати». Тобто означає дійсний тип з плаваючою комою, наприклад науковий формат: 4.4Е2 є предчтвником дійсного числа у форматі з плаваючою комою. У звичайному форматі це число 440.

 

3.4.4 Функція StrToFloat

 

Це дійсний аналог цілочисельної функції StrToInt.

FunctionStrToFloat(n:string):real - перетворює рядкове значення параметра n у його дійсний аналог значення функції.

Наприклад програмний рядок StrToFloat(Edit1.Text)передасть у програму число дійсного типу, яке користувач запише у вигляді якоїсь послідовності у поле редагування Edit1.