Pascal. Строки

      Комментарии к записи Pascal. Строки отключены

Помечено: ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 2 мес. назад.

  • Автор
    Сообщения
  • #3740

    Строка в Pascal – это последовательность символов заключенных в апострофы. Переменную строкового типа данных определяет слово string:

    Var <имя_переменной>: string[<длина строки>];

    Длина строки может и не указываться, тогда она будет равна максимально возможному количеству символов — 255.

    Также как и массив, каждый элемент строки имеет свой индекс, и может быть отдельно где-либо задействован. Например, так выведется 7-ой элемент строки sing, которая содержит выражение ‘сингулярность’:

    write(sing[7]); { символ ‘я’ }

    Для вывода строки указывается строка без скобок и их содержащего:

    write(sing);

    Объединить строки можно при помощи операции +, а также воспользовавшись функцией Concat. Следующая программа сначала выводит строку, в которой объединены две другие, а затем выводит все три имеющиеся строковые переменные посредством функции Concat.

    program stroki;
    uses crt;
    var sing, quant, sq: string;
    begin
      quant:='Квантовая';
      sing:='cингулярность';
      sq:=quant+' '+sing;
      writeln(sq);
      write(concat(sq, ' ',quant,' ', sing));
    end.

    Сравнение двух строк в Паскале осуществляется операциями отношения (<,>,=,<>,<=,>=). При этом первый символ первой строки сравнивается с первым второй строки, потом второй со вторым, третий с третьим и т. д. до тех пор, пока не нарушится равенство (т. е. число символов, либо их количество в строках окажется разным), или операция не завершится.

    ‘stroke’ < ‘stroke’ {вернет false}
    ‘stroke’ > ‘str’ {вернет true}
    ‘stroke’ = ‘stroke’ {вернет true}

    Удалить необходимые символы из строки можно с помощью процедуры Delete. В общем виде она имеет вид:

    Delete(<строка>, <начиная с этого символа>, <количество>)

    Вот так выглядит элементарная программа, в которой используется процедура Delete:

    program stroki;
    uses crt;
    var sing, quant, sq: string;
    begin
      quant:='Квантовая';
      delete(quant, 6, 4);
      write(quant);
    end.

    После ее выполнения на экране появится слово «Квант». Для вставки подстроки в строку в Паскале есть процедура Insert.

    lnsert(<строка 1>, <строка 2>, <начиная с этого символа>)

    Строка 1 вставляется в строку 2, начиная с указанного символа. Так, например, для вставки нашей строки sing в строку quant нужно пописать следующий код.

    quant:=’Квантовая’;
    sing:=’ cингулярность’;
    insert(sing, quant, 10);

    Длина строки – это количество символов содержащихся в переменной строкового типа. Чтобы узнать ее можно воспользоваться функцией Length, возвращающей целое число. Форма записи данной функции такая:

    Length(<строка>);

    В Паскале для копирования строк предусмотрена функция Copy:

    Copy(<строка>, <начиная с этого символа>, <количество>);

    Пример программы, использующей функцию Copy:

    program stroki;
    uses crt;
    var sing, quant, sq: string;
    begin
      sq:='Квантовая cингулярность';
      quant:=copy(sq, 1, 9);
      sing:=copy(sq, 10, 14);
      write(quant, sing);
    end.

    Из sq было произведено копирование в две другие строки.

    Функция Pos определяет позицию подстроки в строке, и в случае удачи возвращает целое число соответствующее номеру элемента, с которого начинается вхождение. Общий вид функции:

    Pos(<подстрока>, <строка>);

    Преобразование числового значения осуществляется посредством процедуры Str:

    Str(<числовая величина>, <строка>);

    Пример программы:

    program stroki;
    uses crt;
    var s: string;
    c: integer;
    begin
      c:=1000;
      str(c, s);
      write(s); {s = '1000'}
    end.

    Преобразовать строку в числовое значение можно при помощи процедуры Val:

    Val(<строка>, <числовая величина>, <переменная>);

    Строка должна состоять из числовых символов. Переменная нужна для записи номера первого ошибочного символа, в случае его наличия, либо нуля. Пример кода:

    program stroki;
    uses crt;
    var s: string;
    c, err: integer;
    begin
      s:='1000';
      val(s, c, err);
      writeln(c); {c = 1000}
      writeln(err); {err = 0}
      s:='12p23';
      val(s, c, err);
      writeln(c); {c = 12}
      write(err); {err = 3}
    end.

Для ответа в этой теме необходимо авторизоваться.