|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
04.04.2011, 09:37 | #1 (permalink) |
Новичок
Регистрация: 04.04.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Обработка данных литерного типа
Для произвольного текста вывести слова в порядке невозрастания их длин. заранее спасибо) |
04.04.2011, 09:37 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Схожие топики помогут пролить свет на решение вопроса Обработка файлов Обработка символьных данных Обработка txt Обработка алюминия Обработка массивов |
04.04.2011, 11:02 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
1) Это как? В порядке убывания, что ли?
2) Какой язык программирования нужно использовать?
__________________
Убить всех человеков! |
04.04.2011, 12:01 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Нет, тут всё верно: означает, что совпадающие по длинам слова не рассматривать, как ошибку, а просто располагать одно за другим.
Вообще-то нудная такая задачка: нужно вычленить из строки все слова командой copy (либо, как я это иногда делаю, "выбрасыванием" во вспомогательный файл командой writeln, чтобы каждое слово было на своей строке, затем считыванием командой readln), образовать из этих слов массив их длин, каковой упорядочить методом пузырька. Довольно много работы. |
09.04.2011, 12:11 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да ладно, без проблем:
Код:
VAR S,Dummy:String; i,j,Nw,i1,i2:Byte; W:Array[1..128] of String; BEGIN WriteLn('Enter the string:'); ReadLn(S); i:=0; Nw:=0; Repeat Repeat Inc(i); Until S[i]<>' '; i1:=i; While (S[i]<>' ') and (i<Length(S)) do Inc(i); If i=Length(S) then i2:=i else i2:=i-1; Inc(Nw); W[Nw]:=Copy(S,i1,i2-i1+1); Until i=Length(S); For i:=1 to Nw-1 do For j:=1 to Nw-i do If Length(W[j])<Length(W[j+1]) then begin Dummy:=W[j]; W[j]:=W[j+1]; W[j+1]:=Dummy; end; For i:=1 to Nw-1 do Write(W[i]+' '); WriteLn(W[Nw]); ReadLn; END. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
11.04.2011, 15:43 | #6 (permalink) |
Новичок
Регистрация: 04.04.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо:*
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|