![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
самое длинное слово
обморок © (2011-05-15 14:02:00)задание: дана последовательность слов, разделённых пробелами, вывести самое длинное слово(с наибольшим количеством букв).
вот так решил в паскале:
Var MaxL,C : String;
Pb : Byte;
begin
ClrScr;
WriteLn('vvedite slova:');
ReadLn(C);
MaxL := '';
While Pos(' ',C) <> 0 Do Begin
Pb := Pos(' ',C);
If Length(MaxL) < Length(Copy(C,1,Pb-1)) Then MaxL := Copy(C,1,Pb-1);
Delete(C,1,Pb);
End;
If Length(MaxL) < Length(C) Then MaxL := C;
WriteLn;
WriteLn('samoe dlinnoe slovo:');
WriteLn(MaxL);
ReadLn;
End.
(работает)
теперь нужно тоже самое сделать в дэлфи. Попробовал так:
procedure TForm1.Button1Click(Sender: TObject);
Var MaxL,C : String;
Pb : Byte;
begin
val(Memo1.Text,c,code);
MaxL := '';
While Pos(' ',C) <> 0 Do Begin
Pb := Pos(' ',C);
If Length(MaxL) < Length(Copy(C,1,Pb-1)) Then MaxL := Copy(C,1,Pb-1);
Delete(C,1,Pb);
End;
If Length(MaxL) < Length(C) Then MaxL := C;
Memo2.Lines.Add('самое длинное слово:');
Memo2.Lines.Add(MaxL);
end;
показывает ошибку в строке val(Memo1.Text,c,code);(это я хотел считаь введённую строку) но наверняка они и дальше есть))) Подскажите пожалуйста, как исправить программу.
обморок (2011-05-15 15:42:00) [1]
> MBo
Спасибо получилось.
MBo (2011-05-15 14:10:00) [2]c := Edit1.Text;
А по сути алгоритма - можно сделать очень просто.
Один проход по строке циклом for.
Встретили пробел - находим длину слова до предыдущего пробела, позицию которого запомнили. Запоминаем позицию текущего пробела.