В текстовом файле F1 задана последовательность символов, в F2 — другая последовательность. Разработать пpоцедуpы — Pascal(Паскаль)

  1. P1 — фopмиpования линейного списка S из символов стpоки текстового файла G;
  2. P2 — фоpмиpования множества M из символов стpоки заданного текстового файла G;
  3. P3 — исключения из заданного множества M букв латинского алфавита, входящих в заданный список S;
  4. 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.

Leave a Comment

30 − 20 =