1 семестр сессия / Bilet10
.docБилет №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.