Напечатать слова, которые входят в текст не менее 2 раз — Pascal(Паскаль)

Program Laba62;

uses crt;

type
  Slovo = array [1 .. 30] of string;

var
  S: string;
  Sl: Slovo;
  j, p, k, i: byte;
  W, V: boolean;

procedure GetWord(S: string; var Sl: Slovo; var k: byte);
var
  j: byte;
  st: string;
begin
  k := 0;
  j := 1;
  st := '';
  while j <= length(S) do
  begin
    while (S[j] = ' ') and (j <= length(S)) do
      j := j + 1;
    while (S[j] <> ' ') and (j <= length(S)) do
    begin
      st := st + S[j];
      j := j + 1;
    end;
    if st <> '' then
    begin
      k := k + 1;
      Sl[k] := st;
      st := '';
    end;
  end;
  writeln('Kilkist sliv: ', k);
end;

begin
  clrscr;
  write('Vvedit rechenna: ');
  readln(S);
  GetWord(S, Sl, k);
  for i := 1 to k - 1 do
  begin
    V := false;
    W := true;
    for p := 1 to i - 1 do
      if Sl[p] = Sl[i] then
        W := false;
    if W then
      for j := i + 1 to k do
        if Sl[i] = Sl[j] then
          V := true;
    if V then
      writeln(Sl[i]);
  end;
  readln

end.

Результат работы программы

Leave a Comment

30 − 29 =