Автор: Koma 26.09.2006 0:21
Опишите процедуру delete(f), удаляющую из файла f все литеры '+' и '-'.
Код
uses wincrt;
type myfile = file of char;
procedure delete(var s,s1: myfile; ac : char);
begin
while not eof(s) do
begin
read(s,ac);
if ac in ['+','-'] then
else write(s1,ac);
end;
end;
var f,f1 : myfile;
c,a : char;
begin
assign(f,'c:\a.txt');
reset(f);
assign(f1,'c:\b.txt');
rewrite(f1);
delete(f,f1,a);
close(f);
close(f1);
end.
Опишите процедуру double(f), удваивающие в файле f все ЦИФРЫ
Код
uses wincrt;
type myfile = file of char;
procedure dva(var s,s1: myfile; ac : char);
begin
while not eof(s) do
begin
read(s,ac);
if ac in ['0'..'9'] then
write(s1,ac,ac)
else write(s1,ac);
end;
end;
var f,f1 : myfile;
c,a : char;
begin
assign(f,'c:\a.txt');
reset(f);
assign(f1,'c:\b.txt');
rewrite(f1);
dva(f,f1,a);
close(f);
close(f1);
end.
Опишите процедуру replace(f,c), заменяющую последнюю литеру в файле f на литеру с
Код
uses wincrt;
type myfile = file of char;
procedure replace(var s: myfile; ac : char);
var i : integer;
begin
i:=filesize(s);
seek(s,i);
write(s,ac);
end;
var f,f1 : myfile;
c,a : char;
begin
assign(f,'c:\a.txt');
reset(f);
read(a);
replace(f,a);
close(f);
end.
Опишите процедуру next(f), заменяющую в файле каждую ЦИФРУ
на следующую по величине цифру ('9'заменять на '0').
Код
uses wincrt;
type myfile = file of char;
procedure next(var s,s1: myfile; ac : char);
begin
while not eof(s) do
begin
read(s,ac);
if ac in ['0'..'9'] then
case ac of
'0': ac:='1';
'1': ac:='2';
'2': ac:='3';
'3': ac:='4';
'4': ac:='5';
'5': ac:='6';
'6': ac:='7';
'7': ac:='8';
'8': ac:='9';
'9': ac:='0';
end;
write(s1,ac);
end;
end;
var f,f1 : myfile;
c,a : char;
begin
assign(f,'c:\a.txt');
reset(f);
assign(f1,'c:\b.txt');
rewrite(f1);
next(f,f1,a);
close(f);
close(f1);
end.
Не могу сделоть следующие задание:"30) type myfile = file of char;
Опишите процедуру change(f), удаляющую из файла все отрицательные нечетные числа."
Кто может, объясните плизз....!!!
Автор: Koma 26.09.2006 0:46
Как я понимаю, нужно проверить чаровкую переменную, на вхождение во множество отрицательных чисел(символов), но как это селать????
Мне не нужен полный текст проги, просто, кто знает, скажите как проверить на вхождение????
Автор: volvo 26.09.2006 1:19
"Чаровская", как ты ее называешь, переменная, не способна физически хранить отрицательные значения... Здесь немного другой способ решения: читать символы из файла в строку, пока не встретится разделитель (скажем, пробел) или не будет достигнут конец файла... Полученную строку перевести в число (используя процедуру Val, например), и если полученное число - отрицательное и нечетное, то НЕ записывать строковое представление числа в файл-результат, иначе - ДА записывать... Все разделители тоже должны записываться в выходной файл...
Т.е., фактически, иы должен рассматривать свой File Of Char как обычный текстовый файл...
Цитата
Мне не нужен полный текст проги
Само собой... Это - теоретический раздел, здесь помогают только теорией...
Автор: SiNaC0m 26.09.2006 3:10
Код
procedure change(var g,g1 : myfile;ch : char);
var st : string;
i,int : integer;
begin
while not eof(g) do
read(g,ch);
st:=ch;
val(st,i,int);
writeln(int);{Вывыдит номер позиции, в которой произошла ошибка преобразования}
if (i<0)and(odd(i)) then
else
write(g1,ch)
end;
Не могу понять, почему мне в первой же позиции выдаёт ошибку преобразования???
Автор: Pola 26.09.2006 21:27
А там всего одна позиция...
Автор: }0pa 29.09.2006 23:07
Не могу понять, нафига ты вообще используешь Char? Не проще ли использовать целый, например, тип.
Автор: volvo 29.09.2006 23:13
Цитата
Не проще ли использовать целый, например, тип.
Нет, не проще... Проще вообще никакой не использовать, тем более, что именно это и требуется по заданию:
Цитата(Koma @ 25.09.2006 20:21)
Опишите процедуру change(f), удаляющую из файла все отрицательные нечетные числа.
Я вижу, что функция должна принимать только один параметр... Где автор нашел еще один - ума не приложу...
Автор: SiNaC0m 1.10.2006 14:35
Всем спасибо за помощь, ЭКЗАМЕН Я СДАЛ!!!
Автор: hydroxychloroquine buy online us 8.12.2021 0:33
Treating Acne With Amoxicillin