Нахождение суммы элементов главной диагонали матрицы
Для нахождения суммы элементов главной диагонали матрицы (след матрицы) выберите нужный размер исходной матрицы и заполните её элементы.
Другие онлайн калькуляторы
- Транспонирование матрицы
- Нахождение союзной матрицы
- Нахождение обратной матрицы
- Вычисление определителя матрицы
- Приведение матрицы к треугольному виду
- Возведение матрицы в степень
- Вычисление ранга матрицы
- Сложение матриц
- Вычитание матриц
- Умножение матриц
- Умножение матрицы на число
Описание онлайн калькулятора
С помощью данного онлайн калькулятора Вы сможете найти сумму элементов главной диагонали матрицы (след матрицы) или проверить правильность своего решения.
Для нахождения суммы элементов главной диагонали матрицы (след матрицы), исходная матрица должна быть квадратной.
Описание работы онлайн калькулятора
- Минимальный размер матрицы 2х2;
- Максимальный размер матрицы 10х10;
- В поля ввода значений элементов матриц, можно вводить следующие типы чисел:
- Натуральные (0; 3; 9);
- Отрицательные (-43);
- Десятичные (1,5 или 1.5);
- Дробные (2/3).
- Максимальное количество вводимых символов 7;
- При нажатии кнопки «Вывести результат»
выводится результат требуемой операции.
Свои вопросы по работе данного онлайн калькулятора, Вы всегда можете задать в комментариях.
kormorant 0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
|||||||||
1 |
|||||||||
Найти сумму элементов главной диагонали матрицы27.01.2015, 11:18. Показов 24189. Ответов 20 Метки нет (Все метки)
Помогите решить задачи,я недавно начал заниматься программированием,не разобрался во всём.Программа Borland 5.0.
Как написать матрицу я понял,а вот как складывать элементы диагонали незнаю.
По поводу второй сказать ничего не могу,ищу примеры.Помогите кто чем может.
0 |
zss Модератор 13100 / 10373 / 6206 Регистрация: 18.12.2011 Сообщений: 27,744 |
||||
27.01.2015, 12:20 |
2 |
|||
1 |
0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
|
28.01.2015, 13:28 [ТС] |
3 |
а как это обьединить,чтоб работало?Не получается.
0 |
Модератор 13100 / 10373 / 6206 Регистрация: 18.12.2011 Сообщений: 27,744 |
|
28.01.2015, 14:07 |
4 |
Не получается. Пример того, что получается, приведите.
0 |
kormorant 0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
||||
28.01.2015, 14:43 [ТС] |
5 |
|||
Чего то не хватает.Или строки, как получить сумму, не полностью записаны.И ещё ошибки ссылаются на элемент i(строка вроде бы,j-столбец).
0 |
0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
|
30.01.2015, 12:32 [ТС] |
6 |
Можете подсказать в чём проблемма?
0 |
Enno 267 / 170 / 40 Регистрация: 25.08.2014 Сообщений: 1,087 Записей в блоге: 1 |
||||
30.01.2015, 12:47 |
7 |
|||
Фигурную скобку эту убери.
0 |
Тамика Котовчанин 942 / 482 / 200 Регистрация: 16.02.2010 Сообщений: 3,338 Записей в блоге: 37 |
||||
30.01.2015, 15:01 |
8 |
|||
kormorant,
0 |
0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
|
30.01.2015, 16:29 [ТС] |
9 |
Множественное заявление для i. Ссылается на строку 12.После удаления строки(ради эксперимента) выходит окно с введением данных,пустое…При вводе n-ного числа переменных всё равно ничего не происходит.Кстати,использование…
0 |
Тамика Котовчанин 942 / 482 / 200 Регистрация: 16.02.2010 Сообщений: 3,338 Записей в блоге: 37 |
||||
30.01.2015, 16:33 |
10 |
|||
kormorant, ну попробуйте иначе. У меня этот код работает.
0 |
Ilot 2013 / 1342 / 382 Регистрация: 16.05.2013 Сообщений: 3,463 Записей в блоге: 6 |
||||||||
30.01.2015, 16:39 |
11 |
|||||||
Множественное заявление для i. Ссылается на строку 12. В старом компиляторе Visual Studio переменная цикла обявлялась как переменная в текущей области видимости. Варианты решения проблемы:
2)Дать переменной другое имя:
0 |
0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
|
30.01.2015, 16:57 [ТС] |
12 |
В старом компиляторе Visual Studio переменная цикла обьявлялась как переменная в текущей области видимости. Варианты решения проблемы: ошибка больше не выходит…но опять же можно вводить бесконечное количество переменных Миниатюры
0 |
0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
|
30.01.2015, 17:16 [ТС] |
13 |
решил попробовать вбить команду end в окне ввода,выдал ответ.18492 при 2 переменных 3 и 3.даже незнаю чего ввожу,то ли количество столбцов и строк,то ли ещё чего нибудь.
0 |
Dimension 594 / 462 / 223 Регистрация: 08.04.2014 Сообщений: 1,710 |
|
30.01.2015, 17:25 |
14 |
кинь код посмотрю что у тебя там
0 |
kormorant 0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
||||
30.01.2015, 17:32 [ТС] |
15 |
|||
0 |
Dimension 594 / 462 / 223 Регистрация: 08.04.2014 Сообщений: 1,710 |
|
30.01.2015, 17:35 |
16 |
вы же понимаете ,что двумерный массив это так скажем таблица ,в вашем случае у нее 10 строчек по 10 элементов
0 |
ScorpiN 3 / 3 / 3 Регистрация: 25.01.2015 Сообщений: 25 |
||||
30.01.2015, 17:40 |
17 |
|||
У Вас массив А на 100 элементов, если заполнять не все элементы то в незаполненных может быть мусор.
1 |
0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
|
30.01.2015, 17:42 [ТС] |
18 |
Матрица вы хотели сказать?Задаётся двумя параметрами i j.Количество строк и стобцов,ну или размерность- второго порядка,третьего порядка….Задать n не как постоянное число const int n=10?
0 |
Dimension 594 / 462 / 223 Регистрация: 08.04.2014 Сообщений: 1,710 |
|
30.01.2015, 17:45 |
19 |
матрица это и есть двумерный массив , я не могу понять в чем ваша проблема ?
0 |
0 / 0 / 0 Регистрация: 26.01.2015 Сообщений: 25 |
|
30.01.2015, 17:56 [ТС] |
20 |
Скорпион открыл мне глаза,мне дали пример с матрицей на 100 элементов,я б до ночи писал их,а так изменил на const int n=3 Миниатюры
0 |
Перейти к содержанию
Вычислить сумму элементов главной или побочной диагонали матрицы
Просмотров 9.6к. Обновлено 15 октября 2021
Дана квадратная матрица. Вычислить сумму элементов главной или побочной диагонали в зависимости от выбора пользователя. Сумма элементов любой диагонали должна вычисляться в одной и той же функции.
В функцию следует передавать не только массив, но и информацию о том, что требуется вычислить, выраженную через тот или иной символ или число.
Если была выбрана сумма главной диагонали, то при определении ее элементов второй индекс матрицы будет равен первому и начинаться с первого элемента. В случае побочной диагонали второй индекс будет начинаться с последнего элемента и заканчиваться первым. Поэтому в теле функции перед проходом по матрице второму индексу присваивается либо 1 (или 0), либо размерность квадратной матрицы (N или N-1). При проходе второй индекс либо увеличивается на каждой итерации, либо уменьшается.
Pascal
const N = 10;
type
type_arr = array[1..N, 1..N] of byte;var
arr: type_arr;
i, j: byte;
sum: byte;
ch: char;function diagonal (var arr1: type_arr; c: char): byte;
var
sum1: byte;
i, j: byte;
begin
sum1 := 0;
if c = '1' then j := 1
else j:= N;
for i:=1 to N do begin
sum1 := sum1 + arr1[i][j];
if c = '1' then j := j + 1
else j := j-1;
end;
diagonal := sum1;
end;begin
randomize;
for i:=1 to N do begin
for j:=1 to N do begin
arr[i,j] := random(10);
write(arr[i,j]:4);
end;
writeln;
end;
write('Главная (1) или побочная (2): ');
readln(ch);
if (ch = '1') or (ch = '2') then begin
sum := diagonal(arr, ch);
writeln(sum);
end;
end.
Пример(ы) выполнения программы на языке Pascal:0 2 0 4 8 0 4 1 5 1
1 7 7 0 1 7 8 4 7 7
1 0 7 4 6 5 0 6 4 7
1 5 3 3 0 4 6 7 8 0
1 7 3 8 1 6 9 4 4 7
8 5 7 7 1 7 8 8 8 4
2 0 1 3 1 5 2 0 0 8
4 8 3 7 5 6 5 1 3 9
9 0 9 2 1 0 3 6 1 3
8 3 7 5 8 8 9 5 1 1
Главная (1) или побочная (2): 2
41
Язык Си
#include < stdio.h>
#define N 10
int diagonal(char c);
int a[N][N];main() {
int i, j, sum;
char ch;
srand(time(NULL));
for (i=0; i< N; i++) {
for (j=0; j< N; j++) {
a[i][j] = rand() % 10;
printf("%3d", a[i][j]);
}
printf("n");
}
printf("Главная (1) или побочная (2): ");
scanf("%c", &ch);
sum = diagonal(ch);
printf("%dn", sum);
}int diagonal(char c) {
int s, i, j;
s = 0;
if (c == '1')
for (i=0; i< N; i++)
s += a[i][i];
else
for (i=0, j=N-1; i< N; i++,j--)
s += a[i][j];
return s;
}
Python
сумма элементов главной диагонали матрицы python
def diagonal(l,c):
s = 0
i = 0
while i < N:
if c == '1':
s += l[i][i]
else:
s += l[i][N-i-1]
i += 1
return sfrom random import random
N = 10
a = []
for i in range(N):
b = []
for j in range(N):
n = int(random()*10)
b.append(n)
print("%3d" % n, end='')
a.append(b)
print()ch = input("Главная (1) или побочная (2): ")
if ch == '1' or ch == '2':
summa = diagonal(a,ch)
print(summa)
КуМир
цел N = 7
цел таб a[1:N,1:N]
алг
нач
цел i, j, sum
сим ch
нц для i от 1 до N
нц для j от 1 до N
a[i,j] := int(rand(0,10))
вывод a[i,j], " "
кц
вывод нс
кц
вывод "Главная (г) или побочная (п): "
ввод ch
если ch = "г" или ch = "п" то
sum := diag(ch)
вывод sum
все
коналг цел diag(сим c)
нач
цел s, i, j
s := 0
нц для i от 1 до N
если c = "г" то
s := s + a[i,i]
иначе
s := s + a[i,N-i+1]
все
кц
знач := s
кон
Составим квадратную матрицу из случайных чисел и запишем в таблицу Эксель начиная с ячейки C3.
Если размер матрицы 5х5 то вся матрица займёт диапазон C3:G7
Для наглядности можно выделить ячейки диагонали см Как в таблице Excel выделить диагональ другим цветом?
Придется воспользоваться формулой массива с выбором из всего диапазана ячеек у которых номер строки равен номеру столбца
Для нашей таблицы
номер строки можно вычислить по формуле =СТРОКА()-СТРОКА(С3)
номер столбца можно вычислить по формуле =СТООЛБЕЦ()-СТООЛБЕЦ(С3)
Суммируемое выражение:
ЕСЛИ( (СТРОКА(C3:G7) — СТРОКА(C3)) = (СТОЛБЕЦ(C3:G7) — СТОЛБЕЦ(C3)); C3:G7;0)
Общая формула массива для суммы элементов главной диагонали таблицы для диапазона C3:C7 выглядит так:
=СУММ( ЕСЛИ( (СТРОКА(C3:G7) — СТРОКА(C3)) = (СТОЛБЕЦ(C3:G7) — СТОЛБЕЦ(C3)); C3:G7;0))
ввод ограничиваем одновременным нажатием клавиш CTRL+SHIFT+ENTER (фигурные скобки появятся сами):
Нужно найти сумму элементов под главной диагонали матрицы.
К примеру,дана матрица
1 2 3 4
5 6 7 8
2 4 3 2
5 6 7 8
Нужна сумма цифр 5,2,4,5,6,7.
Я написал программу для вычисления главной диагонали.
Вот код:
int main()
{
int sizeN,sizeM;
cin >> sizeN;
sizeM = sizeN;
int array[sizeN][sizeM] = {};
int total = 0;
for (int i = 0; i < sizeN; i++) {
for (int j = 0; j < sizeM; j++) {
cin >> array[i][j];
}
}
for (int i=0;i<sizeN;i++)
for (int j=0;j<sizeM;j++)
if (i==j){
total+=array[i][j];
}
cout << total;
return 0;
}
Как вычислить сумму цифр под диагональю?