
- •Строки
- •Типы строк
- •Описание строк
- •Операции со строками
- •Процедуры и функции
- •Пример
- •Алгоритм
- •Программа
- •Фрагменти програм
- •Фрагменти програм
- •Фрагменти програм
- •Фрагменти програм
- •Фрагменти програм
- •Фрагменти програм
- •Параметы строки
- •Множества
- •Множества
- •Константы и переменные
- •Операции с множествами
- •Пример работы с множествами
- •Приклад 1.
- •Приклад 3.
- •Приклад 4.
- •ПРИКЛАД ЗАВДАННЯ ПРОГРАМИ
- •ПРИКЛАД ПРОГРАМИ
- •Завдання: Надрукувати усі слова, які
- •procedure ost_slovo(st:string;var st1:string);
- •procedure slova(st:string;st1:string);
- •{------MAIN------}

Строки
1

Типы строк
В Паскале три типа строк:
стандартные (string);
определяемые программистом на основе string;
строки в динамической памяти.
Строка типа string может содержать до 255 символов. Под каждый символ отводится по 1 байту, в котором хранится код символа. Еще один байт отводится под фактическую длину строки
2

Описание строк
type str5 = string [5];
const n = 10; |
|
|
|
var s : string; |
{ строка стандартого типа } |
||
s1 |
: str5; |
{ строка типа str5 } |
|
s2 |
: string [n]; |
{ описание типа задано |
при описании переменной }
3

Операции со строками
Присваивание
s := s1;
Конкатенация
s1 := ’кар’ + ’туз’;
Сравнение
if s3 > s1 then ...
Ввод-вывод – как целиком, так и посимвольно.
4

Процедуры и функции
Процедура Delete(s, start, len)
Процедура Insert(subs, s, start)
Процедура Str(x, s)
Процедура Val(s, x, errcode)
Функция Length(s)
Функция Pos(subs, s)
Функция Concat(s1, s2, ..., sn)
Функция Copy(s, start, len)
Функция UpCase(s[i])
5

Пример
Программа, которая читает текст из файла и выводит его на экран, заменяя заданную с клавиатуры последовательность символов на многоточие.
6

Алгоритм
1.Построчно считывать текст из файла.
2.Для каждой строки проверять, содержится ли в ней заданная последовательность.
3.Если да, заменяет заданную с клавиатуры последовательность символов на многоточие.
4.При выходе из цикла выводит строку на экран.
7

Программа
Program Change_word; |
f : text; |
i, dl : integer; |
|
var |
s, str : string[80]; |
begin
assign(f, 'primer.txt'); reset(f); writeln('Какое слово заменять?'); readln(s); dl := length(s);
while not Eof(f) do begin readln(f, str);
i := 1;
while i<>0 do begin i := Pos(s, str);
if i<>0 then begin
end; |
|
writeln(str); |
|
end; |
|
close(f) |
|
end. |
8 |

Фрагменти програм
Var
st : string;
i, k : integer;
Приклад 1.
{ Підрахувати кількість літер а у рядку.}
-------------------------------------
k:=0;
for i:=1 to length(st) do
if st [i] =’a’ then k:=k+1;
------------------------------------
Приклад 2.
{ Замінити ‘раз’ на ‘роз’}
-------------------------------------
While Pos(‘раз’, st) <> 0 do
St [Pos(‘раз’, st) +1]:=’o’;
Приклад 3.
{ підрахувати кількість слів у рядку (між словами пробіл, в кінці крапка)}
-------------------------------------
k:=0;
for i:=1 to length(st)-1 do
if (st[i] <>’ ‘ ) and ((st[i+1] = ‘ ‘) or (st[i+1] =’.’)) then k:=k+1; |
9 |
|
------------------------------------- |
||
|

Фрагменти програм
Var
st : string;
i, k : integer;
Приклад 4.
{ підрахувати кількість слів у рядку (між словами пробіл, в кінці крапка), які починаються на а}
-------------------------------------
st:=’ ‘ + st; k:=0;
for i:=1 to length(st)-1 do
if (st[i] = ’ ‘ ) and ((st[i+1] = ‘a ‘) or (st[i+1] = ‘A ‘)) then k:=k+1;
-------------------------------------
Приклад 5.
{ видалити пробіли на початку рядку } |
|
------------------------------------- |
|
While st[1] = ‘ ‘ do Delete (st, 1, 1); |
|
------------------------------------- |
|
Приклад 6. |
|
{ видалити зайві пробіли між словами} |
|
------------------------------------- |
|
While Pos (“ “, st) <> 0 do Delete (st, Pos (“ “, st), 1); |
|
------------------------------------- |
10 |
|