14.04.2015, 04:30
|
Новичок
|
|
Регистрация: 22.12.2013
Сообщения: 67
Версия Delphi: Delphi 7
Репутация: 10
|
|
Переделать задачу на множества
Здравстуйте, как можно эту задачу сделать по множеству?(Паскаль)
Код:
const
bykvi='ЙЦУКЕНГШЩЗХЪЭЖДЛОРПАВЫФЯЧСМИТЬБЮйцукенгшщзхъэждлорпавыфячсмитьбю';
var
text, slovo, bykva,simslovo: string;
slovamas,simslova: array[1..100] of string;
seslovo: boolean;
i,masint, kolslov,j:integer;
begin
simslovo:='';
j:=0;
kolslov:= 0;
masint:= 0;
slovo:= '';
writeln('Введите предложение');
readln(text);
text:= text + ' ';
while pos(' ',text)>0 do
begin
delete(text,pos(' ',text),1);
end;
if pos(text[1], bykvi)<>0 then
begin
seslovo:= true;
end
else
begin
seslovo:= false;
end;
for i:=1 to length(text) do
begin
if seslovo = true then
begin
if pos(text[i], bykvi)<>0 then
begin
seslovo:= true;
slovo:= slovo + text[i];
end
else
begin
seslovo:= false;
masint:= masint + 1;
slovamas[masint]:= slovo;
kolslov:= kolslov + 1;
slovo:= '';
end;
end;
if seslovo = false then
begin
if pos(text[i], bykvi)<>0 then
begin
seslovo:= true;
slovo:= slovo + text[i];
end
else
begin
seslovo:= false;
end;
end;
end;
for i:=1 to kolslov do
begin
if length(slovamas[i][1]) = length(slovamas[i]) then
begin
j:=j+1;
simslova[j]:= slovamas[i];
end;
if length(simslovo) < length(slovamas[i]) then
begin
simslovo:= slovamas[i];
end;
end;
writeln('Самое длинное симметричное слово: ',simslovo);
end.
|