Заполнить двумерный массив случайными числами. Размерность массива и диапазон генерации вводятся с клавиатуры. Составить програм
му, которая вычисляет сумму всех элементов массива. Затем организовать новый массив В, в котором заменить отрицательные элементы исходного массива на 1, а значения остальных элементов оставить без изменения. Подсчитать количество замен.
Program primer; procedure random(c,x,y:integer; var r:integer); begin case c of 1 : r:=Random(ABS(Y)+ABS(x)+1)+x; 2 : r:=Random(ABS(Y)+ABS(x)+1)+y; 3 : r:=Random(Y-x+1)+x; 4 : r:=Random(x-y+1)+y; 5 : r:=Random(x+y); 6 : r:=Random(ABS(x+y))-ABS(x+y); 7 : r:=x; 8 : r:=Random(ABS(ABS(x)-ABS(y)))-ABS(x); 9 : r:=Random(ABS(ABS(x)-ABS(y)))-ABS(y); end; end; var a,b: array of array of integer; i,j,x,y,c,m,p,sum:integer; begin Randomize; sum:=0; writeln('Кол-во строк и столбцов массива? //X,Y\\ '); read(i,j); //Размерность массива writeln('Диапазон чисел //от X,до Y\\ '); read(x,y); //и диапазон генерации вводятся с клавиатуры. if (x=y) then c:=7 else if(x<0) and (y<0) then if (x<y) then c:=8 else c:=9 else if (x=0) or (y=0) then if(x<0) or (y<0) then c:=6 else c:=5 else if(x<0) or (y<0) then if (x<y) then c:=1 else c:=2 else if (x<y) then c:=3 else c:=4; SetLength(a,i); for m:=0 to i-1 do SetLength(a[m],j); SetLength(b,i); for m:=0 to i-1 do SetLength(b[m],j); for m:=0 to i-1 do begin writeln(); for p:=0 to j-1 do begin random(c,x,y,a[m,p]); {Заполнить двумерный массив случайными числами.} sum:=sum+a[m,p]; {вычисляет сумму всех элементов массива} write (a[m,p]:3,' ':3); end; end; c:=0; writeln('summa=',sum); for m:=0 to i-1 do begin {Затем организовать новый массив В } writeln(); for p:=0 to j-1 do begin if (a[m,p] <0) then begin b[m,p]:=1; {в котором заменить отрицательные элементы исходного массива на 1} inc(c); {Подсчитать количество замен. } end else b[m,p]:=a[m,p]; {а значения остальных элементов оставить без изменения } write(b[m, p]:3, ' ':3); end; end; writeln('kol=',c); a:=NIL; b:=NIL; end. // ABC Pascal
Если не хочется думать, можно построить таблицу интинности и потом сравнить её с данной в условии.
Оказывается, F(x,y,z) = 0 для двух наборов (x, y, z): (1, 0, 1) и (0, 0, 1). В таблице из условия нули получились на входах 010 и 011. То, что оба раза 0 - это y, то. что оба раза 1 - это z, то, что осталось - это x.
Переменная 1 - y, переменная 2 - z, переменная 3 - x