Консультация № 45255
05.06.2006, 14:04
0.00 руб.
0 3 3
Здравствуйте уважаемые программисты.
Мне нужен текст программы, которая находит самое длинное слово в предложении. Знаю, что программа простая, но написать немогу. Заранее спасибо.!!!

Обсуждение

Неизвестный
05.06.2006, 14:40
общий
это ответ
Здравствуйте, Роман Сергеeвич Магнитский!
Хм...ну писать программу я, конечно, не буду. Но идею подскажу. Делаете цикл. В нем идете и копируете в переменную s символы, пока не встретите пробел или знак препинания. Смотрите, если символов в s больше чем в переменной max, то делаете
max:=s; Иначе обнуляете s. И т.д. Идете по циклу дальше, пока не закончится строка. Вроде бы идея ясна? Если что - прошу в мини-форум или в личку.

Неизвестный
05.06.2006, 19:50
общий
это ответ
Здравствуйте, Роман Сергеeвич Магнитский!
А я решил написать кодРаботает циклами с использованием динамических массивов. Подразумевается, что в Edit1 находится исходное предложение, а в Label1 выводится результат анализа - самое длинное слово и кол-во букв в нём.

Приложение:
Var P1,P2,C,I,Max: Integer; S,Word,Res: String; Words: Array Of String;beginS:=Edit1.Text;P1:=1;P2:=1;C:=0;SetLength(Words,0);While P2 < Length(S) DoBeginWhile S[P2]<>‘ ‘ DoBeginInc(P2);End;Word:=Copy(S,P1-1,P2-P1+1);If Word[1] = ‘ ‘ Then Word:=Copy(Word,2,Length(Word));If Word[Length(Word)] = ‘ ‘ Then SetLength(Word,Length(Word)-1);Inc(C);SetLength(Words,C);Words[C-1]:=Word;//ListBox1.Items.Add(Word);P1:=P2+2;P2:=P1;End;Max:=Length(Words[0]);Res:=Words[0];For I:=0 To C-1 Do If (Length(Words[I]) > Max) Then Begin Max:=Length(Words[I]); Res:=Words[I]; End;Label1.Caption:=Res+‘ (‘+IntToStr(Max)+‘ букв)‘;
давно
Мастер-Эксперт
425
4118
06.06.2006, 06:33
общий
это ответ
Здравствуйте, Роман Сергеeвич Магнитский!
К предложеному выше еще добавлю, что если выделеные из предложения слова добавлять в компонент TStringList, а потом отсортировать его, сделав TStringList.Sorted:=True, то самое последнее слово в списке и будет самым длинным в предложении. :)
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Форма ответа