|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.11.2013, 23:52 | #11 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
Зачем переписывать данные во временные файлы? Это медленно, быстрее с массивом работать, тем более, что лимит памяти это позволяет.
E-Mail: arigato.freelance@gmail.com
|
07.11.2013, 23:58 | #12 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Это просто такой юмор по поводу того, что файл с исходными данными надо открывать только один раз.
Как-то так, ...
|
08.11.2013, 08:48 | #13 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
в ТурбоПаскаль, например, размер переменной (массива) не может быть более 64 кбайт (ограничение сегмента данных MS DOS). Более того, я вообще не уверен, что такой объём данных поместится даже в динамическую память - ибо, как говорил наш дорогой Билл Гейтс - "640 кбайт памяти безусловно хватит всем приложениям!" Т.е. в программе под MS DOS обязательно либо повторное открытие файла, либо использование временного файла. Кроме того, не буду утверждать, но, возможно, что если писать строки в типизированный файл (file of TStr30, где type TStr30 = string[30]) ), то после нахождения нужной цены, в этом файле можно установить указатель сразу на нужную запись (через seek) и прочитать её. При повторном переоткрытии исходного файла нужно будет перепрочитать все строки до нужной. (ещё раз повторю - не буду утверждать, что временный файл - это быстрее! и я бы лично, в случае нехватки ресурсов для помещения всех данных в память, просто переоткрывал бы файл. Это точно проще, а быстрее или нет - спорно...) |
|
08.11.2013, 10:32 | #14 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
Раз в задаче стоит ограничение в 64Мб, то о Турбо Паскале тут речи не идет.
E-Mail: arigato.freelance@gmail.com
|
08.11.2013, 10:35 | #15 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Цитата:
UPDATE Даже не той олимпиаде, которую сейчас решает ТС, стоит Делфи 7.0.. Последний раз редактировалось Poma][a; 08.11.2013 в 10:42. |
|
08.11.2013, 10:52 | #16 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
08.11.2013, 11:04 | #17 | |
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
Цитата:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
|
11.11.2013, 19:02 | #18 |
Регистрация: 07.11.2013
Сообщений: 3
|
Условие о еденичном считывании с файла было в правилах олимпиады.
|
11.11.2013, 21:38 | #19 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Тогда есть такой путь:
1. Читаем первую строку. 2. Читаем последующие строки в динамический массив - размер 3 Мб 3. Читаем цены в короткий массив (с сортировкой), для выбора пятого фотика (как описано ранее). 4. Достаем из динамического массива наименование модели. 5. Выводим информацию. Как-то так, ...
Как-то так, ...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Олимпиадная задача. (C#) | Nekro95 | Помощь студентам | 4 | 20.10.2013 14:39 |
олимпиадная задача | quade1992 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 17.05.2012 18:57 |
Олимпиадная задача | Sanek_ntsk | Помощь студентам | 4 | 09.11.2011 23:03 |
Олимпиадная задача. | _-Re@l-_ | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 09.12.2010 20:53 |
Олимпиадная задача | Carbon | Общие вопросы C/C++ | 2 | 23.05.2007 22:07 |