24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310

Найти сумму элементов над и под главной и побочной диагоналями

28.06.2019, 16:16. Показов 24504. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана матрица размером NxN. найти сумму элементов над и под главной и побочной диагоналями:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from random import randint
N = int(input())
lst=[[randint(1, 9) for i in range(N)] for i in range(N)]
for i in lst:
    print()
    for j in i:
        print (j, end=" ")
sum=0
for i in range(1, N):
    for j in range(i):
        sum = sum+lst[i][j]
print('\nсумма под главной диагональю', sum)
sum1=0
for i in range(i):
    for j in range(j):
        if i<N-j-1:
            sum1 = sum1+lst[i][j]
print('\nсумма выше побочной', sum1)
sum2=0
for i in range(i):
    for j in range(j):
        if i>N-j-1:
            sum2 = sum2+lst[i][j]
print('\nсумма ниже побочной', sum2)
Проблема в том, что суммы над и под побочной диагональю неправильно ищет:

Подскажите, как исправить это. Заранее большое спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.06.2019, 16:16
Ответы с готовыми решениями:

Найти сумму положительных элементов расположенных одновременно над главной и над побочной диагоналями
Ввести двумерный массив A(N x M),вывести его. Найти сумму положительных элементов расположенных в части массива одновременно как над...

Найти произведение элементов матрицы над главной, но под побочной диагоналями
в задании сказано &quot;найдите произведение элементов, которые одновременно находятся НАД главной и ПОД побочной диагоналями&quot; ( в моем...

Найти сумму положительных элементов в части массива над главной и побочной диагоналями
Помогите решить, пожалуйста, эту задачу. Никак не допру: Ввести двумерный массив ANxN, вывести его. Найти сумму положительных элементов...

15
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
28.06.2019, 16:23
Цитата Сообщение от catauggie Посмотреть сообщение
Подскажите, как исправить это.
включить дебаггер, голову , и построчно проверять программу - эта способность пригодится и в будущем. Неужели проще по каждому фейлу бежать на форум?
0
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
28.06.2019, 16:33  [ТС]
НЕ вижу тут каких-либо ошибок, и я по этому поводу
Цитата Сообщение от Welemir1 Посмотреть сообщение
Неужели проще по каждому фейлу бежать на форум
уже все сказал
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
28.06.2019, 16:35
debugger! use it!
0
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
28.06.2019, 19:09  [ТС]
и все-таки цикл обработки вроде бы правильный
0
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
28.06.2019, 19:19  [ТС]

Можно конечно знак меньше поменять на меньше ли равно. Но результат все равно неправильный:
5 7 6
1 2 6
1 6 9
произведение под главной диагональю 6

произведение над главной диагональю 252

сумма над главной диагональю 19

сумма под главной диагональю 8

сумма выше побочной 5
0
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
28.06.2019, 19:33  [ТС]
в общем случае считает сумму над побочной, не включая соседнюю выше диагональ:
9 6 3 1
1 3 9 6
3 8 8 4
8 3 8 1
произведение под главной диагональю 4608

произведение над главной диагональю 3888

сумма над главной диагональю 29

сумма под главной диагональю 31

сумма выше побочной 16

Добавлено через 11 минут
я перепробовал все варианты и сдаюсь: при любом знаке перед единицей или в неравенстве программа упорно считает неправильную сумму
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
29.06.2019, 11:51
Советы.
1. Не используйте случайные числа для поиска ошибки. Вам нужен повторяющийся детерминированный процесс.
2. Выводите в лог, что суммируете. Так-то гадать можно долго, что там именно не так суммируется.
3. Дебаггер - хорошая вещь.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.06.2019, 12:52
Лучший ответ Сообщение было отмечено catauggie как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from random import randint
 
N = int(input())
lst = [[randint(1, 9) for _ in range(N)] for _ in range(N)]
for i in lst:
    print(*i)
summ = 0
for i in range(1, N):
    summ += sum(lst[i][:i])
print('\nсумма под главной диагональю', summ)
sum1 = 0
for i in range(N):
    sum1 += sum(lst[i][:N-1-i])
print('\nсумма выше побочной', sum1)
sum2 = 0
for i in range(1, N):
    sum2 += sum(lst[i][-i:])
print('\nсумма ниже побочной', sum2)
Добавлено через 21 минуту
Python
1
2
3
4
5
6
7
8
9
from random import randint
 
N = int(input())
lst = [[randint(1, 9) for _ in range(N)] for _ in range(N)]
for i in lst:
    print(*i)
print(f'\nсумма под главной диагональю: {sum(sum(lst[i][:i]) for i in range(1, N))}')
print(f'\nсумма выше побочной: {sum(sum(lst[i][:N - 1 - i]) for i in range(N))}')
print(f'\nсумма ниже побочной: {sum(sum(lst[i][-i:]) for i in range(1, N))}')
2
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
30.06.2019, 15:43  [ТС]
А что такое дебаггер?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
30.06.2019, 16:36
catauggie, вот, на примере java (Intellij IDEA), но в принципе все одно и то же.
https://www.cyberforum.ru/java/thread2250765.html
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
30.06.2019, 16:46
catauggie, поставьте PyCharm или другую ide, там встроен.
0
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
01.07.2019, 14:28  [ТС]
dondublon , у меня стоит Pycharm. Только я вообще не понимаю, как им пользоваться. Не посоветуете какой-нибудь курс или нормальную статью для новичков, а то документацию на английском мне в лом в читать
0
01.07.2019, 14:30

Не по теме:

catauggie, в программировании без английского делать нечего, все доки, статьи и стоящие книги на нем, так что...

0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
01.07.2019, 14:31
catauggie, по ссылке, которую я тебе привел мануал с картинками в Intellij IDEA. Это тот же самый PyCharm
1
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,245
Записей в блоге: 4
24.06.2022, 23:32
Python
1
2
3
4
5
6
7
8
9
10
import numpy as np
n = 3 
 
ar = np.random.randint(0, 9, size=(n,n))
print('Исходная матрица:\n', ar)
print('Сумма элементов под главной диагональю:')
print(sum(np.sum([[j for j in np.diag(ar, k = -i)] for i in range(1, n)])) )
ar1 = np.rot90(ar)
print('Сумма элементов под побочной диагональю:')
print(sum(np.sum([[j for j in np.diag(ar1, k = i)] for i in range(1, n)])) )
Наверняка, строки 7 и 10 можно оптимизировать, только пока не могу сообразить как именно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2022, 23:32
Помогаю со студенческими работами здесь

Массивы. сумма элементов над (под) главной и над (под) побочной диагоналями
Дана матрица А(n,n). Найти сумму элементов над (под) главной и над (под) побочной диагоналями (включительно с элементами диагоналей).

Найти сумму элементов под главной и под побочной диагоналями матрицы
С главной диагональю я справилась,а вот с побочной туго...Помогите пожалуйста. Заранее спасибо) Console.WriteLine(&quot;введите...

Посчитать сумму элементов над главной и над побочной диагоналями
Как посчитать сумму элементов над главной и над побочной диагоналями? using System; using System.Collections.Generic; using...

В массиве С(Р, Р) определить произведения элементов, расположенных одновременно под побочной и над главной диагоналями
В массиве С(Р, Р) определить произведения элементов, расположенных одновременно под побочной и над главной диагоналями. Помогите...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru