Введение в программирование. Сортировка массива. Средства создания программ. Стандартные модули. Структурированные типы данных, страница 16

End;

Линейный список. Яв-ся динамич структурой данных, произвольно выбранное место кот могут включаться данными,а также удаляться произвольные данные из списка.Каждая компонента списка определяется ключом, ключ-это либо число,либо строка символов,кот располагается в ходе данных компонентов.

СТРУКТУИРОВАННЫЕ ТИПЫ ДАННЫХ. К структ-ым типам данных относятся массивы, строки, множества, записи и формы. СТРОКОВЫЙ ТИП ДАННЫХ - последовательность символов переменной длины, описываются служебным словом string, в квадратных скобках может быть указана длина [n]. Длину можно не указывать, в этом случае по умолчанию считается максимальная длина строки 255 байт. ПРИМЕР: VAR    STR 1: STRING [60];                               ST 2 : STRING; Сущ-ют строки, длина к-ых может достигать 65.536 символов, это тип ASC I I-Z. Для работы с такими типами нужно указать спец. директиву компилятора. К каждому символу строки можно обратиться , указав его порядковый номер в кв. скобках, т. к. можно считать, что строка – это одновременный массив или элементы, какого-то типа CHAR

                                     STR 1: ARRAY [1…60] OF CHAR,

                                     STR 1 [2]

Нулевой байт каждой строки содержит данные о количестве символов в строке.    ST 1: =’ квантово-волновой дуализм’

                                     ST 1 [3] = ‘a’

                                     ST 1 [0] = 26 –кол-во символов в строке.

Строки можно вводить с помощью процедур READ, READLN, а также с помощью операторов присваивания. Причем также как символьные переменные можно задавать символы строки их кодом

                                     ST 1: = #65#65            ; ^ A

                                     ST 1: = ^ A ‘ нажмите клавишу‘ ^ G;

Строки можно сравнивать между собой, сравнение идет символьно.                PASCAL < PASCAL

                                     PASE<PASCAL
                                             AGA < AGA

VAR    st 1, st 2: string [5];

BEGIN

           st 1: = ‘Наталья’;

           st 2: = ‘Дубровская’;

WRITE   (st 1, ‘  ’ , st 2);

ОПЕРАЦИЯ КОНКАТЕНАЦИИ обозначается знаком “+” и означает объединение символьных величин  ‘19’ + ‘71’         ‘1971’  ‘adam’ + ‘eva’     ‘adameva’

СТАНДАРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ СО СТРОКАМИ.

ФУНКЦИИ И ПРОЦЕДУРЫ

НАЗНАЧЕНИЕ И ФОРМАТ

CONCAT

возвращает объединение строк; формат её: CONCAT (ST 1, ST 2m ST 3); пример: A: = CONCAT (‘ком’, ‘пот’) результат будит компот

COPY

возвращает копию подстроки из Y – символов, которые располагаются в строке STR COPY ( STR, I, 7) пример: STR: = ‘пожар’;  S: = COPY (STR, 3,3);

LENGTH

возвращает длину строки формат:LENGTH (STR);

POS

возвращает номер позиции начиная с которого располагается подстрока FT 1 в строке STR POS (ST1, STR). Пример:K: = POS (S, STR);

DELETE

DELETE (STR, I, Y) удаляет из строки STR Y – символов начиная с I (итого) пример: DELETE (STR, 3, 2) STR: = ‘пожар’

INSERET

INSERET (S, STR, I) формат вставляет строку STR начиная с  I – итой позиции  подстроки S  пример: S: = ‘aaa’; TR: = ‘пожар’INSERET (S, STR,4)         STR: = ‘пожаааар'

UPCASE

преобразовывает символы из строчного в прописной режим UPCASE (STR1) STR: = ‘adam’              ADAM

STR

преобразовывает число вещественного или целого типа в строку символов STR (N, ST) пример: STR (N: 4, ST)   STR (N: $:!, ST)

VAL

преобразовывает строку символов во внутреннее представление целой или вещественной, переменной, которая определяется типом этой переменной формат: VAL (ST, X, CPODE) CODE – это код неправильного символа, содержит 0 если преобразование прошло успешно и любое другое число – если строка содержит другие символы кроме цифр

VAR   y, a: integer;

          b, x: real;

          st: string;

BEGIN

         st: = ‘345’;     a=345, y=0, т. к. преобразование прошло успешно

         val (st, a, y);

        st: = ’12.345’;                           y=0

        val (st, b, y);                             b=1. 2345000000+01

       ST: = ‘3,14159’;

      val  (stt, b, y);                y=2,  b=0. 000

ПРИМЕРЫ:

1) Строка содержит только цифры. Удалить все впереди стоящие нули. Program D1;

Var    st: string;     i: byte;           Begin              writeln (‘введитестроку’);

          readln (st);

      i: = lengtn (st);

      while (i>0) and (st [1] = ‘0’) do