IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Сортировка строки в зависимости от длинны слов
Mordok
сообщение 2.12.2006 17:34
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


В общем надо составить процедуру которая сортировала бы строку в зависимости длинны слов от пробела до пробела. Т.е. на первом месте должно оказаться самое короткое слово, дальше слова идут по возрастанию длинны и на последнем месте самое длинное слово... Если не сложно подскажите плииз. Хотябы алгоритм...
Заранее благодарен.

Сообщение отредактировано: Mordok - 2.12.2006 17:58
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 2.12.2006 18:15
Сообщение #2


Гость






Идешь сюда:
Разбиение на слова. Все способы.
выбираешь любой способ разбиения строки на слова, сортируешь массив слов по возрастанию длины любым способом отсюда:
Методы сортировок
, собираешь слова в отсортированном порядке в строку...
 К началу страницы 
+ Ответить 
Mordok
сообщение 2.12.2006 23:51
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


спасибо большое за совет, только я придумал алгоритм гораздо проще....
если кому надо могу выложить.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 3.12.2006 0:06
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


интересно...
выкладывай.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mordok
сообщение 3.12.2006 14:58
Сообщение #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.



все просто, берем строку считаем длинну от пробела до пробела или до точки (можно еще и другие символы но это не важно), записывам длинну слов и индексы начала слова в отдельные массивы, затем пузырьком сортируем длинны и индексы (в зависимости от длинны естественно) ну и в конце записываем все в новую строку по этим отсортированным массивам индексов и длинн...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.12.2006 16:00
Сообщение #6


Гость






Цитата
только я придумал алгоритм гораздо проще....
Я посмотрю, как ты с этим ПРОСТЫМ алгоритмом (а точнее - с его реализацией) разберешься через месяц, если тебе это понадобится (а оно понадобится, даже не сомневайся)... Вот то что я тебе предложил - я сделал 6 лет назад, и с первого взгляда можно объяснить работу программы начиная с любой строки (даже через ГОДЫ, не говоря уже о месяце-двух)... А ты будешь переделывать программу заново каждый раз... Ну что ж, "каждому свое" (С)...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:18
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"