М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

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

👇
Ответ:
edsrghhythg
edsrghhythg
12.04.2020
// 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.Count)).Where(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),(48,2),(57,2),(55,1),(62,1),(53,1),(58,2),(65,1),(63,1),(49,1)]
Оставляем только суммы с повторами:
[(60,2),(48,2),(57,2),(58,2)]
Искомое количество столбцов: 8
4,8(94 оценок)
Ответ:
горро1
горро1
12.04.2020
//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.

Pascalabc.net нужна ! в заданой матрице размер которой указывает пользователь, а элементы образуются
4,4(98 оценок)
Открыть все ответы
Ответ:
ancass
ancass
12.04.2020

В наше время информатика имеет большое значение как в быту так и в учёбе , работе и в иных сферах. Вокруг этой темы крутится множество профессий .В целом информатика это то без чего современного человека представить сложно.Ниужели информатика так сильно влияет на сегодняшнее положение вещей?

Если брать информатику как школьный предмет то мы понимаем что он даёт нам понятия и знание азов в IT-сфере , которые могут перерастать в серёзную , важную и интересную профессию .Без информатики мы не имели бы такого понятия как блогер ,сторис-мейкер , блогер-елюстратор, менеджер блогера...Не могли бы делится своим мнением в сети и в конце концов не было бы и дистанционного обучения.

Вообще м то что я хочу вам донести , а только то что без информатики современный мир теряет перспективы и мы уже не мы .

4,6(8 оценок)
Ответ:
infernyc
infernyc
12.04.2020

если надо найти среднее число:

a = input('Введите первое число: ')

b = input('Введите второе число: ')

c = input('Введите третье число: ')

print(f'Среднее число: {b}')

если надо найти среднее по значению число:

a = int(input('Введите первое число: '))

b = int(input('Введите второе число: '))

c = int(input('Введите третье число: '))

if (a > b and a < c) or (a < b and a > c):

 print(f'Среднее по значению число: {a}')

elif (b > a and b < c) or (b < a and b > c):

 print(f'Среднее по значению число: {b}')

else:

 print(f'Среднее по значению число: {c}')

4,5(37 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ