Сортировка строки в зависимости от длинны слов |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Сортировка строки в зависимости от длинны слов |
Mordok |
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
В общем надо составить процедуру которая сортировала бы строку в зависимости длинны слов от пробела до пробела. Т.е. на первом месте должно оказаться самое короткое слово, дальше слова идут по возрастанию длинны и на последнем месте самое длинное слово... Если не сложно подскажите плииз. Хотябы алгоритм...
Заранее благодарен. Сообщение отредактировано: Mordok - |
volvo |
Сообщение
#2
|
Гость |
Идешь сюда:
Разбиение на слова. Все способы. выбираешь любой способ разбиения строки на слова, сортируешь массив слов по возрастанию длины любым способом отсюда: Методы сортировок , собираешь слова в отсортированном порядке в строку... |
Mordok |
Сообщение
#3
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
спасибо большое за совет, только я придумал алгоритм гораздо проще....
если кому надо могу выложить. |
мисс_граффити |
Сообщение
#4
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
интересно...
выкладывай. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Mordok |
Сообщение
#5
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Ну вот мой алгоритм, я не буду писать процедуры просто напишу работающую программу
Цитата 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 лет назад, и с первого взгляда можно объяснить работу программы начиная с любой строки (даже через ГОДЫ, не говоря уже о месяце-двух)... А ты будешь переделывать программу заново каждый раз... Ну что ж, "каждому свое" (С)... |
Текстовая версия | 22.12.2024 12:39 |