![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 13.11.2008
Сообщений: 8
|
![]()
С клавиатуры вводится имя входного и выходного файла. В файле хранится некоторое (возможно очень большое, не помещающееся в память) количество целых чисел. Необходимо создать файл с именем, введенным с клавиатуры, в котором хранятся числа из первоначального файла в отсортированном виде. Также необходимо выдавать на экран количество сравнений и присваиваний.
Пример входного файла: -5 71 0 -565 12 Варианты способов сортировки: сортировка по убыванию значения; простое слияние(внешняя сортировка); Формат файла приведен в виде БНФ У меня была сначала мысль загнать все числа из файла в массив( но как определить его длину? неизвестно же , сколько в файле чисел), массив упорядочить, а потом записать числа из массива в новый файл. Но как-то это не получилось. Помогите мне пожалуйста)) |
![]() |
![]() |
![]() |
#2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]()
В каком диапазоне могут лежать числа во входном файле? Т.е. какое возможно минимальное число, а какое максимальное?
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 13.11.2008
Сообщений: 8
|
![]()
В пределах целых чисел в стандарте паскаля - от -32768 до 32767
|
![]() |
![]() |
![]() |
#4 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]()
Задача решается на Паскале или можно на Делфи? На Делфи есть красивое и простое решение, но на Паскале оно не пройдет.
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 13.11.2008
Сообщений: 8
|
![]()
Только Паскаль (турбоПаскаль 7.0) , к сожалению...
|
![]() |
![]() |
![]() |
#6 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]()
Тогда придётся проходить входной файл несколько раз и каждый раз выбирать минимальное значение, большее того, что было выбрано в прошлый раз. Считать количество вхождений этого значения в файл и записывать его в выходной файл в том количестве, в котором оно встречалось во входном файле. Другого варианта в голову не приходит.
При желании можно провести оптимизацию, уменьшим количество проходов входного файла, но свести все к 1 проходу я не знаю как. На Делфи я бы реализовал такую задачу в виде линейной сортировки, но на Паскале не хватит памяти под данные. E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 13.11.2008
Сообщений: 8
|
![]()
Можно чуть подробнее? а то я не очень-то с паскалем дружу.. И еще - как надо открывать / создавать файл с заданным с клавиатуры именем?
|
![]() |
![]() |
![]() |
#8 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]()
Это можно прочитать в любом учебнике по Паскалю. Подробно идею я уже изложил.
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 24.10.2008
Сообщений: 5
|
![]()
Присоединяюсь к просьбе kossner'a - расскажите поподробнее, у меня похожая задачка
Или, если рассказать про саму программу сложно или лениво, просветите , что это за способ сортировки - *простое слияние(внешняя сортировка)*? Последний раз редактировалось SuperVisor; 05.12.2008 в 15:35. Причина: Есть такая замечательная кнопка - "правка" ))) |
![]() |
![]() |
![]() |
#10 |
Регистрация: 13.11.2008
Сообщений: 8
|
![]()
Скажите пожалуйста, как мне обойти вот это - В файле хранится некоторое (возможно очень большое, не помещающееся в память) количество целых чисел.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка массива | ManU | Помощь студентам | 1 | 21.09.2008 10:41 |
Сортировка массива С/С++ | Dagget | Помощь студентам | 1 | 16.07.2008 12:18 |
Сортировка массива | Kraven | Общие вопросы Delphi | 3 | 25.06.2008 18:22 |
Сортировка массива | vitalik007 | Общие вопросы Delphi | 2 | 22.09.2007 20:04 |
Сортировка массива | MuRdErDoLL | Помощь студентам | 2 | 20.12.2006 00:58 |