Дан текст. Напечатать все слова, которые входят в текст по одному разу.

code: #pascal
Program PascalGuru;
 
procedure delPROB (var s:string);   {функция удаления пробела}
var  i:integer;
begin
i:=1;
repeat
if copy(s,i,2)='  ' then delete(s,i,1) else inc(i);
until i>length(s);
end;    {---конец функции удаления пробела}
{----------------------------------}
var s,x:string;  {ниже идёт объявление переменных}
    i,j,p,n:integer;
    A:array[1..50] of string;
    b:boolean;
 
{----------------------------------}
begin
write('Vvedite stroky slov (text) otdelennymi probelami: ');
readln(s);  { считываем исходную строку}
delPROB(s); {удаляем лишние пробелы}
j:=0;   {обнуляем счётчик кол-ва слов}
repeat  {начало  цикла преобразования строки слов - в массив строк}
inc(j); {увеличиваем счётчик кол-ва слов на +1}
p:=pos(' ',s);   {находим позицию пробела}
x:=copy(s,1,p-1);{вычисляем текущее слово}
if p=0 then x:=s;{проверяем - состоит ли строка из 1 слова  }
A[j]:=x; {текущее слово записываем в массив}
delete(s,1,p); {удаляем это слово из строки}
until p=0; {--- конец  цикла преобразования строки слов - в массив строк}
n:=j;
 
writeln;
Writeln('Nepovtoryaiuciesia slova:');
Writeln('_________________________');
 
for i := 1 to n do
begin
b := true;
for j := 1 to n do
if (i<>j) and (A[j]=A[i]) then b:=false;
if b then Writeln(A[i],' ');end;
 
 
readln;
end.      
Поделиться:

Похожие статьи: