Created
February 21, 2016 16:58
-
-
Save OlesyaK2/d3835c9a025380b7764c to your computer and use it in GitHub Desktop.
Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк, заканчивающихся строкой, содержащей только строку "end" (без кавычек) Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы на позициях (i-1, j), (i+1, j), (i, j-1), (i, j+1)…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#arr[col_len-1][row_len]+arr[col_len+1][row_len]+arr[col_len][row_len-1]+arr[col_len][row_len+1] | |
col_len=0 | |
row_len=1 | |
md="" | |
arr=[] | |
a0,b0,an,bn=0,0,0,0 | |
# формируем матрицу | |
while row_len>0: # бесконечный цикл | |
md=input().split() # разбиваем строку на элементы для добавления в список | |
if "end" in md: | |
row_len-=1 | |
break # если в строке попалось END, закрываем список | |
else: | |
if row_len==1: | |
col_len=len(md) | |
row_len+=1 # счетчик | |
arr.append(md) # добавляем элементы строки в двухмерный список | |
# формируем нулевую матрицу | |
arr_sum = [[0 for j in range(col_len)] for i in range(row_len)] | |
# определяем в матрице элементы из суммы смежных | |
for i in range(len(arr)): | |
for j in range(len(arr[i])): | |
if i-1<0: a0=row_len-1 | |
else: a0=i-1 | |
if j-1<0: b0=col_len-1 | |
else: b0=j-1 | |
if i+1>row_len-1: an=0 | |
else: an=i+1 | |
if j+1>col_len-1: bn=0 | |
else: bn=j+1 | |
arr_sum[i][j]= int(arr[a0][j])+int(arr[an][j])+int(arr[i][b0])+int(arr[i][bn]) | |
# выводим новую матрицу на экран | |
for row in arr_sum: | |
for elem in row: | |
print(elem, end=' ') | |
print() |
Foollox
commented
Jan 13, 2021
•
a = []
b = input()
while b != "end":
a.append(b.split())
b = input()
for i in range(len(a)):
for j in range(len(a[i])):
print(int(a[i-1][j]) + int(a[i-len(a)+1][j]) + int(a[i][j-1]) + int(a[i][j-len(a[i])+1]), end =" ")
print()
line, matrix, lI = input(), [], 0
while line != 'end':
matrix +=[[int(i) for i in line.split()]]
line = input()
lI += 1
lJ = len(matrix[0])
[([print(matrix[i - 1][j] + matrix[i][j - 1] + matrix[i][(j + 1) % lJ] + matrix[(i + 1) % lI][j], end=' ') for j in range(lJ)], print()) for i in range(lI)]
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment