Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Flare
В заданном наборе слов найти слово максимальной длины.
Помогите разобраться в программе. Какой бы длины не были остальные слова, она выдает, что самым длинным является последнее.
Код
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.
volvo
Flare, у меня нормально отработало:
Цитата(Console)
Введите строку:
this string is a test.
Самое длинное - string
Flare
А попробуй со словами, состоящими из 7-8 букв.. у меня не работает..
и еще вопросик.. не совсем понимаю, что такое nmax и imax...
klem4
imax указывает на начало слова, nmax - его длина.
volvo
Flare, все нормально:
Цитата(Console)
Введите строку:
to understand recursion you must understand recursion.
Самое длинное - understand
Flare
Спасибо, пойду еще раз тщательно все проверю..

Если можно, подскажите, как решить вот такую задачу..
Определить, какие символы и сколько раз встречаются в тексте.
Заранее спасибо
volvo
Я уже давал ссылку с ответом на этот вопрос (по-моему, даже тебе...) Так что пользуйся поиском...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.