Помощь - Поиск - Пользователи - Календарь
Полная версия: Обработка символов и строк
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
annna
Дано несколько слов, в каждом из которых от одной до семи строчных букв; между соседними словами - не менее одного пробела, за последним словом точка. Напечатать слово с максимальной длиной.
APAL
Где-то подобная задача уже была...

Пишу прямо здесь, без проверки:
Код
Function GetMaxLengthSt(St : String) : String;
Var
 Smax,Scur : String;
 i : Byte;
Begin
 Scur:=''; i:=1;
Repeat
 While St[i]=' ' do Inc(i);
 While (St[i]<>' ')  and (St[i]<>'.') do
 Begin
   Scur:=Scur+St[i];
   Inc(i);
 End;
 If Length(Scur)>Length(Smax) then Smax:=Scur;
Until St[i]='.';
 GetMaxLengthSt:=Smax;
End;
P@sh@
Код

var s: string;
   i,n,imax,nmax: integer;
begin
 writeln('Введите строку:');
 readln(s);
 i:=1; nmax:=0;
 repeat
   while s[i]=' ' do i:=i+1;
   n:=i;
   while (s[i]<>' ') and (s[i]<>'.') do i:=i+1;
   if i-n>nmax then begin
     nmax:=i-n; imax:=n;
   end;
 until s[i]='.';
 if nmax=0 then writeln('Просто нет слов')
 else writeln('Самое длинное - ',copy(s,imax,nmax));
end.

написал только что... не проверял
P@sh@
блин, опоздал немного... smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.