Param17. Описать процедуру ArrayToMatrCol(A, K, M, N, B), формирующую по вещественному массиву A размера K матрицу B размера \(M \times N\) (матрица заполняется элементами массива A по столбцам). «Лишние» элементы массива игнорируются; если элементов массива недостаточно, то оставшиеся элементы матрицы полагаются равными 0. Двумерный массив B является выходным параметром. С помощью этой процедуры на основе данного массива A размера K и целых чисел M и N сформировать матрицу B размера \(M \times N\).

Решение на Python 3:

import random
import numpy as np

def ArrayToMatrCol(A,K,M,N,B):
x = 0
for j in range(0,N):
#print("Before. B[",i,"]:",B[i])
for i in range(0,M):
print(x,end="; ")
if x < K:
B[i][j] = A[x]
else:
break
x += 1
if x == K:
break

K = random.randrange(1,21)
M = random.randrange(1,7)
N = random.randrange(1,7)
print("K = ",K)
print("M = ",M,"; N = ",N)

A = [random.randrange(0,20) for i in range(K)]
B = np.zeros((M, N))

print("Array A:")
print(A)

ArrayToMatrCol(A,K,M,N,B)

print()
print("Matrix B:")
print(B)