Смекни!
smekni.com

Програмування в середовищі Pascal (стр. 5 из 16)

Розділ опису типу в цілому має такий вид:

TYPE <ім’я типу>=<опис типу>;

<ім’я типу – це ім’я, яке буде присвоєно новому типу; <опис типу – визначення нового типу.

До типів, що потребують попереднього визначення належать перерахований тип та тип-діапазон.

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

Опис перерахованого типу має вигляд: TYPE T = (a1, a2 .,an); де Т – ім'я типу; a1, a2 ., an – значення, які може приймати дане цього типу.

Тип-діапазон – це підмножина свого базового типу, в якості якого може виступати різний порядковий тип (крім типу-діапазону, звичайно). Типдіапазон задається межами своїх значень усередині базового типу.

Опис типу «діапазон» має вигляд:

TYPE T = an .. ak; де T – ім'я типу;

an, ak – початкове і кінцеве значення. Вони мають бути одного

порядкового типу.

Приклади:

TYPE T1=(PLUS,MINUS,MULTY,DIVIDE); TYPE T2=2..10;

TYPE T3=’b’..’z’;

Порядок опису решти типів буде наведений нижче.

3.3.2 Константи

Константи можуть бути цілого, дійсного, символьного типу та типу рядок. Тип константи однозначно визначається її значенням і явно не описується.

У зображенні цілихконстант присутній лише знак (необов'язковий) і цифри: 121; +457; -2287.

Дійсні константи записуються в двох формах: основній і напівлогарифмічній (з порядком). Замість коми ставиться десяткова крапка. Замість основи степеня 10 ставиться буква Е, що дозволяє чітко відділити мантису від показника степеня і записати всі символи числа в одному рядку. Незначущий нуль перед десятковою крапкою може бути відкинутий. Знак "+" може бути опущений.

Приклади запису дійсних чисел:

Число Запис в Pascal
2,87 2.87
-0,315 -0.315 або -.315
210000,0 2.1E+5, 2.1E5, 21E4, 210000.
-0,00045 -0.00045, -.00045, -45E-5, -.45E-3

Символьна константа – це будь-який символ, що взятий в апострофи, а рядкова константа – послідовність будь-яких символів (не більше 255), взятих в апострофи:

’a’; ’відповідь:’; ’значення=’;

Можливе двояке використовування констант:

безпосереднє використовування значення константи (літерали);
використовування ідентифікатора константи.

Визначення констант ідентифікаторами здійснюється в розділі опису констант:

CONST < Ім'я константи > = <Значення>;

Приклад:

CONST PI=31.592;

TT=’S’;

A=7; В=’відповідь’;

Тут визначені константи: дійсного (РТ), символьного (ТТ), цілого (А) і рядкового (В) типів.

У Pascal за умовчанням визначені спеціальні константи:

PI=3.14159265.; MAXINT – найбільше ціле число, рівне 32767.

3.3.3 Змінні

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

VAR < Ім’я змінної . < ім'я змінної > : < тип >;

< Тип > – є ідентифікатором (ім'я) типу – стандартного або визначеного раніше користувачем (в розділі TYPE). Допускається замість ідентифікатора типу наводити безпосередній опис типу.

Приклад:

VAR TOP: INTEGER; X, У : REAL;

А: ARRAY[1..10] INTEGER;

B : ARRAY[1..5,1..7] REAL;

У підпрограмах можуть використовуватися змінні, описані в заголовку підпрограми – формальні параметри (див. п. 3.7.3).

3.4 Стандартні функції

У процесі вирішення задач часто виникає необхідність в обчисленні елементарних функцій. Для звернення до функції необхідно у виразі записати ідентифікатор функції і в круглих дужках – аргумент. Аргументами функції можуть бути константи, змінні, функції або вирази. Для тригонометричних функцій кут слід задавати у радіанах. Деякі стандартні функції для роботи з числовими даними перелічені в таблиці 4.

Тип результату функцій ABS(X) і SQR(X) визначається типом аргументу: цілий або дійсний. Результат функцій RANDOM(Х), TRUNC(X) і ROUND(X) має цілий тип. Решта функцій дає дійсний результат.

Для обчислення інших функцій слід використовувати відповідну математичну залежність, наприклад:

xaealn(x)

arcsin(x)

arccos(x)

arcctg(x)

tg(x)

До даних порядкового типу можна також застосовувати такі функції:

Ord(x) – повертає порядковий номер значення х. Для цілих значень ця функція повертає саме значення х, тобто Ord(x) = x. Для даних логічного типу ця функція повертає 0 (false) або 1 (true), для символьних даних функція повертає значення від 0 до 255 – код символу.

Pred(x) – повертає попереднє значення, тобто значення, що відповідає порядковому номеру Ord(x)-1.

Succ(x)– повертає наступне значення, тобто значення, що відповідає порядковому номеру Ord(x)+1.

Для роботи з рядками (даними типу String) можна застосовувати

функції, наведені в таблиці 5.

Таблиця 5 - Функції для роботи з рядками

Функція Призначення
Concat(S1,S2, …, Sn) Функція типу String. Повертає рядок, що являє собою зчеплення (конкатенацію) всіх рядків S1,S2...Sn: Якщо отриманий рядок містить більше 255 символів, вона усікається

(обривається) після 255-го символу

Copy(St,IndX,k) Функція типу String. Створює підрядок: копіює з рядка Stk символів, починаючи із символу з
номером IndX; якщо IndX більше довжини

рядка St, повертається порожній рядок

Pos(Subst,St) Функція типу Integer. Знаходить у рядку St перше входження підрядка Subst і повертає номер позиції, з якої вона починається: якщо підрядок не знайдений, повертається нульове значення
Delete(St,IndX,k) Процедура. Видаляє з рядка St підрядок в k символів, починаючи із символу IndX.
Insert(Subst,St,IndX) Процедура. Вставляє підрядок Subst у рядок St, починаючи із символу з номером IndХ. Якщо отриманий рядок містить більше 255 символів, усі символи після 255-го відкидаються
Length(St) Функція типу Integer. Повертає поточну довжину рядка St.
Str(x,St) Процедура. Перетворить число х у строкову змінну, результат заноситься у рядок St.
Val(St,x,R) Процедура. Перетворить символьну величину типу String з рядка в її чисельне подання й результат перешкодить у змінну х. Якщо рядок записаний з помилкою, то індекс (позиція) невірного символу заноситься до змінної R; у противному випадку R дорівнює нулю

3.5 Вирази

Вирази формуються відповідно до низки правил з констант, змінних, функцій (як стандартних, так і визначених в програмі), знаків операцій і круглих дужок. Дужки використовуються для зміни пріоритетів операцій.

Розрізняються вирази арифметичні, рядкові та логічні.

3.5.1 Арифметичний вираз

В арифметичному виразі можуть використовуватися операнди (змінні, константи і функції) тільки арифметичного типу: цілі або дійсні.

Знаки арифметичних операцій:

"+" (додавання)

"–" (віднімання)

"*" (множення)

"/" (ділення),

DIV (цілочислове ділення),

MOD (залишок від ділення).

Дії виконуються зліва направо з дотриманням наступного старшинства (пріоритету):

а) мультиплікативні операції (* /, DIV, MOD);

в) адитивні операції ( + , – ).

Тип результату виразу залежить від типів операндів, а також операцій:

якщо хоча б один операнд дійсний або використовується операція ділення (/), – вираз має дійсний тип (Real), інакше – цілий (Integer).

Результат операцій DIV і MOD завжди типу INTEGER (цілий).

Аргументи цих операцій теж мають бути цілого типу. Перша з цих операцій повертає цілу частину від ділення, а друга – залишок. Так 7 div 3=2, а 7 mod 3=1.

Приклади.

Математичний запис:

1 +ln 1,3x cos A T ) ;

а)

2x cos Bx -3x sin Bx

б) .

Запис на Pascal:

а) SQRT( 1+LN ( 1.3 * X ) + COS ( А - T ));

б) EXP( X * LN ( 2 ))* COS(B * X ) - EXP( X *LN (3))* SIN (B * X ).

3.5.2 Рядковий вираз

Рядковий вираз утворюється з операндів рядкового (STRING) і символьного (CHAR) типів, над якими допускається тільки одна операція – конкатенація (зчеплення). Ця операція позначається символом ”+”. Результат завжди має тип STRING (рядок).

Приклад:

А:=’TURBO’;

B:=’PASCAL’;

K1:=A+’-’+B;

У результаті змінна K1 отримає значення: ’TURBO-PASCAL’

3.5.3 Логічний вираз

Логічний вираз часто називають умовою. Для його побудови використовуються операнди логічного типу: змінні або функції логічного (BOOLEAN) типа або відношення.

Відношення призначені для порівняння двох величин (вони мають бути порівнянних типів). Результат порівняння має логічний тип. Допустимі 6 операцій відношення: