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

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

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

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


Новичок
*

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

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


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


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

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

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


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

 





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