Предмет: Информатика, автор: obzherin2003

Нужно написать программу на Python (желательно чтобы входной текст работал и в компиляторе):


Заполнить квадратный массив А (NхN) элементов (N вводится с клавиатуры) числами из одномерного массива В (длиной не более 64 элементов) "змейкой" – сперва первую колонку сверху вниз, затем вторую снизу вверх и т.д. Массив В предварительно заполняется из входного текстового файла. Оба массива распечатать.

Ответы

Автор ответа: mymailit2g
0

Ответ:

try:

 n = int(input("Please, input an N: "))

except:

 print("N - should be an integer")

if ( n > 64):

   print("N should be lower than 64")

   print("The program is closed")

   exit(0)

print("Filling array B from file...")

b = []

my_file = open("c:\B_array.txt", "r")

content = my_file.read()

b = content.split(",")

my_file.close()

print("Filling associate array A NxN from array B...")

a_row = []

a = []

for j in range(n):

 a_row = []

 for i in range(n):

   a_row.append(b[j*n+i])

 a.append(a_row)

print("Array A: "+ str(a))

print("Array B: " + str(b))

Объяснение:

Все описание в самой программе


obzherin2003: В самой проге, если не вписывать в качестве N число не равное 1 - вылезет какая-то проблема в 41 строчке
line 41, in
a_row.append(b[j*n+i])
IndexError: list index out of range
obzherin2003: Исправляюсь, если вписывать число равное 1*. Ошибка я так понимаю, вполне может быть связана с тем, что при вычислении в 41 строке, вылезает больше 1 строки, т.к. ошибка связана со значением "вне допуска диапазона".
mymailit2g: Ты файл сданными создавал?
mymailit2g: Там данные идут в одну линию через запятую
mymailit2g: Путь к фалу правильный?
obzherin2003: Разобрался. Там ошибка находится в скобках, в строчке "b = content.split(",")". Но, тем не менее - прога всё равно не та, т.к. там одномерный массив. Не понятно как из этого может получиться что-то двумерное, тем более с выстроенными в ряд сверху-вниз и вниз-сверху значениями.
Похожие вопросы
Предмет: Русский язык, автор: алекспопов