Задачи 1 ) Задан двумеpный массив А из N стpок и М столбцов. Найти сpеднее аpифметическое СА элементов массива. Если СА < 0 ,
Задачи 1 ) Задан двумеpный массив А из N стpок и М столбцов. Найти сpеднее аpифметическое СА элементов массива. Если СА < 0 , то заменить наибольший отpицательный элемент массива на СА , иначе заменить все положительные элементы массива на СА. Задание 2) Задан квадpатный массив А из N стpок и N столбцов, элементами котоpого являются нули и единицы. Установить в нем количество единичных столбцов и нулевых стpок. Задание3) Задан двумеpный целочисленный массив А из N стpок и N столбцов Массив состоит из констант от 0 до 9. Необходимо постpоить одномеpный массив В длиной 10 , элементами котоpого являются числа повтоpов этих констант. ПАСКАЛЬ
<em>// PascalABC.NET 3.2, сборка 1362 от 14.12.2016</em> <em>// Внимание! В других версиях языка работа не гарантируется!</em>
begin var m:=ReadInteger('Количество строк в массиве:'); var n:=ReadInteger('Количество столбцов в массиве:'); var a:=MatrRandomReal(m,n,-50,50); Writeln('*** Исходный массив A[',m,',',n,'] ***'); a.Println(7,2); Writeln(7*a.ColCount*'-'); var ca:=a.Rows.SelectMany(x->x).Sum/m/n; Writeln('СА=',ca); if ca<0 then begin var im,jm:integer; (im,jm):=(-1,-1); for var i:=0 to m-1 do for var j:=0 to n-1 do if (a[i,j]<0) then begin if im=-1 then (im,jm):=(i,j) else if a[i,j]>a[im,jm] then (im,jm):=(i,j) end; a[im,jm]:=ca end else for var i:=0 to m-1 do for var j:=0 to n-1 do if a[i,j]>0 then a[i,j]:=ca; Writeln('*** Результирующий массив A[',m,',',n,'] ***'); a.Println(7,2) end.
<em>// PascalABC.NET 3.2, сборка 1362 от 14.12.2016</em> <em>// Внимание! В других версиях языка работа не гарантируется!</em>
begin var n:=ReadInteger('N='); Writeln('Вводите элементы массива построчно'); var a:=MatrFill(n,n,0); for var i:=0 to n-1 do for var j:=0 to n-1 do Read(a[i,j]); var k:=0; foreach var v in a.Rows do if v.All(x->x=0) then k+=1; if k>0 then Writeln('Количество нулевых строк равно ',k) else begin foreach var v in a.Cols do if v.All(x->x=1) then k+=1; if k>0 then Writeln('Количество единичных столбцов равно ',k) end; Writeln('Работа завершена') end.
<u>Пример</u> N= 4 Вводите элементы массива построчно 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 Количество единичных столбцов равно 1 Работа завершена
Задание 3)
<em>// PascalABC.NET 3.2, сборка 1362 от 14.12.2016</em> <em>// Внимание! Если программа не работает, обновите версию!</em>
begin var n:=ReadInteger('N='); var a:=MatrRandom(n,n,0,9); a.Println(2); var b:=ArrFill(10,0); foreach var x in a.Rows.SelectMany(x->x) do b[x]+=1; b.Select((x,i)->(i,x)).Println end.
Var c:array[1..1000,1..1000] of integer; i,j,n,m,sum,aver:longint; begin read(n,m); for i:=1 to n do for j:=1 to m do begin read(c[i,j]); sum:=sum+c[i,k]; end;
aver:=sum div (n*m);
for i:=1 to n do begin writeln; for j:=1 to m do begin if c[i,j]<aver then c[i,j]:=0 else c[i,j]:=255; write(c[i,j],' '); end; end;
end.
Проверьте на синтаксические ошибки. В данный момент не могу сам это скомпилировать