28632

Структурный тип - Строка

Лекция

Информатика, кибернетика и программирование

m] of char; где: m максимальная длина строки число диапазона 0 . Строки длины до 255 соответствуют типу string без указания длины строки. Нулевая позиция строки является специальной позицией в которой хранится текущая длина строки код ASCII представляющий длину строки. Доступ к компоненту строки символу строки осуществляется также как к элементу массива т.

Русский

2013-08-20

37 KB

5 чел.

Лекция 11: Структурный тип - Строка.

1. Строка, как специальная форма массива.

2. Основы обработки строк.

3. Примеры элементарных программ обработки строк.

1. Строка, как специальная форма массива.

В Турбо Паскале имеется семейство строковых типов, рассматриваемых как специальная форма массива, а именно одномерный массив символов. Это семейство соответствует по умолчанию следующему описанию:

type string[ <m >] = array [0..m] of char;

где:  <m >- максимальная длина строки (число диапазона 0 .. 255).

       string- стандартное имя строкового типа, являющееся ключевым словом.

Строки длины до 255 соответствуют типу string (без указания длины строки).

Нулевая позиция строки является специальной позицией, в которой хранится текущая длина строки (код ASCII, представляющий длину строки). Эта позиция автоматически корректируется при операциях над строками.

Доступ к компоненту строки (символу строки) осуществляется также как к элементу массива, т.е. по индексу (индексному выражению).

Например: st[J+1]      {Cимвол в позиции J+1 строки st}

Разрешен доступ, в том числе и к нулевой позиции строки, так что, например ord(st[0]) - длина строки st .

     Замечание

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

2. Основы обработки строк.

Строки относятся к важным средствам представления нечисловой информации, и обработка строк имеет широкие приложения во многих областях  использования нечисловой информации (редактирование текстов, логический анализ, автоматизация перевода, распознавание текстов и др.).

Поскольку строки указанного типа являются разновидностями массива, для них можно применять всё, что применимо к массивам. Кроме того, для обработки строк в Турбо Паскале предусмотрен ряд достаточно удобных и эффективных средств:

Для строк допустим оператор присваивания вида:

< переменная типа string > := < выражение типа string  или типа char >;

Над строками допустимы отношения сравнения  <,<=,>,>=, =, <>, причём длины сравниваемых строк могут быть различными (меньшая строка при сравнении дополняется справа до выравнивания длин символами chr(0)). Сравнение выполняется посимвольно слева направо по кодам символов таблицы ASCII. Например: 'A' >'1', 'Turbo' < 'TURBO PASCAL'.

К строкам применима операция сцепления строк (конкатенация), обозначаемая символом '+'. Например: 'Это -' + 'строка'   {соответствует 'Это - строка' }.

Стандартные процедуры обработки строк:

Delete(st, Npos, count)      -удаление из строки st, начиная с позиции Npos под-                                  строки длины count .

Insert(subst, st, Npos)       -вставка в строку st подстроки subst с позиции Npos.

Стандартные функции обработки строк:

Length(st)           -длина строки st (без учёта нулевой позиции строки).

Copy(st, Npos, count)        -выделение из строки st подстроки длиной count, на              чиная с позиции Npos.

Pos(subst, st)          -позиция начала первого вхождения подстроки subst в               строку st (если подстрока не найдена, то pos=0).

Основными элементарными задачами обработки строк являются: управление пробелами в строке (удаление лишних пробелов, удаление пробелов в начале или в конце строки, выравнивание длин строк вставкой пробелов и др.), анализ частот символов, либо подстрок, поиск подстрок по заданным критериям (первого вхождения, всех вхождений, по образцу, по шаблону и др.), подстановка подстрок и другие.

3. Примеры элементарных программ обработки строк.

Приведём две такие программы на Турбо Паскале:

              

       program bin_dec; {Перевод двоичного числа в десятичное}

       uses CRT;

       var bin:string; {строка-двоичное число}

             dec:integer; {эквивалентное десятичное число}

              r,j:integer;   

       begin TextBackground(cyan);TextColor(white);ClrScr; window(10,10,50,20);

             TextBackground(green); ClrScr; write(' Введите двоичное число: ');read(bin);

             dec:=0;r:=1;for j:=length(bin) downto 1 do

             begin if (bin[j] <>'0') and  (bin[j] <>'1') then

                   begin writeln('Ошибка ввода');halt end; if bin[j]='1' then dec:=dec + r;r:=r*2

             end;  writeln('Десятичное число: ', dec)

       end {bin_dec}.

program del_blank;{Удаление лишних пробелов между словами в строке}

       uses CRT;

       var str:string; {Вводимая строка}

     c:string;j:byte;

 begin TextBackground(cyan);TextColor(white);ClrScr;

            repeat writeln('Введите  строку:');readln(str);

                 if str='' then writeln('Строка пустая') else

             begin j:=1; if length(str)>1   then  while j<length(str) do

             if (str[j]=' ') and (str[j+1]=' ')  then delete(str,j+1,1) else j:=j+1;

             writeln('Результирующая строка:'); writeln(str);

             end;readln(c);

           until c=' ';

 end{ del_blank}.


 

А также другие работы, которые могут Вас заинтересовать

32211. Понятие, логич структура и юр природа следственной версии. Классификация 32 KB
  Поэтому по субъектам выдвижения различают следственные оперативнорозыскные экспертные и судебные версии. Оперативнорозыскные версии выдвигаются при проведении оперативнорозыскных мероприятий экспертные в процессе конкретных экспертных исследований. В конечном счете эти версии носят промежуточный характер и служат проверке основных следственных версий а экспертные также способствуют проверке судебных версий.
32212. Структура версионного процесса. Построение следств версий 32 KB
  Построение следств версий криминалистическая версия это логически построенное и основанное на фактических данных предположительное умозаключение следователя других субъектов познавательной деятельности по уголовному делу о сути исследуемого деяния об отдельных его обстоятельствах и деталях направленное на выяснение истинных обстоятельств дела и требующее соответствующей проверки. Процесс построения версий распадается на ряд условных этапов. Началом процесса построения версий обычно являются анализ и синтез имеющихся в распоряжении...
32213. Следственный эксперимент 45.5 KB
  Оценка резтов эксперимента. Значение следственного эксперимента заключается в том что его результаты позволяют подтвердить или опровергнуть собранные по делу доказательства а нередко и получить их. Так в ходе следственного эксперимента по проверке возможности совершения определенных действий могут быть точно оценены предположения о наличии или отсутствии у подозреваемого профессиональных или преступных навыков например в использовании газосварочного оборудования для взлома сейфа открывании замка с помощью отмычек и т. Для производства...
32214. Стадии осмотра МП. Способы и методы осмотра 42.5 KB
  Способы и методы осмотра. Каждый этап осмотра имеет свои цели и реализуется с помощью различных тактических приемов. По результатам сопоставления если нужно вносятся коррективы в план осмотра.
32215. Понятие обыска и выемки, их цели и задачи 57.5 KB
  Понятие обыска и выемки их цели и задачи. В ходе обыска могут и должны решаться следующие задачи: 1 отыскание и изъятие орудий преступления предметов и ценностей добытых преступным путем а также других предметов и документов которые могут иметь значение для дела; 2 обнаружение разыскиваемых лиц преступников и граждан взятых в заложники; 3 отыскание трупа или его частей; 4 выемка имущества на которое может быть наложен арест для обеспечения конфискации или возмещения причиненного преступлением материального ущерба; 5 поиск и...
32216. Осмотр места преступления 31.5 KB
  Поисковый харр осмотра МП роль типичных версий при его произвве. Оперативнорозыскные действия могут осуществляться: до и независимо от осмотра; во время его проведения в зависимости от полученных при этом данных требующих реализации до завершения осмотра. В связи с этим никаких процессуальных документов о результатах использования служебнорозыскной собаки к протоколу осмотра не прилагается; б заградительные мероприятия путем установления наблюдения за узловыми пунктами предполагаемого маршрута передвижения скрывшегося преступника в...
32217. Осмотр трупа на Месте преступления 30.5 KB
  Наружный осмотр трупа на месте его обнаружения в соответствии со ст. Вся ответственность за ход и результаты осмотра трупа лежит на нем так как факты исследуемые и фиксируемые при осмотре не могут быть восполнены при судебномедицинской экспертизе трупа. Фиксируется время начала осмотра температура окружающей среды и трупа.
32218. Стадии обыска и тактические основы его произ-ва 52.5 KB
  Стадии обыска и тактические основы его произва. В ходе обыска могут и должны решаться следующие задачи: 1 отыскание и изъятие орудий преступления предметов и ценностей добытых преступным путем а также других предметов и документов которые могут иметь значение для дела; 2 обнаружение разыскиваемых лиц преступников и граждан взятых в заложники; 3 отыскание трупа или его частей; 4 выемка имущества на которое может быть наложен арест для обеспечения конфискации или возмещения причиненного преступлением материального ущерба; 5 поиск и...