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

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

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

> переупорядочение файла, с помощью списка
сообщение
Сообщение #1


Новичок
*

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

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


Всем доброго дня и ночи! Сегодня у меня был экзамен и надо было решить такую задачу:
Дан файл целых чисел.Переупорядочить его по неубыванию с помощью списка.Оформить в виде процедуры
Вот что я написала:

procedure Upor (var tsl;f);
var x,min:integer;
begin repeat begin reset(f); min:=0; while not eof(f) do begin
read(f,x); if x<min then min:=x end;

in-list(p,min,q);

reset(f);
while not eof(f) do begin
read(f,x); if x<min then min:=x end;
{здесь оператор(станд. процедура или функция),который удаляет найденное число}

end
until filesize(f)<>nil
Close(f)
end;


Теперь поясню то,что я хотела этим сказать:1.Ищем в файле мин.число,включаем его в список
2.Удаляем из файла минимум
3.Опять ищем в файле минимум,включаем его в список и удаляем из файла...Получается цикл,который заканчивается,когда файл станет пустым.

Моя ошибка,на которую указал преподаватель в том,что я минимуму присваиваю 0. Т.е. я не предуссматриваю случаи с отрицательными числами.И вообще она не эффективная...Укажите на ошибки,пожалуйста,если они здесь ещё есть.И как можно было решить эту задачу по-другому?Очень интересно...

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


Профи
****

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

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


Цитата

допустимы только три операции:просмотр списка,добавление элемента и удаление одного элемента

Вот именно!!! различные комбинации этих действий и будут давать вам ваш результат.Вы знакомы с сортироваками в массиве?принцип такой же может быть.Например, вы смотрите на вашу информационную часть первого элемента списка,запоминаете ее,затем переходите ко второму элементу и сравниваете его информационную часть,если у второго меньше, то записываете на первое место,если нет,то переходите дальше к третьему и тд.Я правда подзабыл,как такая сортировка называется,вроде сортировка кучей.А вообще можно любую сортировку приспособить для списка.
Цитата

Переупорядочить его по неубыванию

Тобиш надо упордочить по возрастанию?:0 Велик и богат наш русский язык.
А вообще ключевые слова в вашем задании:
......с помощью списка....
А ты посути просто береш список и туда уже в упорядоченном виде записываеш.А задание предполагает,что ты заполниш список,как есть в файле и уже в списке начнеш упорядочивать,ну или вариант Volvo"сразу добавлять элемент в список, сохраняя его упорядоченность по неубыванию".Иначе использование списка становится совсем бессмысленным.И еще желательно было указать какой список вы подразумеваете:однонаправленный или двунаправленный....
И еще у вас в коде указана процедура in-list,ну так почему вы ее не выложите?Ведь ее реализовать тоже можно по разному.

Сори,когда писал не видел сообщение Volvo(его тогда е было,когда начал писать).
Цитата

Значит, тебе надо открыть файл и пройти по нему 49 раз (а это значит, сколько всего элементов ты прочитаешь из файла за эти 49 проходов?)

В худшем случае 49! да и еще не надо забывать,что помимо открытия ей еще надо перезаписывать файл удаляя элемент из него,а это еще замедляет процесс.49 раз как никак придется открыть, считать, удалить, закрыть

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

Сообщений в этой теме


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

 





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