- P1 — фopмиpования линейного списка S из символов стpоки текстового файла G;
- P2 — фоpмиpования множества M из символов стpоки заданного текстового файла G;
- P3 — исключения из заданного множества M букв латинского алфавита, входящих в заданный список S;
- P4 — вывода линейного списка символов S в текстовый файл H.
Используя эти пpоцедуpы создать список из букв файла F1, множество — из букв стpоки файла F2, а элементы множества, за исключением входящих в F1, вывести в файл F5. Линейный список уничтожить.
Program PascalGuru;
uses crt;
type
tabl = array [1 .. 256] of char;
M = set of char;
Var
f1, f2: text;
I, n, j, k: integer;
S1, s2: string;
s, s3: tabl;
M1, m2: M;
procedure zap_perv(Var f1: text);
begin
{ formiruem 1 file }
Assign(f1, 'G.txt'); { svyaz failovoj perem }
Rewrite(f1);
writeln('Vvedite simvoli v 1 file Enter-konec vvoda');
readln(S1);
writeln(f1, S1);
close(f1);
end;
procedure viv_perv(Var f1: text);
begin
Assign(f1, 'G.txt');
Reset(f1);
While not eof(f1) do
Begin
readln(f1, S1);
writeln(S1);
End;
close(f1);
end;
procedure p1(var f1: text; var s: tabl; var n: integer);
Begin
n := length(S1);
for I := 1 to n do
begin
s[I] := S1[I];
Write(s[I]:2);
end;
End;
procedure p2(var f1: text; var s: tabl; var M1: M);
Begin
n := length(S1);
M1 := [];
for I := 1 to n do
begin
include(M1, s[I]);
Write(s[I]:2);
end;
End;
procedure p3(var f1: text; var s, s3: tabl; var M1: M; var k: integer);
Begin
k := 0;
for I := 1 to n do
Begin
if (((ord(s[I]) > 65) and (ord(s[I]) < 90)) or
((ord(s[I]) > 97) and (ord(s[I]) < 122))) then
begin
exclude(M1, s[I]);
j := I + 1;
end
else
begin
k := k + 1;
s3[k] := s[I];
end;
end;
end;
procedure p4(Var f2: text; var k: integer);
begin
{ formir 2 file }
Assign(f2, 'H.txt'); { svyaz failovoj perem }
Rewrite(f2);
for I := 1 to k do
begin
write(f2, s3[I]);
include(m2, s3[I]);
write(s3[I]:2);
end;
close(f2);
end;
Begin
clrscr;
zap_perv(f1);
writeln('Vivod 1 file');
viv_perv(f1);
writeln('Vivod ryada');
p1(f1, s, n);
writeln;
writeln('Vivod mnogestva');
p2(f1, s, M1);
writeln;
p3(f1, s, s3, M1, k);
writeln('Ubrali latinicu');
p4(f2, k);
writeln;
writeln('Esli is mnoszestva elementov F2 vichest mnoszestvo elementov F1, to budet PUSTO! ');
readkey;
End.