Как найти среднее арифметическое положительных элементов матрицы

0 / 0 / 0

Регистрация: 08.04.2014

Сообщений: 3

1

Найти среднее арифметическое всех положительных элементов матрицы

28.05.2014, 12:31. Показов 4742. Ответов 4


Студворк — интернет-сервис помощи студентам

Если нетрудно, то, пожалуйста, напишите программу в соответствие с приложенной блок-схемой, т.к. она одобрена преподавателем, мне нельзя ее изменять. Должна быть возможность задавать размерность матрицы, а затем в цикле задавать сами переменные. Желательно написать программу полностью (с заданием переменных и т.п.) Заранее спасибо.

Миниатюры

Найти среднее арифметическое всех положительных элементов матрицы
 



0



erl27

906 / 754 / 833

Регистрация: 06.09.2013

Сообщений: 1,561

28.05.2014, 13:04

2

Лучший ответ Сообщение было отмечено Liu Kang как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var
  i, j, n, m, t: byte;
  S: integer;
  B: real;
  A: array[1..20, 1..20] of integer;
  
begin
  writeln('Введите N и M: ');
  readln(N, M);
  randomize;
  for i := 1 to n do begin
    for j := 1 to m do begin
      a[i, j] := random(100) - 50;
      write(a[i, j]:4)
    end;
    writeln
  end;
  writeln;
  S := 0; t := 0;
  for i := 1 to n do
    for j := 1 to m do
      if a[i, j] > 0 then begin;
        S := S + a[i, j];
        t := t + 1
      end;
  B := S / t;
  writeln('Среднее арифметическое: ', B:0:3)
end.

Добавлено через 1 минуту
Я добавил 19-ю строку и заменил в первом цикле 20 на n и m.



0



0 / 0 / 0

Регистрация: 08.04.2014

Сообщений: 3

28.05.2014, 14:55

 [ТС]

3

erl27, А можете, пожалуйста, пояснить строки 10, 13, 14 (почему именно “(a[i, j]:4)”) и 19? И действительно ли данная программа соответствует приложенной блок-схеме? Мне нужна возможность не только самостоятельно задавать размерность матрицы, но и возможность самому задавать значения каждого элемента матрицы. Также можете ли Вы посоветовать литературу, на которую я смогу ссылаться при защите работы? Спасибо.



0



erl27

906 / 754 / 833

Регистрация: 06.09.2013

Сообщений: 1,561

28.05.2014, 15:31

4

Лучший ответ Сообщение было отмечено Liu Kang как решение

Решение

Для ручного ввода:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var
  i, j, n, m, t: byte;
  S: integer;
  B: real;
  A: array[1..20, 1..20] of integer;
  
begin
  writeln('Введите N и M: ');
  readln(N, M);
  writeln('Введите матрицу ', n, 'x', m, ':');
  for i := 1 to n do
    for j := 1 to m do
      read(a[i, j]);
  writeln;
  S := 0; t := 0;
  for i := 1 to n do
    for j := 1 to m do
      if a[i, j] > 0 then begin;
        S := S + a[i, j];
        t := t + 1
      end;
  B := S / t;
  writeln('Среднее арифметическое: ', B:0:3)
end.

Строка S := 0; t := 0; нужна для начальной инициализации суммы и индекса. Из литературы могу посоветовать:
Turbo Pascal 7.0 начальный курс (Фаронов В.В.)
Песни о паскале
Занимательные уроки с паскалем
Или какую-то другую книгу Фаронова.
Также можете посмотреть здесь: http://www.cyberguru.ru/programming/pascal/



0



0 / 0 / 0

Регистрация: 08.04.2014

Сообщений: 3

28.05.2014, 15:41

 [ТС]

5

erl27, огромное спасибо!



0



  • В этой теме 0 ответов, 1 участник, последнее обновление 3 года, 3 месяца назад сделано Васильев Владимир Сергеевич.
  • Сообщения

    • Написать программу, которая для целочисленной матрицы 10х10 определяет среднее арифметическое ее элементов и количество положительных элементов в каждой строке.

      Материалы по теме: Массивы в С++

      Программа должна:

      1. осуществлять ввод с клавиатуры значений элементов целочисленной матрицы;
      2. определять среднее арифметическое элементов целочисленной матрицы;
      3. определять количество положительных элементов в каждой строке целочисленной матрицы;
      4. выводить результаты вычислений.

      Определение среднего арифметического прямоугольной матрицы воспользуемся формулой:

      $$S = frac{sumlimits_{i=0}^{nrow} sumlimits_{j=0}^{ncol} A_{i,j}}{nrowcdot ncol} $$

      где a[i][j] —элемент i-й строки (i= 1, 2,..., nrow), j-го столбца (j=1, 2,..., ncol).

      Блок-схема алгоритма:

      Исходный код программы:

      #include <iostream>
      #include <iomanip> // для использования манипулятора
      
      using namespace std;
      
      void main()
      {
      
          // инициализация переменных
      
          const int nrow = 10, ncol = 20;
          int a[nrow][ncol];
          int i, j;
      
          setlocale(LC_ALL, "rus"); // возможность вывода информации на экран на русском языке
      
          // ввод элементов массива с клавиатуры
      
          cout << "Введите элементы массива:" << endl;
          for (i = 0; i < nrow; i++)
              for (j = 0; j < ncol; j++)
                  cin >> a[i][j];
      
          // вывод элементов массива на экран
          // ширина поля для вывода устанавливается в четыре символа
          //с помощью манипулятора setw()
      
          for (i = 0; i < nrow; i++) {
              for (j = 0; j < ncol; j++)
                  cout << setw(4) << a[i][j] << " ";
              cout << endl;
          }
      
          // инициализация переменных
          int n_posl_el;
          float s = 0;
      
          // обработка элементов матрицы для определения ее характеристик
      
          for (i = 0; i < nrow; i++) {
              n_posl_el = 0;
              for (j = 0; j < ncol; j++) {
                  s += a[i][j]; // сумма всех элементов матрицы
                  if (a[i][j] > 0)
                      n_posl_el++; // подсчет положительных элементов строки
              }
              cout << "Строка:" << i << "количество: " << n_posl_el << endl;
          }
          s /= nrow * ncol; // расчет среднего арифметического
          cout << "Среднее арифметическое" << s << endl;
      
          system("pause"); // осуществляет задержку экрана
      }
  • Автор

    Сообщения

  • Для ответа в этой теме необходимо авторизоваться.

const
  n=10;
  m=20;
var
  a: array[1..n,1..m] of integer;
  b: array[1..n] of integer;
  i,j,sum,k: integer;
begin
  randomize;
  writeln('Матрица:');
  for i:=1 to n do
  begin
    for j:=1 to m do
    begin
      a[i,j]:=random(199)-99;
      write(a[i,j]:4);
    end;
    writeln;
  end;
  writeln;
  
  for i:=1 to n do
  begin
    sum:=0; k:=0;
    for j:=1 to m do
      if a[i,j]>0 then
      begin
        inc(k);
        sum:=sum+a[i,j];
      end;
    if k=0 then writeln('В ',i,'-й строке нет положительных элементов.')
      else writeln('В ',i,'-й строке среднее арифметическое = ',sum/k:0:2);
  end;
  readln;
end.

На чтение 10 мин Просмотров 11 Опубликовано 10 апреля 2023 Обновлено 10 апреля 2023

Содержание

  1. Основные алгоритмы и их реализация на Python
  2. 2.4 Обработка двумерных массивов (матриц)
  3. Основные алгоритмы и их реализация на Python
  4. 2.4 Обработка двумерных массивов (матриц)
  5. Находить среднее арифметическое и минимальное значение элементов каждой строки матрицы, до выполнения условия. Блок-схема.
  6. Примеры алгоритмов обработки матрицами

Основные алгоритмы и их реализация на Python

2.4 Обработка двумерных массивов (матриц)

Двумерные массивы являются аналогами матриц и имеют «прямоугольную» (табличную) структуру. Описываются массивы так же, как одномерные. Разница состоит в том, что у элемента двумерного массива две координаты (два индекса) — номер строки и номер столбца, в которых находится элемент.

Ввод массива осуществляется построчно при помощи двух циклов. Пусть — количество столбцов, — количество строк. Элементы массива обозначим как mas[i, j] , первый индекс — номер строки, второй — номер столбца.

Вывод массива на экран осуществляется при помощи аналогичных циклов.

Здесь «пустой» оператор вывода обеспечивает переход на новую строку.

В Python для работы с многомерными (когда используется два и более индексов) массивами можно использовать вложенные списки (списки списков, списки списков списков и т. д.).

Однако Python предоставляет более удобный инструмент создания и преобразования многомерных массивов — библиотеку numpy (Numeric Python).

Создание двумерного массива в Python может выглядеть так:

Сначала с помощью функции (метода) numpy.zeros() создаётся двумерный массив (матрица), заполненный нулями, а потом вместо нулей подставляются реальные значения. Индексы элементов, так же как в строках, кортежах и списках, начинаются с 0 (первый — верхний левый — элемент матрицы в Python имеет индекс [0,0]). Оператор print выводит индексы очередного элемента матрицы, который нужно ввести.

Задача 1. Выполнить обработку элементов прямоугольной матрицы , имеющей строк и столбцов. Найти среднее арифметическое элементов массива.

  • — количество строк в массиве;
  • — количество столбцов в массиве;
  • — элемент массива;
  • — индексы элемента массива.

Блок-схема алгоритма решения показана на рис. 2.15.

Текст программы на «псевдоязыке»:

Текст программы на Python:

print ‘Среднее значение по строкам:’,C

Источник

Основные алгоритмы и их реализация на Python

2.4 Обработка двумерных массивов (матриц)

Двумерные массивы являются аналогами матриц и имеют «прямоугольную» (табличную) структуру. Описываются массивы так же, как одномерные. Разница состоит в том, что у элемента двумерного массива две координаты (два индекса) — номер строки и номер столбца, в которых находится элемент.

Ввод массива осуществляется построчно при помощи двух циклов. Пусть — количество столбцов, — количество строк. Элементы массива обозначим как mas[i, j] , первый индекс — номер строки, второй — номер столбца.

Вывод массива на экран осуществляется при помощи аналогичных циклов.

Здесь «пустой» оператор вывода обеспечивает переход на новую строку.

В Python для работы с многомерными (когда используется два и более индексов) массивами можно использовать вложенные списки (списки списков, списки списков списков и т. д.).

Однако Python предоставляет более удобный инструмент создания и преобразования многомерных массивов — библиотеку numpy (Numeric Python).

Создание двумерного массива в Python может выглядеть так:

Сначала с помощью функции (метода) numpy.zeros() создаётся двумерный массив (матрица), заполненный нулями, а потом вместо нулей подставляются реальные значения. Индексы элементов, так же как в строках, кортежах и списках, начинаются с 0 (первый — верхний левый — элемент матрицы в Python имеет индекс [0,0]). Оператор print выводит индексы очередного элемента матрицы, который нужно ввести.

Задача 1. Выполнить обработку элементов прямоугольной матрицы , имеющей строк и столбцов. Найти среднее арифметическое элементов массива.

  • — количество строк в массиве;
  • — количество столбцов в массиве;
  • — элемент массива;
  • — индексы элемента массива.

Блок-схема алгоритма решения показана на рис. 2.15.

Текст программы на «псевдоязыке»:

Текст программы на Python:

print ‘Среднее значение по строкам:’,C

Источник

Находить среднее арифметическое и минимальное значение элементов каждой строки матрицы, до выполнения условия. Блок-схема.

Здравствуйте.
Мне по информатикке задали написать алгоритм и блок схему.
Написать алгоритм и составить блок схему.
Дана матрица A с 3 столбцами и 7 строками. Начиная с первой строки находить и печатать среднее арифметическое элементов каждой строки и минимальное значение из значений элементов строки, заканчивая цикл, если разница среднего и минимального из элементов очередной строки оказалась больше заданого значения T.

Впринципе ничего сложного, но я запутался в 1 месте.
Алгоритм я составил на подобии:
1) Ввод матрицы A(i, j) /в конкретном задании A(3, 7)/, ввод ограничения Т, ввод переменных sred для среднего арифметического, min для минимального значения из значений элементов строки, sum /думаю понадобится для подсчета среднего арифметического/.

2) В заданном цикле искать среднее арифметическое каждой строки, начиная с первой, и минимальный элемент этой строки;
Вывод их на печать (или на экран);
После чего сравнить разницу среднего и минимального с введенным ранее ограничением Т.
Если разница меньше или равна Т, то переход на след строку;
Если разница больше T, то закончить цикл и выйти из программы.

Проблема заключается в блок схеме. У меня не получается составить правильный код программы (С++, Delphi, Basic — не важно) с последовательностью формул, чтобы правильно составить блок схему.

Если кто сможет помоч заранее благодарен!

Пример блок схемы:
написать алгоритм и составить блок схему для выражения:
S = X+X^3 / 3! + x^5 / 5! + . + x^(2n + 1) / (2n + 1)!

правда на етой блок схеме считается значение для 1 X, а не как в задании сумма X, но принцип построения тот же.

Вычислить среднее арифметическое значение положительных элементов каждой строки матрицы
нуждаюсь в помощи , кому не сложно помогите пожалуйста 1) для заданного массива А(4,6) вычислить.

Напечатать матрицу, минимальное значение каждой строки, среднее арифметическое каждого столбца
Создайте матрицу (5 строк, 7 столбцов), которая содержит двузначное случайное число (размер.

Найти среднее арифметическое элементов каждой строки матрицы Q (lm) и отнять его от элементов этой строки. размер матрицы 7х7.заранее спасибо
Найти среднее арифметическое элементов каждой строки матрицы Q (lm) и отнять его от элементов этой.

Найти среднее арифметическое значение каждой строки матрицы
Помогите пожалуйста. дана матрица H= размером (p x q). p=3; q=5; Найти среднее арифметическое.

Источник

Примеры алгоритмов обработки матрицами

Алгоритмы обработки матриц

Матрица— это двумерный массив, каждый элемент которого имеет два индекса: номер строки — i; номер столбца — j. Поэтому для работы с элементами матрицы необходимо использовать два цикла. Если значениями параметра первого цикла будут номера строк матрицы, то значениями параметра второго — столбцы (или наоборот). Обработка матрицы заключается в том, что вначале поочередно рассматриваются элементы первой строки (столбца), затем второй и т.д. до последней. Рассмотрим основные операции, выполняемые над матрицами при решении задач.

Алгоритм ввода-вывода матриц

Матрицы, как и массивы, нужно вводить (выводить) поэлементно. Блок-схема ввода элементов матрицы изображена на рис. 4.1. Вывод матрицы организуется аналогично вводу.

Рассмотрим несколько задач обработки матриц. Для их решения напомним читателю некоторые свойства матриц (рис. 4.2):

  • если номер строки элемента совпадает с номером столбца (i = j), это означает что элемент лежит на главной диагонали матрицы;
  • если номер строки превышает номер столбца (i > j), то элемент находится ниже главной диагонали;
  • если номер столбца больше номера строки (i n.

Примеры алгоритмов обработки матрицами

ПРИМЕР 4.1. Найти сумму элементов матрицы, лежащих выше главной диагонали (рис 4.3).

Рис. 4.3. Рисунок к условию задачи из примера 4.1

Алгоритм решения данной задачи (рис. 4.4) построен следующим образом: обнуляется ячейка для накапливания суммы (переменная S). Затем с помощью двух циклов (первый по строкам, второй по столбцам) просматривается каждый элемент матрицы, но суммирование происходит только в том случае если, этот элемент находится выше главной диагонали, то есть выполняется свойство i

ПРИМЕР 4.2. Вычислить количество положительных элементов квадратной матрицы, расположенных по ее периметру и на диагоналях. Напомним, что в квадратной матрице число строк равно числу столбцов.

Прежде чем преступить к решению задачи рассмотрим рисунок 4.6, на котором изображена схема квадратных матриц различной размерности. Из условия задачи понятно, что не нужно рассматривать все элементы заданной матрицы. Достаточно просмотреть первую и последнюю строки, первый и последний столбцы, а так же диагонали. Все эти элементы отмечены на схеме, причем черным цветом выделены элементы, обращение к которым может произойти дважды. Например, элемент с номером (1,1) принадлежит как к первой строке, так и к первому столбцу, а элемент с номером (N,N) находится в последней строке и последнем столбце одновременно. Кроме того, если N — число нечетное (на рисунке 4.6 эта матрица расположена слева), то существует элемент с номером (N/2+1, N/2+1), который находится на пересечении главной и побочной диагоналей. При нечетном значении N (матрица справа на рис. 4.6) диагонали не пересекаются.

Рис. 4.6. Рисунок к условию задачи из примера 4.2

Итак, разобрав подробно постановку задачи, рассмотрим алгоритм ее решения. Для обращения к элементам главной диагонали вспомним, что номера строк этих элементов всегда равны номерам столбцов. Поэтому, если параметр i изменяется циклически от 1 до N, то Ai,i — элемент главной диагонали. Воспользовавшись свойством, характерным для элементов побочной диагонали получим: i+j-1 = n > j = n-i+1, следовательно, для i=1,2,…,n элемент Аi,n-i+1 — элемент побочной диагонали. Элементы, находящиеся по периметру матрицы записываются следующим образом: А1,i — первая строка, АN,i — последняя строка и соответственно Аi,1 — первый столбец, Аi,N — последний столбец.

Блок-схема описанного алгоритма изображена на рис. 4.7. В блоке 1 организуется цикл для обращения к диагональным элементам матрицы. Причем в блоках 2-3 подсчитывается количество положительных элементов на главной диагонали, а в блоках 5-6 на побочной. Цикл в блоке 6 задает изменение параметра i от 2 до N-1. Это необходимо для того, чтобы не обращать к элементам, которые уже были рассмотрены: A11, A1N, AN,1 и AN,N. Блоки 7-8 подсчитывают положительные элементы в первой строке, 9 и 10 — в последней строке, 11 и 12 — в первом столбце, а 13 и 14 в последнем. Блок 15 проверяет, не был ли элемент, находящийся на пересечении диагоналей, подсчитан дважды. Напомним, что это могло произойти только в том случае, если N — нечетное число и этот элемент был положительным. Эти условия и проверяются в блоке 16, который уменьшает вычисленное количество положительных элементов на единицу.

Рис. 4.7. Блок-схема к примеру 4.2

ПРИМЕР 4.3. Проверить, является ли заданная квадратная матрица единичной. Единичной называют матрицу, у которой элементы главной диагонали — единицы, а все остальные — нули.

Решать задачу будем так. Предположим, что матрица единичная (FL=ИСТИНА) и попытаемся доказать обратное. Если окажется, что хотя бы один диагональный элемент не равен единице или любой из элементов вне диагонали не равен нулю, то матрица единичной не является (FL=ЛОЖЬ). Воспользовавшись логическими операциями все эти условия можно соединить в одно и составить блок-схему (рис. 4.8).

Рис. 4.8. Блок-схема к примеру 4.3

ПРИМЕР 4.4. Преобразовать исходную матрицу так, чтобы первый элемент каждой строки был заменен средним арифметическим элементов этой строки.

Для решения данной задачи необходимо найти в каждой строке сумму элементов, которую разделить на их количество. Полученный результат записать в первый элемент соответствующей строки. Блок-схема алгоритма решения приведена на рис. 4.9.

ПРИМЕР 4.5. Задана матрица An, m. Сформировать вектор Pm, в который записать номера строк максимальных элементов каждого столбца.

Алгоритм решения этой задачи следующий: для каждого столбца матрицы находим максимальный элемент и его номер, номер максимального элемента j-го столбца матрицы записываем в j-й элемент массива P. Блок-схема алгоритма приведена на рис. 4.10.

ПРИМЕР 4.6. Написать программу умножения двух матриц An,m и Bm,l.

Например, необходимо перемножить две матрицы

Воспользовавшись правилом «строка на столбец», получим матрицу:

В общем виде формула для нахождения элемента Ci,j матрицы имеет вид:

где i = 1,Nи j = 1,L.

Обратите внимание, что проводить операцию умножения можно только в том случае, если количество строк левой матрицы совпадает с количеством столбцов правой. Кроме того, A >

Источник

Получи верный ответ на вопрос 🏆 «Дана вещественная квадратная матрица А порядка n. Найти среднее арифметическое среди положительных элементов матрицы, находящихся на …» по предмету 📕 Информатика, используя встроенную систему поиска. Наша обширная база готовых ответов поможет тебе получить необходимые сведения!

Найти готовые ответы

Главная » Информатика » Дана вещественная квадратная матрица А порядка n. Найти среднее арифметическое среди положительных элементов матрицы, находящихся на главной и побочной диагоналях. Выдать сообщение, если таких элементов нет.

Добавить комментарий