Другие языки программирования и технологии

программа на Турбо Паскале на тему файлы

В файле f записаны целые числа. Написать программу, которая в файл g записывает положительные числа, а файл h - отрицательные. заранее спасибки, кто поможет=)
Доброго времени суток.

Пока не конец файла, читаем в переменную целого типа очередное число. Если оно положительное, записываем эту переменную в файл g, если отрицательное - в f. Затем закрываются все файлы.

Проверка на "положительность" делается так

if N > 0 then

для проверки на "отрицательность" нужно заменить знак "больше" на "меньше".

Запись в файл делается так

Write(F, N, ' '); {пробельчик, чтобы разделить числа}

Файловая переменная связывается с файлом при помощи процедуры

Assign(F, FileName);

Файл на чтение открывается процедурой Reset(F)? а на запись Rewrite(F);

Вот, пожалуй, и все, что надо знать для реализации программы.

Удачи!
Сергей Гладиков
Сергей Гладиков
59 613
Лучший ответ
стучи в агент
Bektur Bakytbekov
Bektur Bakytbekov
6 247
var
tmp, e: integer;
s :string;
f : text;
f1: integer;
f2 : integer;

begin
Assign(F, "C:\xxx");
Assign(F1,"C:\xxx");
Assign(F1, "C:\xxx");

while not eof(f) do {пока не конец файла}
begin
s:=readln(f); {считываем число}
val(s,tmp,e) ; {преобразуем строку в число}
if tmp>0
writeln(f1) {если > 0 в файл 1}
else
writeln(f2) {если < 0 в файл 2}
end;
Close(f); {закрываем все файлы}
Close(f1);
Close(f2);
end.
Bayram Bekniyazov
Bayram Bekniyazov
3 427
Поможет=напишет?
Раз вам нужна программа для работы с файлами, я думаю, что процедуры и ункции вы прошли. Следовательно и типы тоже. Посему.. . Программа работает и проверена.

Код программы:

program Neylon;
type
tf=file of integer;
var
f,g,h:tf;

procedure input(var x:tf; ch:char);
var
i,n,a:integer;
begin
rewrite(x);
write('Сколько целых чисел вы хотите записать в файл ',ch,'? ');
readln(n);
for i:=1 to n do
begin
write('Введите ',i,'-ое число ');
readln(a);
write(x,a);
end;
close(x);
end;

procedure doing(var f,g,h:tf);
var
a:integer;
begin
reset(f);
rewrite(h);
rewrite(g);

while not eof(f) do
begin
read(f,a);
if a > 0 then {Число положительное - пишем в файл g}
write(g,a)
else if a < 0 then {Число отрицательное - пишем в файл h}
write(h,a)
else {Цифра ноль - не положительное и не отрицательное - ничего не делаем}
begin end;
end;
close(f);
close(g);
close(h);
end;

procedure output(var x:tf; ch:char);
var
a:integer;
begin
writeln('Файл ',ch,':');
reset(x);
while not eof(x) do
begin
read(x,a);
write(a:3);
end;
close(x);
end;

begin
assign(f, 'f.file');
assign(g, 'g.file');
assign(h, 'h.file');

input(f, 'F');
doing(f,g,h);
output(f,'F');
output(g,'G');
output(h,'H');
end.


Пример работы:

Сколько целых чисел вы хотите записать в файл F? 5
Введите 1-ое число -1
Введите 2-ое число 0
Введите 3-ое число 1
Введите 4-ое число 2
Введите 5-ое число 3

Файл F: -1 0 1 2 3
Файл G: 1 2 3
Файл H: -1