1 Востаннє редагувалося GvBogdan (12.08.2020 01:06:13)

Тема: Обхід елементів матриці

Умова:

Задана целочисленная матрица, состоящая из N строк и M столбцов. Необходимо обойти элементы этой матрицы cправо налево сверху вниз и вывести элементы именно в таком порядке в виде таблицы.
Программа принимает на вход два натуральных числа N и M – количество строк и столбцов матрицы. В каждой из последующих N строк записаны M целых чисел – элементы матрицы.

Sample Input 1:

3 4
5 9 2 6
6 2 4 3
1 2 8 7
Sample Output 1:

6 2 9 5
3 4 2 6
7 8 2 1

Sample Input 2:

5 3
1 4 5
2 5 3
7 3 2
6 7 9
1 6 9
Sample Output 2:

5 4 1
3 5 2
2 3 7
9 7 6
9 6 1

Написав код, першу провірку проходить а на другій вилітаю за межі range.

Можливо хтось підскаже в чому справа. Завчасно Дякую.
Мій код:

a = []
n, m = list(map(int, input().split()))
for i in range(n):
    a.append(list(map(int, input().split())))
for i in range(0, len(a), +1):
    for j in range(len(a),-1, -1):
        print(a[i][j], end=" ")
    print()

2

Re: Обхід елементів матриці

GvBogdan написав:

Умова:

Задана целочисленная матрица, состоящая из N строк и M столбцов. Необходимо обойти элементы этой матрицы cправо налево сверху вниз и вывести элементы именно в таком порядке в виде таблицы.
Программа принимает на вход два натуральных числа N и M – количество строк и столбцов матрицы. В каждой из последующих N строк записаны M целых чисел – элементы матрицы.

Sample Input 1:

3 4
5 9 2 6
6 2 4 3
1 2 8 7
Sample Output 1:

6 2 9 5
3 4 2 6
7 8 2 1

Sample Input 2:

5 3
1 4 5
2 5 3
7 3 2
6 7 9
1 6 9
Sample Output 2:

5 4 1
3 5 2
2 3 7
9 7 6
9 6 1

Написав код, першу провірку проходить а на другій вилітаю за межі range.

Можливо хтось підскаже в чому справа. Завчасно Дякую.
Мій код:

a = []
n, m = list(map(int, input().split()))
for i in range(n):
    a.append(list(map(int, input().split())))
for i in range(0, len(a), +1):
    for j in range(len(a),-1, -1):
        print(a[i][j], end=" ")
    print()

3

Re: Обхід елементів матриці

Перше перекладіть умову на українську або англійську або сховайте російський .
Друге яке число повертає len([1, 4, 5]), і як індексується список?
Третє нашо вам той len взагалі у вас є n i m?

Подякували: koala, GvBogdan, leofun013

4

Re: Обхід елементів матриці

це не код це потвора

5

Re: Обхід елементів матриці

Типу от

for i in a:
    for j in i:
        print(j, end=' ')
Подякували: GvBogdan1

6

Re: Обхід елементів матриці

ur_naz написав:

це не код це потвора

Дуже дякую, за ваш цінний коментар!
Я, лиш вчусь і дійшов до матриць, які мені важко даються.
Тому вирішив звернутись сюди.

7

Re: Обхід елементів матриці

GvBogdan написав:
ur_naz написав:

це не код це потвора

Дуже дякую, за ваш цінний коментар!
Я, лиш вчусь і дійшов до матриць, які мені важко даються.
Тому вирішив звернутись сюди.

Не звертайте уваги пан ur_naz часом дає хороші поради, але в основному бурчить на всіх.

Подякували: GvBogdan1

8

Re: Обхід елементів матриці

pluszz написав:

Типу от

for i in a:
    for j in i:
        print(j, end=' ')

Але, я тут не зрозумів, як я за допомогою j обійду матрицю з права на ліво і згори до низу?

9

Re: Обхід елементів матриці

pluszz написав:

Перше перекладіть умову на українську або англійську або сховайте російський .
Друге яке число повертає len([1, 4, 5]), і як індексується список?
Третє нашо вам той len взагалі у вас є n i m?

Можете підказати корисні посилання, де добре пояснюється побудова списку, обхід елементів і т.д.
Дякую.

10

Re: Обхід елементів матриці

https://uk.wikibooks.org/wiki/%D0%9F%D0 … 3_Python_3
І поправте на кінець оформлення топіка.

Подякували: leofun011

11

Re: Обхід елементів матриці

pluszz написав:

Типу от

for i in a:
    for j in i:
        print(j, end=' ')

Привіт.
Допоможи мені будь ласка із сортуванням цієї матриці справа-наліво, зверху-вниз і вивести елементи саме в такому порядку у вигляді таблиці.
Застряг ні як не получається.
Та чи вірний код.
Дякую
n- кількість строк
m - кількість стовпчиків

Вхідні дані 1:

3 4
5 9 2 6
6 2 4 3
1 2 8 7
Вихідні дані 1:

6 2 9 5
3 4 2 6
7 8 2 1

Вхідні дані 2:

5 3
1 4 5
2 5 3
7 3 2
6 7 9
1 6 9
Вихідні дані 2:

5 4 1
3 5 2
2 3 7
9 7 6
9 6 1

n,m = map(int,input().split())
a = [list(map(int,input().split())) for i in range(n)]
for i in range(n):    ось тут потрібно прописувати сортування матриці?
    for j in range(m):  ось тут потрібно прописувати сортування матриці?
        print(a[i][j], end=' ')
    print()

12

Re: Обхід елементів матриці

GvBogdan написав:
n,m = map(int,input().split())
a = [list(map(int,input().split())) for i in range(n)]
for i in range(n):    ось тут потрібно прописувати сортування матриці?
    for j in range(m):  ось тут потрібно прописувати сортування матриці?
        print(a[i][j], end=' ')
    print()

Ваш код правильно виводить двовимірний масив.
Я так розумію вам непотрібно записувати результат а просто вивести результат в консоль тому вам просто треба поміняти  в цім рядку один індекс.

 print(a[i][j], end=' ')

Пошукайте про такі індекси списків [-1][-1] в пітоні і не забувайте що for j in range(m) буде видавати результат від 0 до -m, тому треба або змінити те що  ви будете передавати  range щоб у вас получився перебір  від 1 до m+1, aбо збільшити -(j) на одиницю. Надіюсь моя писанина вам допоможе. Удачі.

Подякували: GvBogdan1

13

Re: Обхід елементів матриці

Від'ємні індекси вам ні до чого.
Вам треба "відсортувати матрицю"? Це не зовсім правильна дія; але наскільки я зрозімів, найпростіше для вас буде:
- зібрати всі елементи матриці в один список;
- відсортувати цей список;
- розставити його елементи назад по матриці.
Можу також припустити, що викладач (чи хто там вигадував завдання) мав на увазі не користуватися стандартними функціями сортування Python, а сортувати певним алгоритмом прямо на місці, але в умові нічого такого немає, а отже, "правильно" саме так, як я написав.

Подякували: leofun01, GvBogdan2

14

Re: Обхід елементів матриці

    n,m = map(int,input().split())
    a = [list(map(int,input().split())) for i in range(n)]
    for i in range(n):    ось тут потрібно прописувати сортування матриці?
        for j in range(m):  ось тут потрібно прописувати сортування матриці?
            print(a[i][-(j+1)], end=' ')
        print()
Подякували: GvBogdan1

15

Re: Обхід елементів матриці

pluszz написав:
    n,m = map(int,input().split())
    a = [list(map(int,input().split())) for i in range(n)]
    for i in range(n):    ось тут потрібно прописувати сортування матриці?
        for j in range(m):  ось тут потрібно прописувати сортування матриці?
            print(a[i][-(j+1)], end=' ')
        print()

Дуже дякую!
Я зрозумів.