Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв, между соседними словами - запята
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв, между соседними словами - запятая, за последним словом - точка. Напечатать все слова, предварительно оставить в слове только первые вхождения каждой буквы. Блок схема
program PascalGuru; var p:integer; s,slovo:string;
function slovo_uniq(s:string):string; label 1; var i,j:integer; begin 1: for i:=1 to length(s) do for j:=i+1 to length(s) do if s[i]=s[j] then {если находим повторяющуюся букву} begin delete(s,j,1); {удаляем букву} goto 1; {возвращаемся к начальной проверке с первой буквы} end;
slovo_uniq:=s; end;
begin write('Vvedite slova cerez probel:'); readln (s);
delete(s,length(s),1);{удаляем точку}
repeat {данный цикл проходит по строке и все слова переписывает в массив} p:=pos(',',s); {позиция запятой} slovo:=copy(s,1,p-1); {текущее слово} if p<>0 then writeln(slovo,' [',slovo_uniq(slovo),']'); {выводим текущее слово} if p<>0 then delete(s,1,p+1); {после добавления - удаляем из строки} until p=0;
delete(s,1,p); writeln(s,' [',slovo_uniq(s),']'); { последнее слово}