Распечатать самое длинное слово
Дано n строк.Распечатать для каждой строки слово,имеющее наибольшую длину.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Допустим N строк хранятся в массиве S.
Letters - это множество символов, составляющиеся слова.
например Set of char = ['A','Z','a','z','А','Я','а','я']
Все остальное считается разделителями.
PS
1) посмотрите аргументы функции copy. Дано ею не пользовался. Не помню порядок аргументов
2) при использовании в Delphi используйте квалификатор System. Т.е. System.copy...
Letters - это множество символов, составляющиеся слова.
например Set of char = ['A','Z','a','z','А','Я','а','я']
Все остальное считается разделителями.
Код: Выделить всё
for i:=1 to N do begin
MaxLen:=0; Len:=0; Pos:=0; MaxPos:=0;
for j:=1 to length(S[i]) do begin
if S[i][j] in Letters then begin {слово продолжается}
inc(Len);
if Len=1 then Pos:=j; {запоминаем, где оно началось}
end else begin {слово закончилось}
if Len>MaxLen then begin {...и если оно длинее MaxLen...}
MaxLen:=Len; {...запоминаем его длину и положение}
MaxPos:=Pos;
end;
end;
end; {i-я строка обработана}
if MaxPos>0
then writeln('в строке ',i,' самое длинное слово: ' copy(S[i]),MaxPos,MaxLen));
else writeln('в строке ',i,' не найдено ниодного слова');
end;
1) посмотрите аргументы функции copy. Дано ею не пользовался. Не помню порядок аргументов
2) при использовании в Delphi используйте квалификатор System. Т.е. System.copy...