Ответы и решения урока 4.6(Матрицы. Часть 3) на курс «Поколение Python: курс для продвинутых»
На вход программе подаются два натуральных числа n и m. Напишите программу для создания матрицы размером n×m, заполнив её символами
.
и*
в шахматном порядке. В левом верхнем углу должна стоять точка. Выведите полученную матрицу на экран, разделяя элементы пробелами.
x, y = [int(i) for i in input().split()]
matrix = [['.'] * y for _ in range(x)]
for i in range(x):
if i == 0 or i % 2 == 0:
for j in range(1, y, 2):
matrix[i][j] = '*'
else:
for j in range(0, y, 2):
matrix[i][j] = '*'
for row in matrix:
print(*row)
На вход программе подается натуральное число n. Напишите программу, которая создает матрицу размером n×n и заполняет её по следующему правилу:
— числа на побочной диагонали равны 11;
— числа, стоящие выше этой диагонали, равны 00;
— числа, стоящие ниже этой диагонали, равны 22.Полученную матрицу выведите на экран. Числа в строке разделяйте одним пробелом.
n = int(input())
matrix = [[0]*n for _ in range(n)]
for i in range(n):
matrix[i][n-1-i] = 1
for j in range(n):
if i > n- 1- j:
matrix[i][j] = 2
print(matrix[i][j], end = " ")
print()
На вход программе подаются два натуральных числа n и m. Напишите программу, которая создает матрицу размером n×m и заполняет её числами от 1 до n⋅m в соответствии с образцом.
n, m = map(int, input().split())
matrix = []
counter = 1
for i in range(n):
matrix.append([])
for j in range(m):
matrix[i].append(counter)
counter += 1
print(f'{matrix[i][j]}'.ljust(3), end='')
print()
На вход программе подаются два натуральных числа n и m. Напишите программу, которая создает матрицу размером n×m заполнив её в соответствии с образцом.
s=input().split()
n=int(s[0])
m=int(s[1])
matrix=[[0 for i in range(m)] for _ in range(n)]
count =1
for i in range(m):
for j in range(n):
matrix[j][i] += count
count+=1
for i in range(n):
print(*matrix[i])
На вход программе подается натуральное число n. Напишите программу, которая создает матрицу размером n×n заполнив её в соответствии с образцом.
n = int(input())
matrix = []
for i in range(n):
ii = n - i - 1
row = [1 if i == j or ii == j else 0 for j in range(n)]
matrix.append(row)
for row in matrix:
print(*row)
На вход программе подается натуральное число n. Напишите программу, которая создает матрицу размером n×n заполнив её в соответствии с образцом.
n = int(input())
for i in range(n):
result =[]
for j in range(n):
if (i >= j and i >= n - 1 - j) or (i <= j and i <= n - 1 - j):
result.append(1)
else:
result.append(0)
print(*result)
На вход программе подаются два натуральных числа n и m. Напишите программу, которая создает матрицу размером n×m заполнив её в соответствии с образцом.
n, m = [int(num) for num in input().split()]
matrix = [num for num in range(1, m + 1)]
for i in range(n):
for j in range(m):
print(matrix[j], end=' ')
pop = matrix.pop(0)
matrix.append(pop)
print()
На вход программе подаются два натуральных числа n и m. Напишите программу, которая создает матрицу размером n×m заполнив её «змейкой» в соответствии с образцом.
s=input().split()
n=int(s[0])
m=int(s[1])
matrix=[[0 for i in range(m)] for _ in range(n)]
count =1
for i in range(n):
for j in range(m):
matrix[i][j] += count
count+=1
for i in range(n):
if i%2==0:
print(*matrix[i])
else:
matrix[i].reverse()
print(*matrix[i])
На вход программе подаются два натуральных числа n и m. Напишите программу, которая создает матрицу размером n×m заполнив её «диагоналями» в соответствии с образцом.
n, m = [int(i) for i in input().split()]
mtx = [[0] * m for _ in range(n)]
sequence, k = 1, 0
while sequence != n * m + 1:
for i in range(n):
for j in range(m):
if i + j == k:
mtx[i][j] = sequence
sequence += 1
k += 1
for i in range(n):
for j in range(m):
print(str(mtx[i][j]).ljust(3), end='')
print()
На вход программе подаются два натуральных числа n и m. Напишите программу, которая создает матрицу размером n×m заполнив её «спиралью» в соответствии с образцом.
n, m = [int(i) for i in input().split()]
mat = [[0] * int(m) for i in range(n)]
c = 1
a, b = 0, 0
rows = n - 1
cols = m - 1
while a <= cols and b <= rows:
for i in range(a, cols + 1):
mat[a][i] = c
c += 1
b += 1
for i in range(b, rows + 1):
mat[i][cols] = c
c += 1
cols -= 1
if b <= rows:
for i in range(cols, a-1, -1):
mat[rows][i] = c
c += 1
rows -= 1
if a <= cols:
for i in range(rows, b-1, -1):
mat[i][a] = c
c += 1
a += 1
for s in mat:
print(*s)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
Было бы здорово читать обяснение к прописанному коду, спасибо за ваш труд.
Времени на переписывание материала пока не хватает.
Можно объяснить последний ответ?
Сейчас занимаюсь переписыванием материала курс для начинающих, с пояснением в коде, дальше займусь этим курсом