Форум: "Начинающим";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];
Внизсамое длинное слово Найти похожие ветки
← →
обморок © (2011-05-15 14:02) [0]задание: дана последовательность слов, разделённых пробелами, вывести самое длинное слово(с наибольшим количеством букв).
вот так решил в паскале:
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);(это я хотел считаь введённую строку) но наверняка они и дальше есть))) Подскажите пожалуйста, как исправить программу.
← →
MBo © (2011-05-15 14:10) [1]c := Edit1.Text;
А по сути алгоритма - можно сделать очень просто.
Один проход по строке циклом for.
Встретили пробел - находим длину слова до предыдущего пробела, позицию которого запомнили. Запоминаем позицию текущего пробела.
← →
обморок © (2011-05-15 15:42) [2]
> MBo
Спасибо получилось.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.003 c