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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2009, 20:22   #1
Wefast
 
Регистрация: 22.12.2009
Сообщений: 5
По умолчанию Задача на работу со строкой

1)Програма которая вводит с клавиатуры строку и находит длину самого короткого слова(слова-группа символов разделеные пробелами)
2) Программа , вводит с клавы строку и удаляет лишние пробелы

В общем надо что бы все это было в одной програме.
Wefast вне форума Ответить с цитированием
Старый 22.12.2009, 21:52   #2
Анатоль
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 74
По умолчанию

1ую часть напишу.
min := 1000000000;
for i := 1 to length(s) do
if s[i] = ' ' then
begin
if min > sc then
sc := min;
sc := 0;
end
else
inc(sc);
Анатоль вне форума Ответить с цитированием
Старый 22.12.2009, 22:15   #3
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

лишние пробелы это что?
Alex_FF вне форума Ответить с цитированием
Старый 22.12.2009, 23:51   #4
Wefast
 
Регистрация: 22.12.2009
Сообщений: 5
По умолчанию

Если два и более пробелов - то они уже лишние, надо один оставить пробел после слова.
Wefast вне форума Ответить с цитированием
Старый 22.12.2009, 23:59   #5
пауэрлифтинг
Заблокирован
 
Регистрация: 11.12.2009
Сообщений: 133
По умолчанию

Код:
var s: string; i,k,min: byte;
begin
readln(s);
i:=1;
min:=255;
while pos('  ',s)<>0 do delete(s,pos('  ',s),1);

while i<length(s) do
begin
k:=0;
if  not (s[i] in [' ',',','.',#0]) then
begin
repeat
inc(i);
inc(k);
until  (s[i] in [' ',',','.',#0]) ;
if k<min then min:=k;
end;
inc(i);
end;
writeln(s);
writeln(min);
readln
end.
пауэрлифтинг вне форума Ответить с цитированием
Старый 23.12.2009, 00:05   #6
пауэрлифтинг
Заблокирован
 
Регистрация: 11.12.2009
Сообщений: 133
По умолчанию

Код:
while pos('  ',s)<>0 do delete(s,pos('  ',s),1);
- удаляютса подряд идушие 2 и более пробела
пауэрлифтинг вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на работу со строками в С# OnlySergio Помощь студентам 1 29.11.2009 17:45
Борланд С++ 3.1 , задача со строкой Graf Xandr Помощь студентам 3 09.05.2009 14:37
Задача со строкой XaMeJleoH Паскаль, Turbo Pascal, PascalABC.NET 2 12.04.2009 19:07
Задача на работу с матрицай... Med Помощь студентам 2 22.03.2009 10:24
Задача со строкой Noxil Паскаль, Turbo Pascal, PascalABC.NET 9 22.11.2008 22:54