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

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

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

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


Новичок
*

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

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


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


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

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


Новичок
*

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

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


Я вот пытался что-то сделать...но не работает...

program sortnames;
type
ptrNameList = ^nameList;
nameList = record
name:String;
next:ptrNameList;
end;
var firstElement,element,lastElement:ptrNameList;
f,g:text;
nameString:String;
k:integer;

function firstElementGreaterThanSecond(element1,element2:ptrNameList):boolean;
begin
firstElementGreaterThanSecond := (element1^.name > element2^.name);
end;

procedure switchElementsContent(element1,element2:ptrNameList);
var temp:String;
begin
temp := element1^.name;
element1^.name := element2^.name;
element2^.name := temp;
end;

procedure printList;
var element:ptrNameList;
begin
element := firstElement;
while (element<>nil) do
begin
writeln(element^.name);
element := element^.next;
end;
writeln('конец списка');
end;












begin

{ Чтение списка }

firstElement := nil;
Assign (f, 'c:\1.txt');
reset (f);
while not eof(f) do
begin
readln(f,nameString);
if (firstElement = nil) then
begin
new(element);
firstElement := element;
end
else
begin
new(element^.next);
element := element^.next;
end; { end if }
element^.name := nameString;
element^.next := nil;
end; { end while }
close(f);

{ Сортировка методом пузырька }

element := firstElement;

{ Найдем последний элемент }

while (element<>nil) do
element := element^.next;
lastElement := element;

while (firstElement<>lastElement) do
begin
element := firstElement;
while (element^.next<>lastElement) do
begin
if firstElementGreaterThanSecond(element,element^.next) then
switchElementsContent(element,element^.next);
element := element^.next;
end;
lastElement := element;
end;

Reset(f); {открываем первый файл для чтения}
Assign(g, 'c:\2.txt'); {устанавливаем связь второй файловой переменной с физическим файлом}
Rewrite(g); {открываем второй файл для записи}
While not eof(f) do
Begin
Readln(f,nameString);{считываем очередную строку из первого файла}


Writeln(g,nameString); {записываем во второй файл строки, удовлетворяющие условию}

end;
close (f);
close (G);
end;

function kolslov(st: string): byte;
const
razdel = ['.', ','];
var
k, d: integer;
begin
d := 0;
repeat
inc(d);
if st[d] in razdel then
begin
delete(st, d, 1);
insert(' ', st, d);
end;
until d > length(st);
st := ' ' + st + ' ';//для корректной обработки абзацев
while pos(' ', st) > 0 do delete(st, pos(' ', st), 1);
d := pos(' ', st);
k := -1;//количество слов на 1 меньше кол-ва пробелов
while d > 0 do

kolslov := k
end;

var
t: text;
slov: longint;
filname, s: string;
begin
write('File = '); readln(filname);
assign(t, filname);
reset(t);
while not eof(t) do
begin
readln(t, s);{читаем строку}




inc(slov, kolslov(s)); //3 или 5 пробелов также считаем признаком абзаца


end;
end.


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

Сообщений в этой теме
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

 



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