Type mas=array[1..93] of real; var i,w:byte;season:mas;t:real;
function temp(ses:mas;d:byte):real; var i:byte;s:real; begin s:=0; for i:=1 to d do s:=s+ses[i]; temp:=s; end;
begin
repeat writeln('Год високосный?1-да 0-нет'); read(w); if (w<>1) and (w<>0) then w:=2; until w<>2;
writeln('Введите зимние температуры за каждый день:'); for i:=1 to 90+w do readln(season[i]); t:=temp(season,90+w); writeln('Среднее арифметическое зимних температур: ',t/(90+w):5:3);
writeln('Введите весенние температуры за каждый день:'); for i:=1 to 92 do readln(season[i]); t:=temp(season,92); writeln('Среднее арифметическое весенних температур: ',t/92:5:3);
writeln('Введите летние температуры за каждый день:'); for i:=1 to 92 do readln(season[i]); t:=temp(season,92); writeln('Среднее арифметическое летних температур: ',t/92:5:3);
writeln('Введите осенние температуры за каждый день:'); for i:=1 to 92 do readln(season[i]); t:=temp(season,91); writeln('Среднее арифметическое осенних температур:',t/91:5:3); end.
bmargarita
28.04.2021
Здесь нужно использовать вс типизированный файл и, соответственно, вторую файловую переменную (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;
2)клавиатура
3)дисковод