Система исчисления, арифметические операции.
Система счисления – совокупность правил наименования и обозначения чисел с помощью набора символов, называемых цифрами. СС делятся на позиционные и непозиционные. Позиционные - СС, у кот. величина цифры в числе зависит от места (позиции), непозиционные – у кот. число получается как разность или сумма цифр в этом числе (римская СС). Любая СС характеризуется базисом и основанием. Базис – цифры, кот. Используются для записи чисел. Основание – кол-во цифр, используемых в данной СС. Все позиционные системы счисления равноправны. Во всех них арифметические операции выполняются по одним и тем же правилам, согласно выписанным таблицам сложения и умножения. Для всех систем счисления справедливы одни и те же законы арифметики: коммутативный, ассоциативный, дистрибутивный, а также правила сложения, вычитания, умножения и деления столбиком.
Наиболее простыми являются таблицы сложения в двоичной и троичной системах счисления.
Очевидно, что любая таблица сложения (умножения) в силу закона коммутативности симметрична относительно главной диагонали (линии, проведенной из левого верхнего угла таблицы в ее правый нижний угол).
В определённой таблице сложения можно осуществлять действия сложения и вычитания столбиком в любой Р-ичной ситеме.
Для выполнения умножения двух многозначных чисел в Р-ичной системе надо иметь таблицу умножения в этой системе.
Вычисление элементов такой таблицы представляет собой прибавление базовой цифры столбца к числу, стоящему на одну клетку выше. При этом неопределенными оказываются лишь элементы первой строки, однако, первая строка соответствует умножению базовой цифры строки на 0, результат такого умножения в любой системе счисления равен 0.
При делении столбиком в P-ичной системе счисления приходится в качестве промежуточных вычислений выполнять действия умножения и вычитания, а, следовательно, использовать как таблицу умножения, так и сложения в Р-ичной системе счисления. Наиболее просто деление организовать в двоичной системе, так как в ней необходимо лишь сравнивать два числа между собой и вычитать из большего числа меньшее.
Сложнее дело обстоит, если результат деления не является конечной Р-ичной дробью (или целым числом). Тогда при осуществлении операции деления обычно требуется выделить непериодическую часть дроби и ее период.
Строковые типы данных.
Строка — это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными. Строковая константа есть последовательность символов, заключенная в апострофы. Например: 'это строковая константа', ‘272’. Строковая переменная описывается в разделе описания переменных следующим образом:
Var <идентификатор> : string[<максимальная длина строки>];
Например:
Var Name : string[20].
Параметр длины может и не указываться в описании. В таком случае подразумевается, что он равен максимальной величине — 255.
Строковая переменная занимает в памяти на 1 байт больше, чем указанная в описании длина. Символы внутри строки индексируются (нумеруются) от единицы. Каждый отдельный символ идентифицируется именем строки с индексом, заключенным в квадратные скобки. Например: N[5], S[i], slovo[k+l]. Индекс может быть положительной константой, переменной, выражением целого типа. Значение индекса не должно выходить за границы описания.
Строковые выражения строятся из строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и операции отношения.
Операция сцепления (конкатенации) (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные.
Пример: 'Мама ' + 'мыла ' + 'раму'. В результате получится строка: 'Мама мыла раму'. Длина результирующей строки не должна превышать 255.
Операции отношения: =, <, >, <=, >=, <>. Позволяют произвести сравнение двух строк, в результате чего получается логическое значение (true или false). Операция отношения имеет приоритет более низкий, чем операция сцепления. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы.
Функция Copy(S, Pozition, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Pozition. Здесь N и Pozition — целочисленные выражения.
Пример:Значение S Выражение Результат
‘Мама мыла раму’ Copy(S, 6, 4) ‘мыла’
‘Маша ела кашу’ Copy(S, 1, 8) ‘Маша ела’
Функция Concat(S1, S2, …, SN) выполняет сцепление (конкатенацию) строк S1, S2, …, SN в одну строку.