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

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

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

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





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

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


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

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


Гость






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





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

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


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


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

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

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


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


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


Гость






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

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

 





- Текстовая версия 23.09.2020 11:00
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name