Форум программистов CodeGuru
18 Январь 2018, 10:06:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1] 2   Вниз
  Печать  
Автор Тема: работа с файлами  (Прочитано 14824 раз)
0 Пользователей и 1 Гость смотрят эту тему.
lemo
Интересующийся
**
Офлайн Офлайн

Сообщений: 23


Просмотр профиля
« : 20 Октябрь 2008, 21:19:21 »

Задачка с файлами:
Дан файл f, компоненты которого являются целыми числами. Записать в файл g все парные числа файла f, а в файл h-все непарные. Порядок прохождения чисел сохраняются!
Помогите, кому интересно! Буду благодарен за помощь!
Записан
ZyK
Пользователь
***
Офлайн Офлайн

Сообщений: 132


Будем учиться на чужих ошибках и будем делать свои


Просмотр профиля
« Ответ #1 : 20 Октябрь 2008, 21:46:17 »

тип файла числовой или т екстовый?
в чем проблема? в работе с файлами?
Записан

"Интеллект,это такая штука,которая иногда встречаеться и у других"
lemo
Интересующийся
**
Офлайн Офлайн

Сообщений: 23


Просмотр профиля
« Ответ #2 : 20 Октябрь 2008, 21:55:18 »

тип файла числовой или т екстовый?
в чем проблема? в работе с файлами?
Наверно числовой, проблема в тот, что я 1 раз ставкиваюся с работой файлов, помоги код написать, если не трудно!
Записан
ZyK
Пользователь
***
Офлайн Офлайн

Сообщений: 132


Будем учиться на чужих ошибках и будем делать свои


Просмотр профиля
« Ответ #3 : 20 Октябрь 2008, 22:04:50 »

Если редактирование файла происходит с бокнота, то тип файлатекстовый
вот паскалевский метод чтения файла
var
  f,h: text// или в делфи textfile
  x: integer
begin
  аssign(f,'f.txt');//в делфи assignfile
  reset(f);
  while eof(f)<>0 do// или равно, не помню
    read(f,x);
close(f);//closefile(f);

запись в файл
assign(h,'h.txt');
rewrite(h);
write(h,x);
close(h);
не забуть в делфе прибавить слово file
Записан

"Интеллект,это такая штука,которая иногда встречаеться и у других"
ZyK
Пользователь
***
Офлайн Офлайн

Сообщений: 132


Будем учиться на чужих ошибках и будем делать свои


Просмотр профиля
« Ответ #4 : 20 Октябрь 2008, 22:05:34 »

не наверно правильно
  while not eof(f) do
Записан

"Интеллект,это такая штука,которая иногда встречаеться и у других"
holdmann
Пользователь
***
Офлайн Офлайн

Сообщений: 262



Просмотр профиля
« Ответ #5 : 20 Октябрь 2008, 22:37:14 »

кароч, читаем файл. сортируем данные по неубыванию. а дальше просто сравниваем последующий с предыдущим и "втыкаем" куда писать будем. ZyK все функции описал, осталось одно НО, кол-во элементов во входном файле предопределено? если да, то шоколад, в плане сортировки. можно перезаписать их в массив. если нет, то в динамике создаем однонаправленный список, и сортируем прямо там, переменой указателей.
« Последнее редактирование: 20 Октябрь 2008, 22:38:49 от holdmann » Записан

Елси вы хотите купить, продать, отремонтировать автомобиль в Ижевске: Вам сюда =)
(c)holdmann
ZyK
Пользователь
***
Офлайн Офлайн

Сообщений: 132


Будем учиться на чужих ошибках и будем делать свои


Просмотр профиля
« Ответ #6 : 20 Октябрь 2008, 22:42:47 »

holdmann а где ты прочел про сортировку
Порядок прохождения чисел сохраняются!
можно без массива, сразу писать в два файла
Записан

"Интеллект,это такая штука,которая иногда встречаеться и у других"
holdmann
Пользователь
***
Офлайн Офлайн

Сообщений: 262



Просмотр профиля
« Ответ #7 : 20 Октябрь 2008, 23:03:41 »

сорри, глаза видимо и#пуцо, после дня с пхп..
тогда решение еще более тупое...
берется алгоритм сортировки называется "пузырек без признака", меняется условие вместо ">=" ставится "=", вместо обмена запись в файл где парные, иначе писать в файл с непарными. в результате обхода получаем два файла, без повторений элементов.
Записан

Елси вы хотите купить, продать, отремонтировать автомобиль в Ижевске: Вам сюда =)
(c)holdmann
holdmann
Пользователь
***
Офлайн Офлайн

Сообщений: 262



Просмотр профиля
« Ответ #8 : 20 Октябрь 2008, 23:17:15 »

*****
сорри, глаза видимо и#пуцо, после дня с пхп..
тогда решение еще более тупое...
1. обходим файл, желательно чтобы он был нетипизированным, чтобы не трах#ться с переносом коретки. во время обхода в некую переменную, назовем count, заносим кол-во элементов во входном файле.
2.берется алгоритм сортировки называется "пузырек без признака", меняется условие вместо ">=" ставится "=", вместо обмена запись в файл где парные, иначе писать в файл с непарными. в результате обхода получаем два файла, без повторений элементов.


Цитировать
Цитата
holdmann а где ты прочел про сортировку
Цитировать
Порядок прохождения чисел сохраняются!
можно без массива, сразу писать в два файла

по-поводу этого. мы сохранили порядок обхода. обошли как надо, потому что я сортировать предложил либо в массиве, либо в ДП.


топиктсартеру: выбирай сам как хошь, второй способ легче. хошь обмануть систему и удивить препода, делай первым.
Записан

Елси вы хотите купить, продать, отремонтировать автомобиль в Ижевске: Вам сюда =)
(c)holdmann
lemo
Интересующийся
**
Офлайн Офлайн

Сообщений: 23


Просмотр профиля
« Ответ #9 : 21 Октябрь 2008, 13:27:00 »

Ребята, вот я подправил Код от ZyK:
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;

var
  f,h: textfile;
  x:integer;
begin
  Assignfile(f,'f.txt');
  reset(f);
   while not eof(f) do
    read(f,x);
close(f);//closefile(f);


assign(h,'h.txt');
rewrite(h);
write(h,x);
close(h);
end.
Но всеравно выдает ошибку! Просмотрите пожалуйста не вслепую код!
Записан
holdmann
Пользователь
***
Офлайн Офлайн

Сообщений: 262



Просмотр профиля
« Ответ #10 : 21 Октябрь 2008, 14:58:48 »

это код ?? имхо, набор функций. да и осн. его функция читать входной файл до упора... а потом последнюю переменную писать в др. файл. вечером короч, как с работы приду, напишу.
Записан

Елси вы хотите купить, продать, отремонтировать автомобиль в Ижевске: Вам сюда =)
(c)holdmann
ZyK
Пользователь
***
Офлайн Офлайн

Сообщений: 132


Будем учиться на чужих ошибках и будем делать свои


Просмотр профиля
« Ответ #11 : 21 Октябрь 2008, 16:15:21 »

Код:
[code]
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;

var
  f,h,g: textfile;
  x:integer;
begin
  Assignfile(f,'f.txt');
  reset(f);

  assignfile(g,'g.txt');
  rewrite(g);
  assignfile(h,'h.txt');
  rewrite(h);

  while not eof(f) do
    begin
      read(f,x);
      if odd(x) then
        writeln(h,x)
      else
        writeln(g,x);
    end;
close(f);
close(h);
close(g);
end.
[/code]

ты хоть понимаеш что делаеш? ИМХО тебе нежно начать с основ, или это какая нибуть лаба, а программалка тебя не интересует? Тогда не занимай людей. Интересует - спрашуй где чего не понял.
Записан

"Интеллект,это такая штука,которая иногда встречаеться и у других"
lemo
Интересующийся
**
Офлайн Офлайн

Сообщений: 23


Просмотр профиля
« Ответ #12 : 21 Октябрь 2008, 16:16:13 »

Вот значит я написал код, в котором из существующего файла F копируються все символы и вставляються в файл H и в файл G, но мне нунжно что бы только парные числа из файла F отходили в файл H, а не парные в файл G !!! Помоги пописать это!
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;

var
  f,h,g: textfile;
  x:string;

begin
  begin
  Assignfile(f,'f.txt');
  {$I-}
  reset(f);
  {$I+}
assign(h,'h.txt');
rewrite(h);
assign(g,'g.txt');
rewrite(g);

end;
   while not eof(f) do
    read(f,x);
    write(h,x);
    write(g,x);

closefile(g);
closefile(h);
closefile(f);
end.
Записан
ZyK
Пользователь
***
Офлайн Офлайн

Сообщений: 132


Будем учиться на чужих ошибках и будем делать свои


Просмотр профиля
« Ответ #13 : 21 Октябрь 2008, 16:18:29 »

функция odd
посмотри выше, я там все написал
Записан

"Интеллект,это такая штука,которая иногда встречаеться и у других"
lemo
Интересующийся
**
Офлайн Офлайн

Сообщений: 23


Просмотр профиля
« Ответ #14 : 21 Октябрь 2008, 16:32:23 »

Спасибо большое за помошь!
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!