Создайте массив с двумерной структурой. Заполните его случайными числами и отобразите на экране. Пользователь выбирает

  • 48
Создайте массив с двумерной структурой. Заполните его случайными числами и отобразите на экране. Пользователь выбирает количество сдвигов и направление (влево, вправо, вверх, вниз). Выполните циклический сдвиг массива и отобразите полученный результат на экране. Например, если у нас есть следующий массив 1 2 0 4 5 3 4 5 3 9 0 1 и пользователь выбрал сдвиг на 2 позиции вправо, то мы получим 5 3 1 2 0 4 0 1 4 5 3
Yazyk_1803
65
Хорошо, чтобы создать массив с двумерной структурой, нужно использовать два вложенных массива. В массиве каждый элемент будет представления структуры. В данном случае структура будет содержать только одно поле для хранения числа.

Вот образец кода на языке Python, который выполняет указанную задачу:

python
import random

# Создаем массив размером 3x4
rows = 3
cols = 4
array = [[{"value": random.randint(0, 9)} for _ in range(cols)] for _ in range(rows)]

# Выводим исходный массив на экран
print("Исходный массив:")
for row in array:
for item in row:
print(item["value"], end=" ")
print()

# Получаем от пользователя количество сдвигов и направление
shifts = int(input("Введите количество сдвигов: "))
direction = input("Введите направление сдвига (left, right, up, down): ")

# Выполняем циклический сдвиг массива
for _ in range(shifts):
if direction == "left":
for row in array:
row.append(row.pop(0))
elif direction == "right":
for row in array:
row.insert(0, row.pop())
elif direction == "up":
array.append(array.pop(0))
elif direction == "down":
array.insert(0, array.pop())

# Выводим полученный результат на экран
print("Полученный массив:")
for row in array:
for item in row:
print(item["value"], end=" ")
print()


Давайте разберем, как это работает.

Первым шагом мы создаем двумерный массив `array` размером 3x4 и заполняем его случайными числами с помощью функции `random.randint(0, 9)`.

Затем мы выводим исходный массив на экран, пробегаясь по каждому элементу массива.

После этого мы запрашиваем у пользователя количество сдвигов (`shifts`) и направление (`direction`) с помощью функций `input()`.

Затем мы выполняем циклический сдвиг массива в выбранном направлении с использованием цикла `for` и условных операторов `if`.

Наконец, мы выводим полученный результат на экран, аналогично выводу исходного массива.

Надеюсь, это решение понятно и предоставляет всю необходимую информацию и пошаговое объяснение. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать!