IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на типизированный и текстовый файлы
UnSpi
сообщение 29.05.2005 22:31
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Помогите решить такие задачи,пожалуйста:
1).Выполнить задание для заданного типизированного файла чисел f. Компоненты файла – целые (отличные от нуля) числа, причем десять идущих подряд положительных чисел чередуются с десятью отрицательными числами и т. д.
Получить файл g, в котором записано сначала пять положительных чисел, затем пять отрицательных и т.д.
2).Выполнить это же задание при условии, что файл f – текстовый, в котором каждое число записано в новой строке.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 31.05.2005 17:16
Сообщение #2


Гость






1. Попробуй вот такой вариант (только файл input.dat нужно создать вначале, чтобы он содержал данные именно в том порядке, в котором указано в условии... И еще: эта программа будет работать ТОЛЬКО если число элементов файла кратно 20, то есть если файл содержит целое число серий "+" "+" "-" "-", которые преобразуются в "+" "-" "+" "-")
type
f_int = file of integer;

procedure read_20(var f, g: f_int);
const
pos: array[1 .. 4] of byte = (0, 10, 5, 15);
var
f_pos: longint;
i, j: byte;
x: integer;
begin
f_pos := filepos(f);
for i := 1 to 4 do begin
seek(f, f_pos + pos[i]);
for j := 1 to 5 do begin
read(f, x); write(g, x);
end
end;
end;

var
f, g: f_int;
f_pos: longint;
begin
assign(f, 'input.dat');
reset(f);
assign(g, 'output.dat');
rewrite(g);

f_pos := 0;
while not eof(f) do begin
seek(f, f_pos);
read_20(f, g);
inc(f_pos, 20)
end;

close(g);
close(f);
end.


Кстати, что именно непонятно в FAQ ?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 26.07.2025 16:01
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"