Информатика 2 класса. решить . ученики таня, галя и андрей ходят в танцевальный кружок, наташа и рома ходят и в танцевальный, и в хоровой кружки, а павел, антон и иван-в театральный.
//pascal var a: array [1 .. 255, 1 .. 255] of integer; suma, historya: array [1 .. 255] of integer; i, j, n, m, z, count, count2: byte; tmpsum: integer; begin randomize; write('строк = '); readln(n); write('столбцов = '); readln(m); for i : = 1 to n do begin for j : = 1 to m do begin a[i, j] : = random(5); write(a[i, j]: 4); end; writeln; end; writeln(''); for j : = 1 to m do begin tmpsum : = 0; count : = 0; for i : = 1 to n do tmpsum : = tmpsum + a[i, j]; suma[j] : = tmpsum; end; for i : = 1 to m do write(suma[i]: 4); writeln; writeln; for j : = 1 to m do begin count : = 0; count2 : = 0; tmpsum : = suma[j]; for i : = 1 to m do begin if (suma[i] = tmpsum) then count : = count + 1; if historya[i] = tmpsum then count2 : = count2 + 1; ; end; if (count < > 1) and (count2 < > 1) then begin writeln('одинаковых столбцов суммы ', tmpsum, ' = ', count); historya[j] : = tmpsum; end; end; readln; end.
Максим Павел
19.02.2022
// pascalabc.net 3.3, сборка 1583 от 25.11.2017 // внимание! если программа не работает, обновите версию! begin var (m,n): =readinteger2('количество строк и столбцов в матрице: '); writeln('*** исходная матрица ***'); var a: =matrrandom(m,n,10,20); a.println(3); writeln(3*a.colcount*'-'); var k: =a.cols.select(col-> col.sum).groupby(t-> t) .select(t-> (t.key,t.(t-> t[1]> 1).sum(t-> t[1]); writeln('искомое количество столбцов: ',k) end. пример количество строк и столбцов в матрице: 4 15 *** исходная матрица *** 12 13 15 17 16 17 19 19 13 18 15 14 10 10 15 15 17 15 10 18 13 11 17 14 19 15 10 15 17 19 15 16 14 14 20 10 20 16 20 13 12 16 20 10 13 16 17 17 13 19 15 20 11 13 17 11 17 10 18 11 искомое количество столбцов: 7 программа короткая, но в ней есть часть, понимание которой может быть затруднено. поэтому ниже приводится эта же программа, в которой один из операторов разбит на несколько с выдачей промежуточных результатов. begin var (m,n): =readinteger2('количество строк и столбцов в матрице: '); writeln('*** исходная матрица ***'); var a: =matrrandom(m,n,10,20); a.println(3); writeln(3*a.colcount*'-'); // по шажкам var s1: =a.cols.select(col-> col.sum); writeln('суммы поколонно: '); s1.println; var s2: =s1.groupby(t-> t); writeln('группировка сумм: '); writeln(s2); var s3: =s2.select(t-> (t.key,t.count)); writeln('то же, формат "значение, количество": '); writeln(s3); var s4: =s3.where(t-> t[1]> 1); writeln('оставляем только суммы с повторами: '); writeln(s4); var k: =s4.sum(t-> t[1]); writeln('искомое количество столбцов: ',k) end. пример количество строк и столбцов в матрице: 4 15 *** исходная матрица *** 11 11 16 15 17 13 15 14 11 18 20 16 15 15 15 20 17 10 18 18 14 11 19 16 13 16 18 16 10 12 16 20 10 13 12 14 16 19 11 16 19 16 17 12 12 19 12 12 11 10 14 18 10 15 11 10 13 10 11 10 суммы поколонно: 66 60 48 57 57 55 60 62 53 58 65 63 58 48 49 группировка сумм: [[66],[60,60],[48,48],[57,57],[55],[62],[53],[58,58],[65],[63],[49]] то же, формат "значение, количество": [(66,,,,,,,,,,,1)] оставляем только суммы с повторами: [(60,,,,2)] искомое количество столбцов: 8
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Информатика 2 класса. решить . ученики таня, галя и андрей ходят в танцевальный кружок, наташа и рома ходят и в танцевальный, и в хоровой кружки, а павел, антон и иван-в театральный.