// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! В других версиях языка работа не гарантируется!
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.
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! В других версиях языка работа не гарантируется!
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.
Пример N= 4 Вводите элементы массива построчно 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 Количество единичных столбцов равно 1 Работа завершена
Задание 3)
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! Если программа не работает, обновите версию!
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.
1. а) При каких значениях числа S Паша может выиграть в один ход? ответ: * при 12<=S<=28 Паша увеличивает количество камней в 3 раза и выигрывает в 1 ход ** при S=34 и S=35 Паша увеличивает количество на 2 камня и выигрывает в 1 ход
б) У кого из игроков есть выигрышная стратегия при S = 28, 30, 32? Опишите выигрышные стратегии для этих случаев. 28: у Паши: П*3=84 - победа Паши 30: у Паши: П+2=32 В+2=34 П+2=36 Победа Паши 32: у Вали: П+2=34 В+2=36 Победа Вали
2. У кого из игроков есть выигрышная стратегия при S = 10, 8? Опишите соответствующие выигрышные стратегии. 10: у Вали: П*3=30 В+2=32 П+2=34 В+2=36 - Победа Вали П+2=12 В*3=36 - победа Вали 8: у Паши: П+2=10 В+2=12 П*3=36 - Победа Паши В*3=30 П+2=32 В+2=34 П+2=36 - Победа Паши В*3=96 - Победа Паши
3. У кого из игроков есть выигрышная стратегия при S = 6? 6: у Вали
Постройте дерево всех партий, возможных при этой выигрышной стратегии (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход, в узлах – количество камней в позиции см. фото