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

Приклад 1.
Turbo Pascal немає засобів вводу-виводу елементів множин
Тому задати множину можна за допомогою оператора
присвоєння , наприклад :
c1 :=[‘а’, ‘б’, ‘п’, ‘с’,’т’,’у’];
c4 := [1, 3, 5..10];
Приклад 2.
Вивід значень цих множин можна зробити за допомогою операторів циклу:
Var
|
c : char; |
|
|
|
i : integer; |
|
|
----------------------------- |
|
||
For |
c:= ‘a’ to ‘я ’ do |
|
|
|
If c in |
c1 then writeln ( c ); |
|
For |
i:= 1 |
to 10 do |
|
|
If i in c4 then writeln ( i ); |
21 |
|
-------------------------------- |

Приклад 3.
Var
st : string;
c : char;
cif, cif1 : set of char;
i : integer;
{вивести цифри рядку в тому порядку, в якому вони зустрічаються в реченні }
--------------------------------------
cif:=[‘0’.. ‘9’] ;
for i:=1 to length (st) do
if st[i] in cif then write(st[i], ’ ‘);
22

Приклад 4.
{ вивести цифри, які не використовуються в
рядку, в порядку зростання }--------------------------------------
cif:=[‘0’.. ‘9’] ;
cif1:=[] ;
for i:=1 to length (st) do
if st[i] in cif then cif1:=cif1+[ st[i] ];
{ в cif1 цифри, які використовуються в рядку}
cif1:=cif - cif1;
{ в cif1 цифри, які не використовуються в рядку}
for c:=’0’ to ‘9’ do
if c in cif1 then write(c, ‘ ‘);
-------------------------------------- |
23 |

ПРИКЛАД ЗАВДАННЯ ПРОГРАМИ
Тема: „Рядки”,.
Завдання: дано: послідовність, яка вміщує від 1 до 30 слів, у кожному з яких від 1 до 5 рядкових латинських букв; поміж сусідніми словами кома, за останнім словом – крапка. Надрукувати: усі різні слова та показати для кожного з них кількість його входжень у послідовність.
Тема: „Множини”.
Завдання: вивести в алфавітному порядку усі рядкові голосні.
24

ПРИКЛАД ПРОГРАМИ
Програма:
PROGRAM LAB2;
uses crt;
type st=array[1..30] of string[5];
var str:string;
mas:st;
kol:integer;
PROCEDURE VVOD(var stroka:string);
BEGIN
writeln('Vvedite stroku');
readln(str);
END;
PROCEDURE MAS_1(str:string; var mas:st);
var i,j:integer;
BEGIN
i:=0;
j:=1;
REPEAT
i:=i+1;
if (str[i]<>',') and (str[i]<>'.') then
mas[j]:=mas[j]+str[i]
else
j:=j+1;
UNTIL str[i]='.';
kol:=j-1;
END;
PROCEDURE MAS_2 (str:string;mas:st); var i,n:integer;
BEGIN
FOR i:=1 to kol do BEGIN
n:=0;
WHILE pos(mas[i],str)<>0 do BEGIN
n:=n+1;
str[pos(mas[i],str)]:='';
END;
if n<>0 then writeln(mas[i],' - ',n);
END;
END; |
|
PROCEDURE GOLOSNI(str:string); |
|
type mn=set of char; |
|
var mn1,mn2:mn; |
|
i:integer; |
|
ch:char; |
|
BEGIN |
|
mn1:=['e','y','u','i','o','a']; |
|
mn2:=[]; |
|
FOR i:=1 to length(str) do |
|
if str[i] in mn1 then |
|
include(mn2,str[i]); |
|
FOR ch:='a' to 'z' do |
|
if ch in mn2 then |
|
write(ch); |
|
END. |
|
BEGIN |
|
clrscr; |
|
VVOD(str); |
|
MAS_1(str,mas); |
|
MAS_2(str;mas); |
|
GOLOSNI(str); |
|
readln; |
25 |
END. |

Завдання: Надрукувати усі слова, які
відрізняються від останнього слова, спочатку вилучивши із кожного слова першу літеру.
Програма:
uses crt;
var st:string; st1:string;
procedure probil(var st:string);
var i:integer;
begin
while st[1]=' 'do delete(st,1,1);
while pos(' ',st)<>0 do delete(st,pos(' ',st),1);
end;
26

procedure ost_slovo(st:string;var st1:string);
var i:integer;
begin
i:=length(st);
while st[i]<>' 'do i:=i-1;
st1:=copy(st,i+1,length(st)-i);
end;
27

procedure slova(st:string;st1:string); |
|
var st2:string; |
|
begin |
|
|
while length(st)>length(st1) do |
|
begin |
|
st2:=copy(st,1,pos(' ',st)-1); |
|
if st2<>st1 then |
|
begin |
|
delete(st2,1,1); |
|
writeln(st2); |
|
end; |
|
delete (st,1,pos(' ',st)); |
|
end; |
end; |
28 |
|

{------MAIN------}
BEGIN
clrscr;
writeln('Vvedite stroky');
readln(st);
probil(st);
ost_slovo(st,st1);
slova(st,st1);
readln;
END.
29