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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2013, 23:35   #1
lyubashka21
Новичок
Джуниор
 
Регистрация: 15.07.2013
Сообщений: 5
По умолчанию Строка символов

Дана строка символов, состоящая из слов. Найти длину самого короткого слова. Помогите плз
lyubashka21 вне форума Ответить с цитированием
Старый 15.07.2013, 23:43   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

У вас есть наработки? Что сами сделали?
Кстати, откуда/как в середине лета появилась у вас задача?

Последний раз редактировалось Вадим Мошев; 15.07.2013 в 23:46.
Вадим Мошев вне форума Ответить с цитированием
Старый 15.07.2013, 23:53   #3
lyubashka21
Новичок
Джуниор
 
Регистрация: 15.07.2013
Сообщений: 5
По умолчанию

Есть подобная задача, не знаю что исправить, чтобы работала с моим условием...

Пользователь вводит предложение, программа печатает слова длинна которых максимальная.
Код:
uses crt;
var s,sl,smax: string;
* * i,dmax: integer;
begin
write('Введите строку ');
readln(s);
s:=s+' '; sl:='';dmax:=0;
for i:=1 to length(s) do
* * if s[i]<>' ' then sl:=sl+s[i] else
* * * *begin
* * * *if length(sl)>dmax then
* * * * * begin
* * * * * dmax:=length(sl);
* * * * * smax:=sl;
* * * * * end;
* * * *sl:='';
* * * *end;
writeln ('Самые длинные слова длиной в ',dmax,' символов:');
for i:=1 to length(s) do
* * if s[i]<>' ' then sl:=sl+s[i] else
* * * *begin
* * * *if length(sl)=dmax then
* * * * * write(sl,' ');
* * * *sl:='';
* * * *end;
readkey
end.

Последний раз редактировалось Stilet; 16.07.2013 в 07:58.
lyubashka21 вне форума Ответить с цитированием
Старый 16.07.2013, 00:13   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Поправил в вашем коде то, что в глаза бросалось
Код:
uses crt;
var s,sl,smax: string;
i,dmax: integer;
begin
write('Введите строку ');
readln(s);
s:=s+' '; {не уверен в необходимости этой строки, скорей всего, она не нужна}
sl:='';dmax:=length(s);
for i:=1 to length(s) do
	 if s[i]<>' ' then sl:=sl+s[i] else
		begin
			if length(sl)<dmax then
			 begin
				dmax:=length(sl);
				smax:=sl;
			 end;
			sl:='';
		end;
		
writeLn('Длина самого короткого слова равна: ', dmax);

end.
Кстати, оформляйте ваш код кнопочкой #

Последний раз редактировалось Вадим Мошев; 16.07.2013 в 00:17.
Вадим Мошев вне форума Ответить с цитированием
Старый 16.07.2013, 00:14   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Простой конечный автомат:

Код:
const
  spaces = [#9,#10,#13,#32];

var
  s: string;
  i, min, len: integer;

begin
  readln (s);
  s := s + ' ';
  min := high (min);
  len := 0;
  for i := 1 to length (s) do begin
    if s[i] in spaces then begin
      if (len < min) and (len > 0) then min := len;
      len := 0;
    end else inc (len);
  end; {for}
  if s = ' ' then min := 0;
  writeln (min);
  readln;
end.
Arigato на форуме Ответить с цитированием
Старый 16.07.2013, 00:16   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вадим Мошев, дописывание пробела нужно, чтобы не делать лишней проверки после конца строки (вдруг последнее слово удовлетворяет условию).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 16.07.2013, 00:19   #7
lyubashka21
Новичок
Джуниор
 
Регистрация: 15.07.2013
Сообщений: 5
По умолчанию

спасибо большое)))
lyubashka21 вне форума Ответить с цитированием
Старый 16.07.2013, 00:21   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от lyubashka21 Посмотреть сообщение
спасибо большое)))
У вас всё работает?
Вадим Мошев вне форума Ответить с цитированием
Старый 16.07.2013, 00:31   #9
lyubashka21
Новичок
Джуниор
 
Регистрация: 15.07.2013
Сообщений: 5
По умолчанию

все работает)) огромное спасибо, выручили)
lyubashka21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка символов. Подсчитать, сколько различных символов встречаются в ней. Вывести их на экран Алена_=))) Microsoft Office Word 1 17.06.2012 21:04
Дана последовательность символов (строка). Группу символов, разделенную с одной или обеих сторон пробелам viper1941 Паскаль, Turbo Pascal, PascalABC.NET 1 14.04.2011 08:46
Строка символов cranxx Общие вопросы C/C++ 2 04.12.2010 17:49
Строка символов grimm_jow Общие вопросы по Java, Java SE, Kotlin 3 14.06.2010 11:56