Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [pascal] Ошибка в работе программы, Нужное действи 
V
    Опции темы
Wefast
Дата 25.12.2009, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.12.2009

Репутация: нет
Всего: нет



Программа должна находить самое короткое слово, и удалять лишние пробелы. Так вот если ввести много пробелов в начале, потом слово , потом пробелы, а потом слово опять , то он не выводит самое короткое слово.
Код

uses crt;
var s,s1,s2,s3:string;
    mx,mn:byte;
begin
clrscr;
textcolor(White);
write('Строка:  ');
readln(s);
s:=s+' ';{добавление пробела в конец}
while pos('  ',s)>0 do{удаляем лишние пробелы, пока есть 2 пробела рядом}
delete(s,pos('  ',s),1);{1 удаляем}
mx:=0;mn:=255; {начальное значение}
 
 
textcolor(red);
writeln;
writeln('Строка без лишних пробелов: ',s);
while pos(' ',s)>0 do{пока есть пробел в строке}
 begin
  s1:=copy(s,1,pos(' ',s)-1);{копируем первое слово до пробела}
  if length(s1)<mn then{если меньше всех}
   begin
    mn:=length(s1); {самая маленькая длина}
    s2:=s1;     {запоминаем слово}
   end;
  delete(s,1,pos(' ',s));{удаляем это слово следующее будет первым}
 end;
textcolor(green);
writeln('Самое короткое слово ',s2);
readln
end.


PM MAIL   Вверх
volvo877
Дата 25.12.2009, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Ты забыл удалить из строки пробел (если он есть) на первой позиции:
Код
s:=s+' '; { добавление пробела в конец }
while pos('  ',s)>0 do { удаляем лишние пробелы, пока есть 2 пробела рядом }
  delete(s, pos('  ',s), 1);{ 1 удаляем }

if s[1] = ' ' then delete(s, 1, 1); { <--- Вот чего не хватало твоей программе }
, а дальше - все как было у тебя, уже будет находиться слово минимальной длины...
PM MAIL   Вверх
Wefast
Дата 25.12.2009, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.12.2009

Репутация: нет
Всего: нет



Спс, от души
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0636 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.