Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Pautina
Помогите, что-то не получается. Программа должна находить в заданном наборе слово максимальной длины, а выводится длина всех символов
СПАСИБО!
Pautina
Посмотрите, пожалуйста, программу.. Никак не могу найти в чем моя ошибка..
nikita182
я с бодуном сижу)) не стал ошибку искать. мой вариант:


uses crt;

var
i : integer;
s : string;
n : integer;
max : integer;
smax : string;

begin
clrscr;
writeln ('vvodi');
readln (s);
n := 0;
max := 0;
for i := 1 to length(s) do begin
if s[i] <> ' ' then
n := n + 1;
if (s[i] = ' ') or (i = length(s)) then
if n > max then begin
max := n;
smax := copy (s, i - n, n + 1);
n := 0;
end;
end;
writeln ('maximalnoe - ', smax);

readkey;
end.

Айра
Цитата
не стал ошибку искать. мой вариант:

Введи "4444 22 333" и посмотри, что она выдаст smile.gif
Вот мой вариант:
uses wincrt;
var s,word: string;
max,p: integer;
begin
writeln ('введите строку');
readln (s);
max:=0;
repeat
begin
p:=pos(' ',s);
if p=0 then
begin
if length(s)>max then
begin
max:=length(s);
word:=copy(s,1,length(s));
end;
delete(s,1,max);
end
else if (p-1)>max then
begin
max:=p-1;
word:=copy(s,1,p-1);
delete(s,1,p);
end
else if ((p-1)<max) or ((p-1)=max) then delete(s,1,p);
end;
until length(s)=0;
writeln('Максимальная длина слова: ',max,'');
writeln('Самое длинное слово: ',word,'');
end.


1.p.s. Почему-то кажется, что можно сделать по-проще..
2.p.s. Ой.. нашла и у себя ошибку wink.gif, если в строке есть одинаковые по длине слова, то зависает, сейчас исправлю..
3.p.s. Исправила smile.gif
nikita182
ну сказал же что с бодуна..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.