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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 12:31   #1
Broken Angel
Пользователь
 
Регистрация: 31.12.2010
Сообщений: 14
Восклицание Удаление длинных слов из строки

Прошу помочь. Я написала прогу для подсчета кол-ва букв в словах и теперь не знаю, как сравнить полученные результаты с заданным параметром d (d - максимальная длина слова, задающаяся с клавиатуры) и удалить те, которые длиннее чем d.
Вот моя программа:
Код:
uses crt;
var
d:integer;
s,s1:string;
begin
writeln('Введите строку:');
readln(s);
write('Введите максимальную длину слова: ');
readln(d);
 if (Length(s)>0) and (Copy(s,Length(s),1)<>' ') then
     s := s + ' ';
 begin
 while pos(' ',s)<>0 do begin
    if pos(' ',s)>1 then begin
       s1:=copy(s,1,pos(' ',s)-1);
         writeln('В слове ',s1,' - ',length(s1),' символ(ов)');
  delete(s,1,pos(' ',s));      
end;
end;
end;
end.
Broken Angel вне форума Ответить с цитированием
Старый 16.01.2011, 12:44   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну вот смотрите (по вашему примеру)
Код:
uses crt;
var
d:integer;
s,s1:string;
begin
writeln('Введите строку:');
readln(s);
write('Введите максимальную длину слова: ');
readln(d);
 if (Length(s)>0) and (Copy(s,Length(s),1)<>' ') then
     s := s + ' ';
 begin
 i := 1;
 j := 0;
 while j <> length(s) do 
 begin
       s1:=copy(s,i,pos(' ',s)-1);
       j := pos(' ',s);
       if d < length(s1) then
            delete(s,i,pos(' ',s));
       i := (j +1);      
end;
end;
end;
end.
Писал с потолка!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.01.2011, 12:54   #3
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Можно так сделать:
Код:
var
	d:integer;
	s,s1:string;
begin
	writeln('Введите строку:');
	readln(s);
	write('Введите максимальную длину слова: ');
	readln(d);
	s1 := '';
	while length(s) <> 0 do
	begin
		if pos(' ', s) <> 0 then
		begin
			if length(copy(s, 1, pos(' ', s)-1)) <= d then
				s1 := s1 + copy(s, 1, pos(' ', s));
			delete(s, 1, pos(' ',s));
		end else
		begin
			if length(copy(s, 1, length(s))) <= d then
				s1 := s1 + copy(s, 1, length(s));
			delete(s, 1, length(s));
		end;
	end;
	writeln(s1);
end.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 16.01.2011, 13:14   #4
Broken Angel
Пользователь
 
Регистрация: 31.12.2010
Сообщений: 14
Радость

Спасибо огромнейшее!
Broken Angel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки(гласные из двух самых длинных слов) BaronVik Помощь студентам 1 06.11.2010 18:47
Двумерные массивы и определение количества длинных слов Selfish Общие вопросы Delphi 1 05.07.2010 07:37
Удаление слов из строки. grave123 Общие вопросы C/C++ 2 20.12.2009 15:01
Удаление слов из строки С vivo89 Помощь студентам 4 13.11.2009 22:13
КАК составить программу для нахождения самых длинных слов из текста DJONIK93 Общие вопросы C/C++ 5 28.10.2009 21:34