Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 29.11.2007, 20:47   #1
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Интересная задачка

Тут решил другу помочь, у него есть задачка, но при решении в своеобразный ступр зашёл. Думаю тут люди умные, смогут помочь.
Задача решается в Colnsole Application
Задание:Составить программу, которая создает новый файл, записывает в него 50 целых случайных чисел, затем упорядочивает их по возрастанию непосредственно в файле. Массив использовать не разрешается.
(Offline)
 
Ответить с цитированием
Старый 30.11.2007, 15:19   #2
Eddy
Нуждающийся
 
Регистрация: 24.05.2006
Сообщений: 64
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Интересная задачка

Можно поизвращаться и использовать этот файл как массив, т.е. записывать данные после этих 50 символов, как всё отсортируется, лишнее удалить.
Но может тут имелось ввиду, что надо юзать списки?
(Offline)
 
Ответить с цитированием
Старый 30.11.2007, 16:12   #3
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Интересная задачка

как вариант, можно получать псевдослучайные числа в порядке возростания и по очереди записывать их в файл !!
(Offline)
 
Ответить с цитированием
Старый 30.11.2007, 18:21   #4
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Интересная задачка

Либо я вас не понял, либо вы ребят куда-то нетуда ушли.. тут подумав я понел что данная задача решается через команду seek (точнее сортировка), нада только довести до ума, а генерация чисел идёт на подобе
  Assignfile(file1,'res.dat');
  rewrite(file1);
  RANDOMIZE;
  for i:=0 to 49 do begin
    buf:=random(50)+1;
    write(file1,buf);
  end;
  closefile(file1);
(Offline)
 
Ответить с цитированием
Старый 01.12.2007, 02:01   #5
Magus
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений
(для 205 пользователей)
Re: Интересная задачка

Насколько я знаю, для сотртировки данных подобного рода в файлах используют сортировку слиянием.
(Offline)
 
Ответить с цитированием
Старый 01.12.2007, 13:16   #6
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Интересная задачка

хм.. интересно, но вот под делфи как это выглядит нету случаем??? пока жду ответа попробую сам дойти до того, как на делфи писать
(Offline)
 
Ответить с цитированием
Старый 01.12.2007, 13:23   #7
jimon
 
Сообщений: n/a
Re: Интересная задачка

ну а в тупую делать низя ?
открываем файл, читаем байт, сравниваем с предыдущим прочитаным
если предыдущий больше то меняем байты местами
закрываем файл и проходим по новой
 
Ответить с цитированием
Старый 01.12.2007, 17:57   #8
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Интересная задачка

Вообщет про способ "в тупую делать" я писал выше. Там я этим алгоритмом и имел ввиду, только он мутноватый какой-то.. вообщем если посидеть сделать можно, но думаю должен способ проще быть
(Offline)
 
Ответить с цитированием
Старый 02.12.2007, 08:36   #9
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Интересная задачка

Народ, чтоль не кто с такой задачкой не встречался ранее?? Принципе задача то не сложная, если б не одно но - массив использовать не разрешается.
(Offline)
 
Ответить с цитированием
Старый 02.12.2007, 09:18   #10
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Интересная задачка

А почему бы не описать свою структуру данных? Аля простой список.
(Offline)
 
Ответить с цитированием
Старый 02.12.2007, 09:32   #11
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Интересная задачка

Условие задачи не позволяет использовать список
(Offline)
 
Ответить с цитированием
Старый 02.12.2007, 13:09   #12
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Интересная задачка

Ладно, вообщем кому интересно - протестите плиз, вроде работает как надо.
uses
  SysUtils;

var
  i,j,k,max,buf:integer;
  file1:file of integer;
  v,t_var:integer;
begin
  Assignfile(file1,'res.dat');
  rewrite(file1);
  RANDOMIZE;
  for i:=0 to 5 do begin
    buf:=random(50)+1;
    write(file1,buf);
    writeln(inttostr(buf));
  end;
  closefile(file1);



  reset(file1);
  i:=0;
  //while not eof(file1) do begin
  For k:=0 to 5 do begin
    seek(file1,i);
    read(file1,max);
    t_var:=i;

    for j:=i to 5 do begin
        seek(file1,j);
        read(file1,v);    ///
        if max<v then begin
          max:=v;
          t_var:=j;
        end;
    end;

  seek(file1,i);
  read(file1,buf);
  seek(file1,i);
  write(file1,max);
  seek(file1,t_var);
  write(file1,buf);

  inc(i);
  end;
  closefile(file1);

  reset(file1);
  writeln('');
  for i:=0 to 5 do begin
    read(file1,buf);
    writeln(buf);
  end;
  closefile(file1);

  readln;
end.
(Offline)
 
Ответить с цитированием
Старый 23.12.2007, 01:10   #13
Fla
ПроЭктировщик
 
Регистрация: 22.12.2007
Сообщений: 107
Написано 15 полезных сообщений
(для 15 пользователей)
Re: Интересная задачка

А про связные списки никто ничего не говорил! Так что можно на них сделать. Это будет не често, но работать будет быстрее.
(Offline)
 
Ответить с цитированием
Старый 23.12.2007, 01:20   #14
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Re: Интересная задачка

Можно использовать файл (integer например) как массив. В каждую строчку записываешь одно число. Потом сравниваешь (как методом Пузырька) первую строчку со второй, и если, первая строчка больше второй, то меняешь местами. Вместо индека массива используй параметр процедуры seec. Там можно.
(Offline)
 
Ответить с цитированием
Старый 10.01.2008, 10:17   #15
KRIK
Бывалый
 
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Интересная задачка

2Alex_90 Массив использовать не разрешается Из условия
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по ТВ impersonalis Математика 7 30.12.2008 22:12
Интересная способность zubar Проза 2 13.11.2007 16:25
Интересная книга FinalFantasy-VIII!!! Halk-DS Fantasy 13 17.10.2007 06:28
Интересная гама! CJ КАКТУС Болтовня 12 17.06.2006 21:33
Очень интересная инфа! KRIK 3D Моделирование 4 21.01.2006 23:26


Часовой пояс GMT +4, время: 17:41.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com