1) 4^2015 =2^4030 (в 2сс: одна единица и 4030 нулей) 15 = 8+4+2+1=2^3+2^2+2^1+2^0 =1111 (в 2сс) 2^2015 ( в 2сс: 100...00000 - единица и 2015 нулей; 2016 разрядов) 100...0000 - 1111 =1110001 (2015 разрядов; три нуля и 2012 единиц) 2012 +1 =2013 (одна единица из 1) действия) ответ 2013
Здесь нужно использовать вс типизированный файл и, соответственно, вторую файловую переменную (fr2). Сделать это можно так: while not eof(fr) and (kol=0) do begin read(fr, Marshrut); if (Marshrut.NK.N <> '11') then write(fr2,Marshrut) else begin inc(kol); y:=Marshrut; end; end; if not eof(fr) then begin read(fr, Marshrut); write(fr2,Marshrut); end; if (kol=1) then write(fr2,y); Дальше нужно просто переписать оставшиеся записи из первого файла во второй. Затем оба файла закрыть, первый файл удалить, а второй переименовать (т.е. назвать его так, как назывался первый файл).
Попробуйте ещё вот такой вариант: (здесь k1 и k2 - целые, а y - типа ) if (Marshrut.NK.N = '11') then begin writeln('... '); inc(kol); y:=Marshrut; k1:=FilePos(fr)-1; k2:=FilePos(fr); if not eof(fr) then begin read(fr, Marshrut); seek (fr, k1); write(fr, Marshrut); seek (fr, k2); write (fr, y); end;
15 = 8+4+2+1=2^3+2^2+2^1+2^0 =1111 (в 2сс)
2^2015 ( в 2сс: 100...00000 - единица и 2015 нулей; 2016 разрядов)
100...0000 - 1111 =1110001 (2015 разрядов; три нуля и 2012 единиц)
2012 +1 =2013 (одна единица из 1) действия)
ответ 2013