Смекни!
smekni.com

Основные понятия алгоритмического языка (стр. 2 из 10)

одну и ту же величину в памяти ЭВМ как принадлежащую разным типам.

Для этого используется конструкция

Имя_Типа(переменная или значение).

Напрмер,

Integer('Z')

представляет собой значение кода символа 'Z' в двухбайтном представ-

лении целого числа, а

Byte(534)

даст значение 22, поскольку целое число 534 имеет тип Word и занима-

ет два байта, а тип Byte занимает один байт, и в процессе приведения

старший байт будет отброшен.

5. С Т А Н Д А Р Т Н Ы Е Т И П Ы

Д А Н Н Ы Х

К стандартным относятся целые, действительные, логические,

символьный и адресный типы.

ЦЕЛЫЕ типы определяют константы, переменные и функции, значения

которых реализуются множеством целых чисел, допустимых в данной ЭВМ.

тип диапазон значений требуемая память

__________________________________________________________

Shortint -128 .. 127 1 байт

Integer -32768 .. 32767 2 байта

Longint -2147483648 .. 2147483647 4 байта

Byte 0 .. 255 1 байт

Word 0 .. 65535 2 байта

__________________________________________________________

Над целыми операндами можно выполнять следующие арифметические

операции: сложение, вычитание, умножение, деление, получение остатка

от деления. Знаки этих операций:

+ - * div mod

Результат арифметической операции над целыми операндами есть вели-

чина целого типа. Результат выполнения операции деления целых величин

есть целая часть частного. Результат выполнения операции получения

остатка от деления - остаток от деления целых. Например:

17 div 2 = 8, 3 div 5 = 0.

17 mod 2 = 1, 3 mod 5 = 3.

Операции отношения, примененные к целым операндам, дают результат

логического типа TRUE или FALSE ( истина или ложь ).

В языке ПАСКАЛЬ имеются следующие операции отношения: равенство =,

неравенство <>, больше или равно >=, меньше или равно <=, больше >,

меньше < .

К аргументам целого типа применимы следующие стандартные (встроен-

ные) функции, результат выполнения которых имеет целый тип:

Abs(X), Sqr(X), Succ(X), Pred(X),

и которые определяют соответственно абсолютное значение Х, Х в квад-

рате, Х+1, Х-1.

Следующая группа стандартных функций для аргумента целого типа да-

ет действительный результат:

Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X).

Эти функции вычисляют синус, косинус и арктангенс угла, заданного

в радианах, логарифм натуральный, экспоненту и корень квадратный со-

ответственно.

Результат выполнения функции проверки целой величины на нечетность

Odd(X) имеет значение истина, если аргумент нечетный, и значение

ложь, если аргумент четный:

X=5 Odd(X)=TRUE , X=4 Odd(X)=FALSE.

Для быстрой работы с целыми числами определены процедуры:

Inc(X) X:=X+1

Inc(X,N) X:=X+N

Dec(X) X:=X-1

Dec(X,N) X:=X-N

ДЕЙСТВИТЕЛЬНЫЕ типы определяет те данные, которые реализуются

подмножеством действительных чисел, допустимых в данной ЭВМ.

Тип Диапазон Количество цифр Требуемая

значений мантиссы память (байт)

---------------------------------------------------------------

Real 2.9e-39 .. 1.7e+38 11 6

Single 1.5e-45 .. 3.4e+38 7 4

Double 5.0e-324 .. 1.7e+308 15 8

Extended 3.4e-4932 .. 1.1e+4932 19 10

Comp -9.2e+18 .. 9.2e+18 19 8

---------------------------------------------------------------

Тип Real определен в стандартном ПАСКАЛЕ и математическим сопро-

цессором не поддерживается.

Остальные действительные типы определены стандартом IEEE 457 и ре-

ализованы на всех современных компьютерах.

Для их использования при наличии сопроцессора или при работе на

ЭВМ типа 80486 необходимо компилировать программу с ключом {$ N+}, а

при отсутствии сопроцессора - с ключами {$N-,E+}.

Тип Comp хотя и относится к действительным типам, хранит только

длинные целые значения.

Над действительными операндами можно выполнять следующие арифмети-

ческие операции, дающие действительный результат:

сложение + , вычитание - , умножение * , деление / .

К величинам действительного типа применимы все операции отношения,

дающие булевский результат.

Один из операндов, участвующих в этих операциях, может быть целым.

К действительным аргументам применимы функции, дающие действитель-

ный результат:

Abs(X), Sqr(X), Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X),

Sqrt(X), Frac(X), Int(X), Pi.

Функция Frac(X) возвращает дробную часть X, функция Int(X) - целую

часть X.

Безаргументная функция Pi возвращает значение числа Пи действи-

тельного типа.

К аргументам действительного типа применимы также функции

Trunc(X) и Round(X),

дающие целый результат. Первая из них выделяет целую часть действи-

тельного аргумента путем отсечения дробной части, вторая округляет

аргумент до ближайшего целого.

ЛОГИЧЕСКИЙ тип (Boolean) определяет те данные, которые могут при-

нимать логические значения TRUE и FALSE.

К булевским операндам применимы следующие логические операции:

not and or xor.

Логический тип определен таким образом, что FALSE < TRUE. Это поз-

воляет применять к булевским операндам все операции отношения.

В ТУРБО ПАСКАЛЬ введены еще разновидности логического типа:

ByteBool, WordBool и LongBool, которые занимают в памяти ЭВМ один, два

и четыре байта соответственно.

СИМВОЛЬНЫЙ тип (Char) определяет упорядоченную совокупность симво-

лов, допустимых в данной ЭВМ. Значение символьной переменной или

константы - это один символ из допустимого набора.

Символьная константа может записываться в тексте программы тремя

способами:

-как один символ, заключенный в апострофы, например:

'A' 'a' 'Ю' 'ю';

-с помощью конструкции вида #K, где K - код соответствущего симво-

ла, при этом значение K должно находиться в пределах 0..255;

-с помощью конструкции вида ^C, где C - код соответствущего управ-

ляющего символа, при этом значение C должно быть на 64 больше

кода управляющего символа.

К величинам символьного типа применимы все операции отношения.

Для величин символьного типа определены две функции преобразования

Ord(C) Chr(K).

Первая функция определяет порядковый номер символа С в наборе сим-

волов, вторая определяет по порядковому номеру К символ, стоящий на

К-ом месте в наборе символов. Порядковый номер имеет целый тип.

К аргументам символьного типа применяются функции, которые опреде-

ляют предыдущий и последующий символы:

Pred(C) Succ(C). Pred('F') = 'E' ; Succ('Y') = 'Z' .

При отсутствии предыдущего или последующего символов значение со-

ответствующих функций не определено.

Для литер из интервала 'a'..'z' применима функция UpCase(C), кото-

рая переводит эти литеры в верхний регистр 'A'..'Z'.

АДРЕСНЫЙ тип (Pointer) определяет переменные, которые могут содер-

жать значения адресов данных или фрагментов программы. Для хранения

адреса требуются два слова (4 байта), одно из них определяет сегмент,

второе - смещение.

Работа с адресными переменными (указателями) будет рассмотрена

позже, сейчас отметим, что для получения значения адреса какой-либо

переменной введена унарная операция @.

6. К О Н С Т А Н Т Ы

Тип констант в языке ПАСКАЛЬ определяется по их виду: константы

целого типа - это целые числа, не содержащие десятичной точки, конс-

танты действительного типа - действительные числа, логические конс-

танты - логические значения TRUE и FALSE, символьные константы - либо

строки длиной в один символ, либо конструкции вида #K или ^K.

Язык ПАСКАЛЬ допускает использовать синонимы для обозначения конс-

тант, в этом случае текст программы содержит раздел описания

констант, например: {}

7. П Е Р Е М Е Н Н Ы Е.

И Н И Ц И А Л И З А Ц И Я П Е Р Е М Е Н Н Ы Х

Тип переменных определяется пользователем в разделе описания пере-

менных:{}

В настоящее время в профессиональном программировании принято

записывать имена переменных с использованием так называемой венгерс-

кой нотации.

Венгерская нотация - это соглашение о наименованиях переменных и

функций. Соглашение широко используется при программировании на язы-

ках PASCAL, C и в среде WINDOWS.

Венгерская нотация основывается на следующих принципах:

-имена переменных и функций должны содержать префикс, описывающий

их тип;

-имена переменных и функций записываются полными словами или сло-

восочетаниями или их сокращениями, но так, чтобы по имени можно было

понять назначение переменной или действие, выполняемое функцией.

Префиксы записываются малыми буквами, первая буква каждого слова -

заглавная, префиксы и слова записываются либо слитно, либо через сим-

вол _ (подчеркивание).

Для языка PASCAL могут быть рекомендованы следующие префиксы для

скалярных переменных и функций:

Префикс Тип

---------------------

by Byte

sh Shortint

i Integer

w Word

l Longint

r Real

si Single

d Double

e Extended

c Comp

ch Char

b Boolean

p Pointer

x,у координаты символа или точки на экране

Для величин структурированного типа могут быть использованы следу-

ющие префиксы:

a Array

s String

sz Stringz

se Set

re Record

f File

t Text

Например:

rV, arVector[1..20], sName, iCount.

В откомпилированной программе для всех переменных отведено место в

памяти, и всем переменным присвоены нулевые значения.

Для задания начальных значений переменным (инициализации перемен-

ных) TURBO PASCAL позволяет присваивать начальные значения переменным

одновременно с их описанием. Для этого используется конструкция

имя переменной: тип = значение;

которая должна быть размещена в разделе описания констант, например:

const rWeight: Real = 0.4;

8. В Ы Р А Ж Е Н И Я

Выражение состоит из констант, переменных, указателей функций,

знаков операций и скобок. Выражение задает правило вычисления некото-

рого значения. Порядок вычисления определяется старшинством (приори-

тетом) содержащихся в нем операций. В языке ПАСКАЛЬ принят следующий

приоритет операций:

1. унарная операция not, унарный минус -, взятие адреса @

2. операции типа умножения * / div mod and shl shr

3. операции типа сложения + - or xor

4. операции отношения = <> < > <= >= in

{}

Выражения входят в состав многих операторов языка ПАСКАЛЬ, а также