
- •Теоретическая часть
- •Практическая часть
- •Теоретическая часть
- •Insert (subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start.
- •Val (s, X, errcode) преобразует строку s в значение числовой переменной X, при этом строка s должна содержать символьное представление числа.
- •Практическая часть
- •Теоретическая часть
- •Insert (subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start.
- •Val (s, X, errcode) преобразует строку s в значение числовой переменной X, при этом строка s должна содержать символьное представление числа.
- •Практическая часть
Практическое занятие 13
Обработка строковых данных
(I вариант)
Цель
Научиться использовать в программах процедуры и функции обработки строковых и символьных данных
Принадлежности
1 Методические указания
2 Конспект по дисциплине
3 Компьютеры с установленной средой программирования Turbo Pascal 7.0
Порядок выполнения
1 Получить у преподавателя вариант с заданием для выполнения
2 Выбрать алгоритм решения предложенных задач
3 Написать программы на языке программирования Turbo Pascal и отладить их в среде Turbo Pascal 7.0
4 Сдать преподавателю результаты работы (в тетради и отлаженные программы в индивидуальных папках на сервере «Студент»).
Исходные данные
По заданному варианту
Содержание отчета
1 Краткие теоретические сведения
2 Отлаженные программы в среде Turbo Pascal 7.0
Вывод
Теоретическая часть
Строки в Паскале – это данные типа string.
Примеры описания строк:
type
str_type = string[12];
const
n = 50;
var
s1: string;
s2, s3: str_type;
s4: string[n];
s5, s6, s7: string[7];
При работе со строками, как правило, возникает необходимость выполнять их копирование, вставку, удаление или поиск. В Паскале предусмотрены стандартные процедуры и функции:
Concat (s1, s2, ..., sn) вычисляет строку, являющуюся слиянием строк s1, s2, ..., sn.
Copy (s, start, len) возвращает подстроку длиной len, начинающуюся с позиции start строки s.
Delete (s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len.
Insert (subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start.
Length (s) возвращает фактическую длину строки s, результат имеет тип byte.
Pos (subs, s) ищет вхождение подстроки subs в строку s и возвращает номер первого символа subs в s или нуль, если subs не содержится в s.
Str (x, s) преобразует числовое значение x в строку s, при этом для x может быть задан формат, как в процедурах вывода write и writeln. Например:
x: = 123;
s: = str (x:6,s);
Результат: s = ' 123'.
Val (s, x, errcode) преобразует строку s в значение числовой переменной x, при этом строка s должна содержать символьное представление числа.
Задача: Вставить в заданную позицию строки другую строку.
var
s1,s2: string;
i: byte;
begin
write('Input string 1: ');
readln(s1);
write('Input string 2: ');
readln(s2);
write('Input position: ');
readln(i);
insert(s2,s1,i);
writeln(s1);
readln
end.
Задача: Найти в строке определенную последовательность символов и заменить ее другой.
var
s,s_old,s_new: string;
i,l_old: byte;
begin
write('Insert string: ');
readln(s);
write('What change? ');
readln(s_old);
l_old := length(s_old);
write('What to replace? ');
readln(s_new);
i := pos(s_old,s);
delete(s,i,l_old);
insert(s_new,s,i);
writeln(s);
readln
end.
Задача: Скопировать часть строки с определенной позиции и определенной длины в другую строку.
var
s1,s2: string;
n,len: byte;
begin
write('Input string: ');
readln(s1);
write('Place of start of copy: ');
read(n);
write('Length of copy: ');
readln(len);
s2 := copy(s1,n,len);
writeln('Your copy: ',s2);
readln
end.
Задача: Определить длину строки, введенной пользователем.
var
s: string;
len: byte;
begin
write('Input string: ');
readln(s);
len := length(s);
writeln('Its lenght is ', len,' characters.');
readln
end.
Задача: Удалить из строки ее часть с заданной позиции и заданной длины.
var
s: string;
i,len: byte;
begin
write('Input string: ');
readln(s);
write('Place of start to delete: ');
readln(i);
write('Length to delete: ');
readln(len);
delete(s,i,len);
writeln(s);
readln
end.