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

Сформируйте двумерный массив. Заполните его случайными числами и выведите на экран. Пользователь задает количество сдвигов и направление (влево, вправо, вверх, вниз). Осуществите циклический сдвиг массива и выведите полученный результат на экран. Например, если у нас есть массив 1 2 0 4 5 3 4 5 3 9 0 1 и пользователь выбрал сдвиг на 2 позиции вправо, то результат будет следующим: 5 3 1 2 0 4 0 1 4 5 3
Ледяная_Роза

Ледяная_Роза

Шаг 1: Создание и заполнение двумерного массива

Для начала определимся с размерностью массива. Чтобы соблюсти условия задачи, размерность должна быть 3х4. Создадим массив и заполним его случайными числами:

python
import random

# Определяем размерности массива
m = 3
n = 4

# Создаем двумерный массив
arr = [[0] * n for _ in range(m)]

# Заполняем массив случайными числами
for i in range(m):
for j in range(n):
arr[i][j] = random.randint(0, 9)


После выполнения данного кода мы получим двумерный массив `arr` размерностью 3х4 со случайными числами.

Шаг 2: Вывод массива на экран

Теперь, чтобы вывести массив на экран, воспользуемся циклами:

python
# Выводим массив на экран
for i in range(m):
for j in range(n):
print(arr[i][j], end=" ")
print()


Данный код выводит элементы массива в виде таблицы.

Шаг 3: Получение данных от пользователя

Для того чтобы получить от пользователя количество сдвигов и направление, воспользуемся функцией `input()`. После получения данных, мы сразу же их конвертируем в числа с помощью функции `int()`:

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


Теперь мы имеем переменные `shifts` и `direction` со значениями, указанными пользователем.

Шаг 4: Осуществление циклического сдвига и вывод результата

Для реализации циклического сдвига нам понадобится вспомогательный массив, в который мы будем записывать элементы исходного массива в новом порядке. В зависимости от выбранного направления сдвига, мы будем перемещать элементы в нужные позиции:

python
# Создаем вспомогательный массив
new_arr = [[0] * n for _ in range(m)]

# Осуществляем циклический сдвиг вправо
if direction == "вправо":
for i in range(m):
for j in range(n):
new_j = (j + shifts) % n
new_arr[i][new_j] = arr[i][j]

# Осуществляем циклический сдвиг влево
elif direction == "влево":
for i in range(m):
for j in range(n):
new_j = (j - shifts) % n
new_arr[i][new_j] = arr[i][j]

# Осуществляем циклический сдвиг вверх
elif direction == "вверх":
for i in range(m):
for j in range(n):
new_i = (i - shifts) % m
new_arr[new_i][j] = arr[i][j]

# Осуществляем циклический сдвиг вниз
elif direction == "вниз":
for i in range(m):
for j in range(n):
new_i = (i + shifts) % m
new_arr[new_i][j] = arr[i][j]


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

python
# Выводим новый массив на экран
print("Результат:")
for i in range(m):
for j in range(n):
print(new_arr[i][j], end=" ")
print()


Полный код решения задачи:

python
import random

# Определяем размерности массива
m = 3
n = 4

# Создаем двумерный массив
arr = [[0] * n for _ in range(m)]

# Заполняем массив случайными числами
for i in range(m):
for j in range(n):
arr[i][j] = random.randint(0, 9)

# Выводим массив на экран
print("Исходный массив:")
for i in range(m):
for j in range(n):
print(arr[i][j], end=" ")
print()

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

# Создаем вспомогательный массив
new_arr = [[0] * n for _ in range(m)]

# Осуществляем циклический сдвиг вправо
if direction == "вправо":
for i in range(m):
for j in range(n):
new_j = (j + shifts) % n
new_arr[i][new_j] = arr[i][j]

# Осуществляем циклический сдвиг влево
elif direction == "влево":
for i in range(m):
for j in range(n):
new_j = (j - shifts) % n
new_arr[i][new_j] = arr[i][j]

# Осуществляем циклический сдвиг вверх
elif direction == "вверх":
for i in range(m):
for j in range(n):
new_i = (i - shifts) % m
new_arr[new_i][j] = arr[i][j]

# Осуществляем циклический сдвиг вниз
elif direction == "вниз":
for i in range(m):
for j in range(n):
new_i = (i + shifts) % m
new_arr[new_i][j] = arr[i][j]

# Выводим новый массив на экран
print("Результат:")
for i in range(m):
for j in range(n):
print(new_arr[i][j], end=" ")
print()


Надеюсь, данное решение поможет вам понять и выполнить задачу. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задавать их. Удачи вам!
Знаешь ответ?
Задать вопрос
Привет!
hello