3. Типове данни
21
*
ABS(x) - абсолютна стойност на аргумента;
*
SQR(x) - 2-ра степен на аргумента.
Следните функции могат да имат аргумент както от реален, така и от цял тип, но
резултат им винаги е реален:
*
SQRT(x) - корен квадратен от аргумента;
*
LN(x) - натурален логаритъм от аргумента;
*
EXP(x) - експонента от аргумента;
*
SIN(x) - синус от аргумента (даден в радиани);
*
COS(x) - косинус от аргумента (даден в радиани);
*
ARCTAN(x) - аркустангенс в радиани от аргумента;
*
INT(x) - цялата част на аргумента;
*
FRAC(x) - дробната част на аргумента.
Ако един от операндите на двуместна операция е реално а другият е цяло число,
то цялото число първо се превръща в реално и след това се извършва операцията.
Изобщо във всички случаи, когато се очаква реално число (константа или променлива),
а е използвано цяло, то цялото се превръща в реално, преди да се извърши действието.
Затова е възможно на променлива от реален тип да се дава целочислена стойност
(преобразуването се прави автоматично). Обратното превръщане не се прави
автоматично. За целта в Pascal има дефинирани две стандартни функции, превръщащи
реално в цяло число:
*
TRUNC(x) - превръща реалното число x в цяло чрез отрязване на дробната
част;
*
ROUND(X) - превръща реалното число x в цяло чрез закръгляване.
Ако стойността на аргумента x във функциите TRUNC и ROUND е извън
целочисления интервал, определен от LongInt, то по време на изпълнение на програмата
се съобщава за настъпила грешка.
3.1.7. Стандартните типове BYTE, WORD, LONGWORD
В UniPascal са въведени следните стандартни типове: BYTE, WORD, LONGWORD.
Те не са целочислени типове, а са аналог на подобни типове от езика Modula-2. Тези три
типа са напълно съвместими с типовете, които имат дължина съответно 1, 2 и 4 байта.
Над тези типове са дефинирани следните операции:
*
AND - побитово (byte($c3) and byte($66) = byte($42));
*
OR - побитово (byte($a5) or byte($5a) = byte($ff));
*
XOR - побитово (byte($c3) xor byte($66) = byte($a5));
*
= - сравнение за равенство;
*
<> - сравнение за неравенство;
*
:= - даване на стойност.
Други операции над тези типове не са дефинирани и при опит за използване се
индицира грешка по време на компилация. Ако се използват променливи от тези типове
в стандартната процедура write (за текстов файл), стойността им се отпечатва в
шестнадесетична бройна система. Не е разрешено използването на променливи от тези
типове в стандартната процедурата read. Ако е наложително, използвайте
преопределяне на типа (Type Cast).
<<  <  GO  >  >>

Вернуться к началу сайта