![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Mordok |
![]() ![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
В общем надо составить процедуру которая сортировала бы строку в зависимости длинны слов от пробела до пробела. Т.е. на первом месте должно оказаться самое короткое слово, дальше слова идут по возрастанию длинны и на последнем месте самое длинное слово... Если не сложно подскажите плииз. Хотябы алгоритм...
Заранее благодарен. Сообщение отредактировано: Mordok - 2.12.2006 17:58 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Идешь сюда:
Разбиение на слова. Все способы. выбираешь любой способ разбиения строки на слова, сортируешь массив слов по возрастанию длины любым способом отсюда: Методы сортировок , собираешь слова в отсортированном порядке в строку... |
Mordok |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасибо большое за совет, только я придумал алгоритм гораздо проще....
если кому надо могу выложить. |
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
интересно...
выкладывай. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Mordok |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну вот мой алгоритм, я не буду писать процедуры просто напишу работающую программу
Цитата const A=30; t='.'; p=' '; type T_Array=array[1..A] of integer; var s1,sortpr:string; i,j,k,n,cons,cons1:integer; f,f1:boolean; index,dlinna:T_Array; begin readln (s1); sortpr:=''; i:=0;j:=0;k:=0; while i<>length(s1) do begin f:=false; i:=i+1; k:=i; repeat if (s1[i]=t) or (s1[i]=p) then begin f:=true; j:=j+1; end else i:=i+1; until f; n:=i-k; index[j]:=k; dlinna[j]:=n; end; begin repeat f1 := FALSE; for j := 1 to A-1 do if dlinna[j] > dlinna[j+1] then begin cons := dlinna[j]; cons1:= index[j]; dlinna[j] := dlinna[j + 1]; index[j]:= index[j+1]; dlinna[j + 1] := cons; index[j+1]:=cons1; f1 := TRUE; end; until not f1; end; begin for j:=1 to a do for k:=1 to length(s1) do if (k>=index[j])and(k<=index[j]+dlinna[j]) then sortpr:=sortpr+s1[k]; end; write(sortpr); readln; end. все просто, берем строку считаем длинну от пробела до пробела или до точки (можно еще и другие символы но это не важно), записывам длинну слов и индексы начала слова в отдельные массивы, затем пузырьком сортируем длинны и индексы (в зависимости от длинны естественно) ну и в конце записываем все в новую строку по этим отсортированным массивам индексов и длинн... |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата только я придумал алгоритм гораздо проще.... Я посмотрю, как ты с этим ПРОСТЫМ алгоритмом (а точнее - с его реализацией) разберешься через месяц, если тебе это понадобится (а оно понадобится, даже не сомневайся)... Вот то что я тебе предложил - я сделал 6 лет назад, и с первого взгляда можно объяснить работу программы начиная с любой строки (даже через ГОДЫ, не говоря уже о месяце-двух)... А ты будешь переделывать программу заново каждый раз... Ну что ж, "каждому свое" (С)... |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:18 |