В оперативной памяти хранятся те программы и данные, с которыми вы работаете в данный момент. При выключении компьютера информация в оперативной памяти не сохраняется. Например, вы работаете с учебной программой по русскому языку, записанной на лазерном диске. Процессор загружает программу и все необходимые данные с этого диска в оперативную память и только после этого может их обработать. Процессор считывает команды и данные из оперативной памяти и записывает в нее результаты. После окончания работы с программой и выключения компьютера все данные из оперативной памяти исчезну
// PascalABC.NET 3.3, сборка 1540 от 16.09.2017 // Внимание! Если программа не работает, обновите версию!
begin var (m,n):=ReadInteger2('Количество строк и столбцов в матрице:'); var a:=MatrGen(m,n,(i,j)->(Random(9000)-4500)/100); Writeln('*** Исходная матрица ***'); a.Println(7,2); Writeln(7*a.ColCount*'-'); var b:=a.Cols.Select(c->c.Where(t->t>=0).Count).ToArray; if b.Length=0 then begin Writeln('В матрице все элементы отрицательные'); Exit end; b.Println; var f1:file of integer; Assign(f1,'f1.bin'); Rewrite(f1); foreach var t in b do Write(f1,t); Reset(f1); var (s,k):=(0,0); var v:integer; while not Eof(f1) do begin Read(f1,v); s+=v; k+=1 end; f1.Close; var avg:=s/k; var f2:file of real; Assign(f2,'f2.bin'); Rewrite(f2); var q:=a.ElementsByRow.Where(t->t<=avg); q.Println; foreach var c in q do Write(f2,c); f2.Close end.
// Внимание! Если программа не работает, обновите версию!
begin
var (m,n):=ReadInteger2('Количество строк и столбцов в матрице:');
var a:=MatrGen(m,n,(i,j)->(Random(9000)-4500)/100);
Writeln('*** Исходная матрица ***');
a.Println(7,2); Writeln(7*a.ColCount*'-');
var b:=a.Cols.Select(c->c.Where(t->t>=0).Count).ToArray;
if b.Length=0 then begin
Writeln('В матрице все элементы отрицательные');
Exit
end;
b.Println;
var f1:file of integer;
Assign(f1,'f1.bin'); Rewrite(f1);
foreach var t in b do Write(f1,t);
Reset(f1);
var (s,k):=(0,0);
var v:integer;
while not Eof(f1) do begin
Read(f1,v); s+=v; k+=1
end;
f1.Close;
var avg:=s/k;
var f2:file of real;
Assign(f2,'f2.bin'); Rewrite(f2);
var q:=a.ElementsByRow.Where(t->t<=avg);
q.Println;
foreach var c in q do Write(f2,c);
f2.Close
end.
Пример
Количество строк и столбцов в матрице: 4 9
*** Исходная матрица ***
-27.55 14.63 25.01 35.00 34.53 -24.49 -43.20 35.73 35.05
-9.96 -40.27 6.45 43.42 4.31 21.48 17.16 40.35 -3.58
-28.37 -11.17 32.04 26.07 -29.32 -24.20 -7.75 41.32 9.54
34.89 37.10 -26.09 22.64 16.69 -28.75 19.16 22.66 7.52
---------------------------------------------------------------
1 2 3 4 3 1 2 4 3
-27.55 -24.49 -43.2 -9.96 -40.27 -3.58 -28.37 -11.17 -29.32 -24.2 -7.75 -26.09 -28.75