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

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

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

 
 Ответить  Открыть новую тему 
> Сортировка вставками, Нужна помошь...
сообщение
Сообщение #1


Новичок
*

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

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


Помогите пожалуйста...вот у меня программа...она сортирует текст но с каждой строкой заново...а мне надо переделать чтобы весь текст сортировался вместе...и ещё чтобы каждое слово было пронумеровано в соответствии с тем на каком месте оно стояло в исходном тексте...никак не могу понять как это сделать...помогите...

uses crt;
var
f1,f2:text;
a:array[1..100]of string;
b,t:string;
k,i,j:integer;
c:set of char;
begin
c:=['.',',',';',':','(',')','-','!','?'];
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
while not eof(f1) do
begin
clrscr;
readln(f1,b);
k:=0;
b:=' '+b;
for i:=1 to length(b) do
if b[i]=' 'then inc(k)
else if not (b[i] in c) then a[k]:=a[k]+b[i];
for i:=2 to k do begin
j:=i;
t:=a[i];
while (j>1) and (a[j-1]>t)do begin
a[j]:=a[j-1];
j:=j-1;
end;
a[j]:=t;
end;
for i:=1 to k do
write(f2,a[i],' ');
writeln(f2);
for i:=1 to k do
a[i]:='';
end;
writeln('END!!!');
readln;
close(f1);
close(f2);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

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


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


Новичок
*

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

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


Цитата(Client @ 5.10.2010 18:46) *

сделай 1 массив для слов, второй для хранения номеров. Останется отсортировать второй вместе с первым, чтоб не потерять исходного положения слов.

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


Гость






Цитата
как сделать чтобы текст весь полностью сортировался???
Сначала полностью прочесть весь текст (построчно), разбить на слова (что ты делаешь сейчас), и только потом сортировать массив слов.

У тебя же сейчас (насколько видно из твоего неформатированного кода, мне форматировать лень, возьми программу отсюда: Графическая оболочка для PtoP и приведи исходник в порядок) происходит вот что: прочел из входного файла строку, отсортировал, записал в другой файл, читаешь следующую строку входного файла. Так не пойдет.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


ооо...спасибо за программу...вот исходник:


Uses crt;

Var
f1,f2: text;
a: array[1..100] Of string;
b,t: string;
k,i,j: integer;
c: set Of char;
Begin
c := ['.',',',';',':','(',')','-','!','?'];
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
While Not eof(f1) Do
Begin
clrscr;
readln(f1,b);
k := 0;
b := ' '+b;
For i:=1 To length(b) Do
If b[i]=' 'Then inc(k)
Else If Not (b[i] In c) Then a[k] := a[k]+b[i];
For j:=2 To k Do
Begin
t := a[j];
While (j>1) And (a[j-1]>t) Do
Begin
a[j] := a[j-1];
j := j-1;
End;
a[j] := t;
End;
For i:=1 To k Do
write(f2,a[i],' ');
writeln(f2);
For i:=1 To k Do
a[i] := '';
End;
writeln('END!!!');
readln;
close(f1);
close(f2);
End.



Но я всё равно не пойму как сделать чтобы весь текст сначала прочитать а потом его сортировать...

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


Новичок
*

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

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


Помогите пожалуйста...ничего в голову не лезет(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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