Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на типизированные файлы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
punkska
задача:
Компоненты типизированого файла -целочисленные массивы, состоящие из 4 элементов. Сформировать новый типизированный фаил из четных элементов этих массивов, имеющих чётные индексы!

помогите решить!! а то ваще тупняк...
volvo
Цитата(punkska @ 6.06.05 13:02)
Сформировать новый типизированный фаил...

И какого типа должны быть элементы этого нового файла? Ведь в массиве X из четырех целых только 2 четных индекса (X[2], X[4]) а четных элементов с этими индексами может не быть совсем... Тогда что делать?
punkska
Сформировать новый типизированный фаил... -должен быть текстовый фаил
volvo
Уверен? Текстовый и типизированный - разные вещи... И где ответ на мой второй вопрос? Что делать, если в даннои массиве X из 4-х элементов не окажется НИ ОДНОГО подходящего?
punkska
>Сформировать новый типизированный фаил... -должен быть текстовый фаил

уверен

>Что делать, если в даннои массиве X из 4-х элементов не окажется НИ ОДНОГО подходящего?

нет так нет..завершить программу! ...
volvo
В-общем, работает так: читает очередную компоненту типизированного файла, проверяет, есть ли числа, удовлетворяющие условию, если есть - пишет их в новую строку текстового файла. Если нет - просто вставляет в текст. файл пустую строку...

Но файл с компонентами тебе придется создавать самому, ибо в условии сказано, что он уже существует...
type
  arrType = array[1 .. 4] of integer;
  fileType = file of arrType;

var
  f_in: fileType;
  f_out: text;
  X: arrType;
  i: integer;
begin
  assign(f_in, '_in.dat');
  reset(f_in);

  assign(f_out, '_out.txt');
  rewrite(f_out);

  while not eof(f_in) do begin
    read(f_in, X);
    for i := 1 to 4 do
      if (not odd(i)) and (not odd(X[i])) then
        write(f_out, X[i], ' ');
    writeln(f_out);
  end;

  close(f_out);
  close(f_in);
end.
punkska
>Но файл с компонентами тебе придется создавать самому, ибо в условии сказано, что он уже существует...

а может поможите , volvo а то у меня лажа выходит...
volvo
Ну, замени :
  assign(f_in, '_in.dat');
  reset(f_in);

на такое:

  assign(f_in, '_in.dat');
  rewrite(f_in);
  for i := 1 to 10 do begin
    for j := 1 to 4 do
      X[j] := random(30);
    write(f_in, X);
  end;
  reset(f_in);

(и не забудь про переменную j: integer)

P.S. Напрасно ты не хочешь сам думать...
punkska
Спасибо большое!!! Про *думаить* согласен...совсем обленился, да ещё сессия...
извиняюсь за глупость...спасибо Вам!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.