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

Дан двумерный массив. найти: а) минимальную сумму элементов строки; б) максимальную сумму элементов столбца. обе решить двумя с использованием дополнительного одномерного массива; 2) без использования дополнительного одномерного массива.

👇
Ответ:
autist1707
autist1707
02.03.2020
/ PascalABC.NET 3.3, сборка 1573 от 04.11.2017
// Внимание! Если программа не работает, обновите версию!

1. Со вс массивом

begin
  var (n,m):=ReadInteger2('Количество строк и столбцов в массиве:');
  var a:=MatrRandom(n,m,-99,99);
  Writeln('*** Исходный массив ***'); a.Println(4);
  Writeln(4*a.ColCount*'-');
  var min:=integer.MaxValue;
  var b:array of integer;
  for var i:=1 to a.RowCount-1 do begin
    b:=a.Row(i); // строка в одномерном массиве
    var s:=b.Sum;
    if s<min then min:=s;
    end;
  var max:=integer.MinValue;
  for var j:=1 to a.ColCount-1 do begin
    b:=a.Col(j); // колонка в одномерном массиве
    var s:=b.Sum;
    if s>max then max:=s;
    end;
  Writeln('Минимальная сумма по строкам ',min);
  Writeln('Максимальная сумма по колонкам ',max);
end.

Пример
Количество строк и столбцов в массиве: 5 8
*** Исходный массив ***
 -89  16  35  74 -76  -3  -3 -25
  54 -24  12  13  63 -60   4  92
  74  82  12  12  -1  11 -29 -19
 -72 -79  -3 -22  71 -53  57 -30
  65 -25   2 -25  82 -73   4 -23

Минимальная сумма по строкам -131
Максимальная сумма по колонкам 139

2. Без вс массива

begin
  var (n,m):=ReadInteger2('Количество строк и столбцов в массиве:');
  var a:=MatrRandom(n,m,-99,99);
  Writeln('*** Исходный массив ***'); a.Println(4);
  Writeln(4*a.ColCount*'-');
  Writeln('Минимальная сумма по строкам ',
      a.Rows.Select(row->row.Sum).Min);
  Writeln('Максимальная сумма по колонкам ',
      a.Cols.Select(col->col.Sum).Max);
end.

Пример
Количество строк и столбцов в массиве: 7 4
*** Исходный массив ***
 -44  32 -66 -71
  56 -99  83  27
 -30  39 -65 -95
 -40   6  37  37
  75  23 -86  80
 -12  98 -65  28
  47 -85  25  -6

Минимальная сумма по строкам -151
Максимальная сумма по колонкам 52
4,7(83 оценок)
Ответ:
iodin
iodin
02.03.2020
Кодяра ниже

#include <iostream>
using namespace std;
int minSumRow1(int ** const a, const int N, const int M) {
 int sum = 0;
 int *buff = new int[N];
 for (size_t i = 0; i < N; ++i) {
  buff[i] = 0;
  for (size_t j = 0; j < M; ++j)
   buff[i] += a[i][j];
 }
 sum = buff[0];
 for (size_t i = 1; i < N; ++i)
  if (sum > buff[i])
   sum = buff[i];
 return sum;
}
int minSumRow2(int ** const a, const int N, const int M) {
 int sum, buff;
 bool flag = true;
 for (size_t i = 0; i < N; ++i) {
  buff = 0;
  for (size_t j = 0; j < M; ++j)
   buff += a[i][j];
  if (flag || buff < sum) {
   flag = false; sum = buff;
  }
 }
 return sum;
}
int maxSumCol1(int ** const a, const int N, const int M) {
 int sum = 0;
 int *buff = new int[M];
 for (size_t j = 0; j < M; ++j) {
  buff[j] = 0;
  for (size_t i = 0; i < N; ++i)
   buff[j] += a[i][j];
 }
 sum = buff[0];
 for (size_t j = 1; j < M; ++j)
  if (sum < buff[j]) sum = buff[j];
 return sum;
}
int maxSumCol2(int ** const a, const int N, const int M) {
 int sum, buff;
 bool flag = true;
 for (size_t j = 0; j < M; ++j) {
  buff = 0;
  for (size_t i = 0; i < N; ++i)
   buff += a[i][j];
  if (flag || buff > sum) {
   flag = false;
   sum = buff;
  }
 }
 return sum;
}
int main() {
 setlocale(LC_ALL, "Russian");
 const size_t N = 5, M = 6;
 int **a = new int*[N];
 cout << "Массив" << endl;
 for (size_t i = 0; i < N; ++i){
  a[i] = new int[M];
  for (size_t j = 0; j < M; ++j){
   a[i][j] = 1 + rand() % 9;
   cout << a[i][j] << " ";
  }
  cout << endl;
 }
 cout << endl;

 cout << minSumRow1(a, N, M) << endl;
 cout << minSumRow2(a, N, M) << endl;

 cout << maxSumCol1(a, N, M) << endl;
 cout << maxSumCol2(a, N, M) << endl;
 system("pause");
 return 0;
}

Кодяра выше
4,4(5 оценок)
Открыть все ответы
Ответ:
ALESHABELAVIN
ALESHABELAVIN
02.03.2020

В оглавлении произведения, разбитого на части, разделы, подразделы, главы, подглавы, параграфы, подпараграфы, примечания и т. п., устанавливающие соподчиненность отдельных частей произведения, последовательно приводятся наименования частей, разделов, глав, параграфов в полном объёме, так, как они даны в тексте, и указываются страницы, на которых начинается рубрика. Рубрики последней ступени — подзаголовки, взятые в тексте рукописи в подбор, — в оглавлении могут не приводиться. Взаимоподчиненность частей произведения в оглавлении передают средствами полиграфического оформления: выделением в красную строку, шрифт

4,7(44 оценок)
Ответ:
valya0603
valya0603
02.03.2020

1) для перевода из 10-й в двоичную 2-ую систему счисления нужно число в десятичной системе разделить на 2 и записать остаток , затем тоже самое сделать с целой часть и повторять пока не останется только 1 или 0. конечное числом будут остатки записанные в обратном порядке.

1450/ 2 = 725 остаток 0

725 / 2 = 362 остаток 1

362 / 2 = 181 остаток 0

181 / 2 = 90 остаток 1

90 / 2 = 45 остаток 0

45/ 2 = 22 остаток1

22/2 = 11 остаток 0

11/ 2 = 5 остаток 1

5 / 2 = 2 остаток 1

2 / 2 = 1 остаток 0

1 / 2 = 0 остаток 1

 

результат: 10110101010

 

в 2-х байтовой ячеке всего 16 разрядов, а в наше числе 11 , значит спереди нужно дописать 5 нулей и получим нужное представление

0000010110101010

 

2)

для перевода в 16 систему нужно сначало перевести в 2-ю систему счисления, потом записать обратный код, почитать дополнительный и тогда перевести в 16-ю

вот 1450 в 2-й системе

0000010110101010

обратный код это код в котором все 0 заменены на 1, а 1 на 0

1111101001010101

чтобы получит дополнительный код нужно прибавить 1

1111101001010110

теперь смотрим по 4 разряда и заменяем 1 символом в 16 системе счисления

1111 = f

1010 = a

0101 = 5

0110 = 6

искомое число fa56

3)

  для перевода из 16 в 2 систему счисления нужно каждую цифру числа умножит на 16 в степень равным номеру цифры(справа на лево, отсчет с 0)

f67d(в 16 системе счисления) = 15 * 16 ^3 + 6 * 16 ^2 + 7 * 16^1 + 13 * 16 ^0 = 61440 + 1536 + 112 + 13 = 63101(в 10 системе счисления)

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