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

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

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

> Сортировка вставками, Программно реализовать алгоритм сортировки простыми вставками.
Nelson1992
сообщение 16.09.2010 17:52
Сообщение #1


Новичок
*

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

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


Здравствуйте...помогите пожалуйста разобраться с задачей...


Программно реализовать алгоритм сортировки простыми вставками. Каждая запись будет в качестве ключа содержать текстовое выражение, а в качестве информативной части некоторое число.

Тестовый набор записей перед сортировкой необходимо загрузить в память из файла. Файл с тестовым набором необходимо создать. Затем при необходимости изменить у него кодировку (в зависимости от того, в какой ОС Вы осуществляете программную реализацию). После этого для каждой записи берем в качестве ключа слово из исходного файла, а для информативной части его порядковый номер в исходном тексте. Для преобразования текстового файла в набор записей также необходимо выполнить программную реализацию, которая к тому же должна предусматривать создания определенного количества записей.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Гость
сообщение 29.09.2010 20:44
Сообщение #2


Гость






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

uses crt,dos;
type string10=string[10];
link_type=^list_type;
list_type=record value:string10;
count:integer;
link:link_type;
end;
longint_link=^longint;
procedure files_names_query(var read_file,write_file,error:string);
var f:text;
begin
error:='';
write('Считываемый файл: ');
readln(read_file);
assign(f,read_file);
{$I-}
reset(f);
if (ioresult=0)
then
begin
close(f);
write('Файл для записи: ');
readln(write_file);
end
else
begin
error:='Ошибка: файл не существует.';
end;
{$I+}
end;
procedure put_into_list(s:string; var root:pointer);
var element,prev_element,new_element:link_type;
searched:boolean;
begin
if (root=nil)
then
begin
new(element);
root:=element;
element^.value:=s;
element^.count:=1;
element^.link:=nil;
end
else
begin
searched:=FALSE;
element:=root;
prev_element:=nil;
while ((element<>nil)and(not searched)) do
begin
if (element^.value=s)
then
begin
element^.count:=element^.count+1;
searched:=TRUE;
end;
if (prev_element<>nil)
then
begin
if ((prev_element^.value<s)and(element^.value>s))
then
begin
new(new_element);
new_element^.value:=s;
new_element^.count:=1;
new_element^.link:=prev_element^.link;
prev_element^.link:=new_element;
searched:=TRUE;
end;
end
else
begin
if (element^.value>s)
then
begin
new(new_element);
new_element^.value:=s;
new_element^.count:=1;
new_element^.link:=element;
root:=new_element;
searched:=TRUE;
end;
end;
prev_element:=element;
element:=element^.link;
end;
if (not searched)
then
begin
new(new_element);
new_element^.value:=s;
new_element^.count:=1;
new_element^.link:=prev_element^.link;
prev_element^.link:=new_element;
end;
end;
end;
procedure reading(read_file:string; var root:pointer);
var simbol:char;
f:text;
s:string;
begin
s:='';
assign(f,read_file);
reset(f);
while (not eof(f)) do
begin
while (not eoln(f)) do
begin
read(f,simbol);
if (simbol<>' ')
then
begin
s:=s+simbol;
end
else
begin
if (s<>'')
then
put_into_list(s,root);
s:='';
end;
end;
if (s<>'')
then
put_into_list(s,root);
readln(f,s);
end;
close(f);
end;
procedure writing(root:pointer; write_file:string);
var f:text;
element:link_type;
s,count:string;
begin
assign(f,write_file);
rewrite(f);
element:=root;
while (element<>nil) do
begin
s:=element^.value;
str(element^.count,count);
s:=s+'-'+count;
writeln(f,s);
element:=element^.link;
end;
close(f);
end;
var read_file,write_file,error:string;
root:pointer;
begin
root:=nil;
if (paramstr(1)<>''){если есть параметры командной строки}
then{то}
begin
read_file:=paramstr(1);{считываемый файл - первый параметр}
write_file:=paramstr(2);{выходной файл - второй параметр}
reading(read_file,root);{считывание из файла и сортировка слов}
writing(root,write_file);{запись в файл}
end
else{если нет, то}
begin
files_names_query(read_file,write_file,error);{запрос имени файлов через пользовательский инерфейс}
if (error='')
then
begin
reading(read_file,root);{считывание из файла и сортировка слов}
writing(root,write_file);{запись в файл}
writeln('Готово!');
writeln('Нажмите Enter для продолжения.');
readln;
end
else
begin
writeln(error);
writeln('Нажмите Enter для продолжения.');
readln;
end;
end;
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Nelson1992   Сортировка вставками   16.09.2010 17:52
Nelson1992   Я вот пытался что-то сделать...но не работает... ...   16.09.2010 18:18
volvo   Во-первых, то, что ты сюда вывалил, даже не компил...   16.09.2010 18:55
Nelson1992   Ну вот я и прошу мне помочь...потому,что не знаю к...   16.09.2010 19:13
Rian   пытался сделать? :no1: http://delphid.dax.ru/www/...   16.09.2010 22:15
Nelson1992   я возможно не правильно выразился...я не сам писал...   16.09.2010 22:19
Rian   чел такой пошаговый мануал еще поискать надо, там ...   16.09.2010 22:22
Nelson1992   За ссылку спасибо...дело в том что я не там всё эт...   16.09.2010 22:24
Rian   За ссылку спасибо...дело в том что я не там всё э...   16.09.2010 22:28
Nelson1992   хм...вроде бы работает,..спасибо)   16.09.2010 22:56
Rian   хм...что-то он не работает...и не выводит результ...   16.09.2010 23:02
Nelson1992   ааа...всё...разобрался...работает...но оно сортиру...   16.09.2010 23:11
Rian   загружать в массив по одному слову... делить строк...   16.09.2010 23:15
Nelson1992   Спасибо...буду пробовать...   16.09.2010 23:19
-111-   Скажите а как эту программу переделать так чтобы б...   28.09.2010 17:38
volvo   Подумать, чем отличается метод "пузырька...   28.09.2010 18:16
Lapp   А вообще, проще не переделывать "эту программ...   29.09.2010 4:50
Гость   Вот есть програмка...она сортирует вставками...но ...   29.09.2010 20:28
Гость   Вот я вроде бы счётчик времени убрал...но теперь о...   29.09.2010 20:44
Lapp   Вот я вроде бы счётчик времени убрал...но теперь о...   30.09.2010 3:14


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

 



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