Интересная задачка
Тут решил другу помочь, у него есть задачка, но при решении в своеобразный ступр зашёл. Думаю тут люди умные, смогут помочь.
Задача решается в Colnsole Application Задание:Составить программу, которая создает новый файл, записывает в него 50 целых случайных чисел, затем упорядочивает их по возрастанию непосредственно в файле. Массив использовать не разрешается. |
Re: Интересная задачка
Можно поизвращаться и использовать этот файл как массив, т.е. записывать данные после этих 50 символов, как всё отсортируется, лишнее удалить.
Но может тут имелось ввиду, что надо юзать списки? |
Re: Интересная задачка
как вариант, можно получать псевдослучайные числа в порядке возростания и по очереди записывать их в файл !!
|
Re: Интересная задачка
Либо я вас не понял, либо вы ребят куда-то нетуда ушли.. тут подумав я понел что данная задача решается через команду seek (точнее сортировка), нада только довести до ума, а генерация чисел идёт на подобе
Код:
Assignfile(file1,'res.dat'); |
Re: Интересная задачка
Насколько я знаю, для сотртировки данных подобного рода в файлах используют сортировку слиянием.
|
Re: Интересная задачка
хм.. интересно, но вот под делфи как это выглядит нету случаем??? пока жду ответа попробую сам дойти до того, как на делфи писать
|
Re: Интересная задачка
ну а в тупую делать низя ?
открываем файл, читаем байт, сравниваем с предыдущим прочитаным если предыдущий больше то меняем байты местами закрываем файл и проходим по новой :) |
Re: Интересная задачка
Вообщет про способ "в тупую делать" я писал выше. Там я этим алгоритмом и имел ввиду, только он мутноватый какой-то.. вообщем если посидеть сделать можно, но думаю должен способ проще быть
|
Re: Интересная задачка
Народ, чтоль не кто с такой задачкой не встречался ранее?? Принципе задача то не сложная, если б не одно но - массив использовать не разрешается.
|
Re: Интересная задачка
А почему бы не описать свою структуру данных? Аля простой список.
|
Re: Интересная задачка
Условие задачи не позволяет использовать список
|
Re: Интересная задачка
Ладно, вообщем кому интересно - протестите плиз, вроде работает как надо.
Код:
uses |
Re: Интересная задачка
А про связные списки никто ничего не говорил! Так что можно на них сделать. Это будет не често, но работать будет быстрее.
|
Re: Интересная задачка
Можно использовать файл (integer например) как массив. В каждую строчку записываешь одно число. Потом сравниваешь (как методом Пузырька) первую строчку со второй, и если, первая строчка больше второй, то меняешь местами. Вместо индека массива используй параметр процедуры seec. Там можно.:)
|
Ответ: Интересная задачка
2Alex_90 Массив использовать не разрешается Из условия
|
Часовой пояс GMT +4, время: 05:08. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot