Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2012, 00:50   #1
de_coder
 
Регистрация: 06.07.2012
Сообщений: 6
Сообщение Найти длину самого короткого слова

Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого короткого слова.
de_coder вне форума Ответить с цитированием
Старый 06.07.2012, 07:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://www.programmersforum.ru/showthread.php?t=11069
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2012, 13:28   #3
de_coder
 
Регистрация: 06.07.2012
Сообщений: 6
По умолчанию

Код:
var
  s, s1, smin: string;
  i: integer;
begin
  cls;
  write('Введите строку: ');
  readln(s);
  for i := 1 to length(s) do
    if (s[i] <> ' ') and (s[i + 1] = ' ') then begin
      s1 := s1 + s[i];
      if length(smin) < length(s1) then smin := s1;
      s1 := '';
    end
  else if s[i] <> ' ' then s1 := s1 + s[i];
  i := length(s1);
  write('Самое короткое слово состоит из ', i, ' букв');
end.
Что у меня неправельно? Находит длину только последнего слова!

Последний раз редактировалось de_coder; 08.07.2012 в 13:50.
de_coder вне форума Ответить с цитированием
Старый 08.07.2012, 13:49   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
var
  s, s1, smin: string;
  i: integer;

begin
  write('Введите строку: ');
  readln(s);
  smin := s;
  s1 := '';
  for i := 1 to length(s) do
    if s[i] <> ' ' then s1 := s1 + s[i]
   	else
    begin
      if (length(smin) > length(s1)) and (length(s1) > 0) then 
        smin := s1;
      s1 := '';
    end;
  if (length(smin) > length(s1)) and (length(s1) > 0) then smin := s1; 
  write('Самое короткое слово состоит из ',  length(smin), ' букв');
  readln;
end.
Цитата:
BDA, когда несколько пробелов, то не находит!
Исправлено.
Цитата:
Ошибочка
Цитата:
Введите строку: паскаль сиплюсплюс си
Самое короткое слово состоит из 7 букв
Исправлено (зря перенес begin).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 08.07.2012 в 14:45.
BDA на форуме Ответить с цитированием
Старый 08.07.2012, 14:14   #5
de_coder
 
Регистрация: 06.07.2012
Сообщений: 6
По умолчанию

BDA, когда несколько пробелов, то не находит!
de_coder вне форума Ответить с цитированием
Старый 08.07.2012, 14:34   #6
de_coder
 
Регистрация: 06.07.2012
Сообщений: 6
По умолчанию

Ошибочка
Цитата:
Введите строку: паскаль сиплюсплюс си
Самое короткое слово состоит из 7 букв
de_coder вне форума Ответить с цитированием
Старый 08.07.2012, 15:08   #7
de_coder
 
Регистрация: 06.07.2012
Сообщений: 6
По умолчанию

BDA, спасибо.
de_coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пользовательские функции. Подсчет количества слов, поиск самого короткого слова if_else Общие вопросы C/C++ 1 09.04.2012 22:53
Поиск самого короткого слова в тексте ZevS13 Общие вопросы C/C++ 3 07.06.2011 12:34
Нахождение самого короткого слова Диезушка Помощь студентам 2 20.10.2009 21:43
Pascal//определить длину самого короткого и самого длинного слова в строке ShnurOK Помощь студентам 2 16.12.2007 10:43