Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
05.06.2018
Размер:
29.7 Кб
Скачать

Билет №10. Структурный тип строка. Основы обработки строк.

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

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

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

< переменная типа 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).

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

Задача 4.2.6(10)

program alex10;

type mass=array[1..4,1..3]of integer;

var a:mass;

i,j,k1,k2,b:integer;

procedure proc(x:mass;n:integer;var k:integer);

var max: integer;

i:integer;

begin

max:=x[1,n];

k:=1;

for i:=2 to 4 do

if x[i,n]>max then begin

max:=x[i,n];

k:=i;

end;

end;

begin

for i:=1 to 4 do

for j:=1 to 3 do

read(a[i,j]);

proc(a,1,k1);

proc(a,3,k2);

b:=a[k1,1];

a[k1,1]:=a[k2,3];

a[k2,3]:=b;

for i:=1 to 4 do

begin

writeln;

for j:=1 to 3 do

write (' ',a[i,j]);

end;

readln;

readln;

end.

Соседние файлы в папке 1 семестр сессия