Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на типизированные файлы
Форум «Всё о Паскале» > 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
Спасибо большое!!! Про *думаить* согласен...совсем обленился, да ещё сессия...
извиняюсь за глупость...спасибо Вам!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.