Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/120: Рейтинг темы: голосов - 120, средняя оценка - 4.88
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310

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

28.06.2019, 16:16. Показов 24300. Ответов 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
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
28.06.2019, 16:23
Цитата Сообщение от catauggie Посмотреть сообщение
Подскажите, как исправить это.
включить дебаггер, голову , и построчно проверять программу - эта способность пригодится и в будущем. Неужели проще по каждому фейлу бежать на форум?
0
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
28.06.2019, 16:33  [ТС]
НЕ вижу тут каких-либо ошибок, и я по этому поводу
Цитата Сообщение от Welemir1 Посмотреть сообщение
Неужели проще по каждому фейлу бежать на форум
уже все сказал
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,239
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru