Задачи 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.
Const nx=30;var n,i,k,t,j,kp :integer;p,pp: real;b:array[1..nx] of integer;beginReadln(n);if n mod 2 = 0 then beginp:= n/2;k:=round(p); pp:= k/2; kp:=round(pp);for i:=1 to n do beginb[i]:=random(98)-25;write(b[i]:3);end;writeln;for i:= k downto 1 do beginj:=j +1;t:=b[j];b[j]:=b[i]; b[i]:=t;if i - kp =1 then break;end;writeln;j:=k;for i:= n downto k+1 do beginj:=j +1;t:=b[j];b[j]:=b[i]; b[i]:=t;if i - (kp+k) =1 then break;end;for i:=1 to n do write(b[i]:3);endelsewriteln('Введено не правино');end.
<span>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<span>screen 12
for x=0 to 640 step 5
cls
circle (x,240), 25
circle (x+100,240), 25
line (x+30,240)-(x+70,240)
line (x-50,240)-(x-30,240)
line (x+150,240)-(x+130,240)
line (x+150,240)-(x+150,190)
line (x-50,240)-(x-50,190)
line (x-50,190)-(x-10,190)
line (x+110,190)-(x+150,190)
circle (x+50,190),60 ,, 0 , 3.14
circle (x,240),30 ,, 0 , 3.14
circle (x+100,240),30 ,, 0 , 3.14
next x</span></span>