// PascalABC.NET 3.3, сборка 1627 от 27.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var (n,m):=ReadInteger2('Количество строк и столбцов в матрице:'); Writeln('*** Исходная матрица ***'); var a:=MatrRandom(n,m,-99,99); a.Println(4); Writeln(4*m*'-'); var s:=''; for var i:=0 to n-1 do if a.Row(i).Pairwise.Select(t->Sign(t[0])<>Sign(t[1])).All(t->t=True) then s+=(i+1)+' '; if s.Length=0 then Writeln('Нет искомых строк') else Writeln('Номера строк: ',s) end.
В C++ #include <iostream> #include <iomanip> #include <ctime> int main() { using namespace std;
const int N = 5; const int M = 6;
int A[N][M];
//Как-нибудь заполняем массив srand(time(0)); for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) A[i][j] = rand() % (N * M) + 1; for (int i = 0; i < N; ++i) { for (int j = 0; j < M; ++j) cout << setw(4) << A[i][j]; cout << endl; }
//Подсчитываем сумму всех элементов массива int sum = 0;
for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) sum += A[i][j];
//Вычитаем из полученной суммы повторяющиеся элементы for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) { bool flag = false; for (int i1 = 0; i1 < N; ++i1) { for (int j1 = 0; j1 < M; ++j1) if (!(i == i1 && j == j1)) if (A[i][j] == A[i1][j1]) { sum -= A[i][j]; flag = true; break; } if (flag) break; } }
В C++ #include <iostream> #include <iomanip> #include <ctime> int main() { using namespace std;
const int N = 5; const int M = 5;
//Создаём массив и как-нибудь заполняем int A[N][M]; srand(time(0)); for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) A[i][j] = rand() % (N * M) + 1;
//Выводим его на экран for (int i = 0; i < N; ++i) { for (int j = 0; j < M; ++j) cout << setw(4) << A[i][j]; cout << endl; }
//Меняем местами 2ю и 3ю строки int temp = 0; for (int j = 0; j < M; ++j) { temp = A[1][j]; A[1][j] = A[2][j]; A[2][j] = temp; }
//Выводим полученный массив на экран cout << "\n\n"; for (int i = 0; i < N; ++i) { for (int j = 0; j < M; ++j) cout << setw(4) << A[i][j]; cout << endl; }
// Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2('Количество строк и столбцов в матрице:');
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*m*'-');
var s:='';
for var i:=0 to n-1 do
if a.Row(i).Pairwise.Select(t->Sign(t[0])<>Sign(t[1])).All(t->t=True) then
s+=(i+1)+' ';
if s.Length=0 then Writeln('Нет искомых строк')
else Writeln('Номера строк: ',s)
end.
Пример
Количество строк и столбцов в матрице: 10 5
*** Исходная матрица ***
-27 90 57 3 -62
35 -92 -54 36 17
-57 -32 -31 85 84
22 -82 -42 -26 87
-69 75 -26 -88 7
-76 -60 -73 35 45
94 66 95 -85 -40
83 -60 59 -56 49
-81 -53 67 11 -9
-39 -73 67 -49 91
Номера строк: 8