Есть ответ 👍

Pascalabc.net нужна ! в заданой матрице размер которой указывает пользователь, а элементы образуются случайным образом: посчитать количество столбцов, в которых одинаковые суммы элементов.

183
494
Посмотреть ответы 3

Ответы на вопрос:


// 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

//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.
Liza1556
4,6(96 оценок)

10001011=139 в десятичной 

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS