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


Гость






Цитата
ведь со списком допустимы только три операции:просмотр списка,добавление элемента и удаление одного элемента.
Этого достаточно, чтобы упорядочить список... Все, что тебе надо для сортировки (в простейшем случае) - это возможность пройти по списку и получить для каждого элемента рядом с ним стоЯщий с любой стороны, и ты уже можешь сортировать "пузырьком". Вот так, например: Задача с использованием списка ...

А вообще, в поиске можно найти еще несколько методов сортировки списка, включая рекурсивные...

Цитата
Если заменить FileSize<>0 будет правильно?
На уровне псевдокода - да, но реализация будет очень медленной. Представь, что у тебя файл из 50 элементов. Значит, тебе надо открыть файл и пройти по нему 49 раз (а это значит, сколько всего элементов ты прочитаешь из файла за эти 49 проходов?). А проход по файлу - это очень длительное занятие (относительно работы с памятью, конечно)... А если элементов будет 200, а не 50, что тогда?
 К началу страницы 
+ Ответить 

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


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

 





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