Другие языки программирования и технологии
помогите пожалуйста решить задачу по Delphi
Дана строка, состоящия из русских слов, разделенных пробелами (с одним или несколькими).Найти длину самого длинного слова. P.S:За ранее благодарен.
Размер благодарности?
пиши в агент или аську 452371863
пиши в агент или аську 452371863
Ну если на 100% уверен, что в строке будут только русские буквы, то можно использовать такую функцию:
function MaxWordCount(const Text: string): Integer;
var
Index, Size: Integer;
begin
Result := 0;
Size := 0;
for Index := 1 to Length(Text) do
if Text[Index] = ' ' then
begin
if Size > Result then Result := Size;
Size := 0;
end
else
Inc(Size);
if Size > Result then Result := Size;
end;
Но если там могут встречаться другие символы, а нужно посчитать только русские слова, то можно использовать функцию:
function MaxRussianWordCount(const Text: string): Integer;
const
cRussianChars = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
var
Index, Size: Integer;
Skipped: Boolean;
begin
Result := 0;
Size := 0;
Skipped := False;
for Index := 1 to Length(Text) do
if Text[Index] = ' ' then
begin
if (Size > Result) and not Skipped then Result := Size;
Size := 0;
Skipped := False;
end
else
begin
if AnsiPos(Text[Index], cRussianChars) = 0 then
Skipped := True;
Inc(Size);
end;
if (Size > Result) and not Skipped then Result := Size;
end;
function MaxWordCount(const Text: string): Integer;
var
Index, Size: Integer;
begin
Result := 0;
Size := 0;
for Index := 1 to Length(Text) do
if Text[Index] = ' ' then
begin
if Size > Result then Result := Size;
Size := 0;
end
else
Inc(Size);
if Size > Result then Result := Size;
end;
Но если там могут встречаться другие символы, а нужно посчитать только русские слова, то можно использовать функцию:
function MaxRussianWordCount(const Text: string): Integer;
const
cRussianChars = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
var
Index, Size: Integer;
Skipped: Boolean;
begin
Result := 0;
Size := 0;
Skipped := False;
for Index := 1 to Length(Text) do
if Text[Index] = ' ' then
begin
if (Size > Result) and not Skipped then Result := Size;
Size := 0;
Skipped := False;
end
else
begin
if AnsiPos(Text[Index], cRussianChars) = 0 then
Skipped := True;
Inc(Size);
end;
if (Size > Result) and not Skipped then Result := Size;
end;
Попробую написать функцию для Делфей, но Pascal\Object Pascal(Delphi) плохо помню
function FindLengthOfLongestWords(str:string)
var i,forCalculate, maxLength:integer;
begin
forCalculate:=0;
maxLength:=0;
for i:=1 to length(str) do begin
if(str<>' ') do begin
forCalculate:=forCalculate+1;
end
else begin
if(forCalculate>maxLength) begin
maxLength:=forCalculate;
end;
forCalculate:=0;
end;
end;
FindLengthOfLongestWords:=maxLength;
end;
Что-то в этом роде. Однако мог где-то не закрыть begin-end и от языка C\C# проявилась привычка писать лишние begin-end, но это сам исправишь
function FindLengthOfLongestWords(str:string)
var i,forCalculate, maxLength:integer;
begin
forCalculate:=0;
maxLength:=0;
for i:=1 to length(str) do begin
if(str<>' ') do begin
forCalculate:=forCalculate+1;
end
else begin
if(forCalculate>maxLength) begin
maxLength:=forCalculate;
end;
forCalculate:=0;
end;
end;
FindLengthOfLongestWords:=maxLength;
end;
Что-то в этом роде. Однако мог где-то не закрыть begin-end и от языка C\C# проявилась привычка писать лишние begin-end, но это сам исправишь

Похожие вопросы
- Помогите плз решить задачу в Delphi.
- Помогите пожалуйста решить задачу в Turbo Delphi.
- Помогите пожалуйста с задачей в delphi !
- помогите пожалуйста решить задачу по работе компьютера!
- Помогите пожалуйста решить задачу по программированию. В чем я ошибаюсь?
- Помогите,пожалуйста,решить задачу в Паскале.
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Помогите пожалуйста решить задачи по программированию. P.S: задачи по паскалю.
- Помогите,пожалуйста,решить задачу на двумерные массивы,в паскале.(задача вн.)Спасибо.
- Помогите пожалуйста решить задачу С++