From 695e35bddfbfbf3671645bb104d56542bfe26ca8 Mon Sep 17 00:00:00 2001 From: Zlata Khodos Date: Thu, 1 Dec 2016 20:16:38 +0200 Subject: [PATCH] homework_7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Двовимірні масиви Варіант: загальний --- students/km62/Xodos_Zlata/homework_7.py | 177 ++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 students/km62/Xodos_Zlata/homework_7.py diff --git a/students/km62/Xodos_Zlata/homework_7.py b/students/km62/Xodos_Zlata/homework_7.py new file mode 100644 index 0000000..d59264b --- /dev/null +++ b/students/km62/Xodos_Zlata/homework_7.py @@ -0,0 +1,177 @@ +#task1------------------------------------------------------------ +""" +Найдите индексы первого вхождения максимального элемента. Выведите два числа: номер строки и номер столбца, +в которых стоит наибольший элемент в двумерном массиве. Если таких элементов несколько, то выводится тот, +у которого меньше номер строки, а если номера строк равны то тот, у которого меньше номер столбца. + +Программа получает на вход размеры массива n и m, затем n строк по m чисел в каждой. +""" +size = input().split() + +m=int(size[0]) + +n=int(size[1]) + +matrix = [] + +for i in range(m): + + row = input().split() + + for i in range(len(row)): + + row[i] = int(row[i]) + + matrix.append(row) + +for i in range(m): + + for j in range(n): + + if (i==0) and (j==0): + + x=i + + y=j + + max = matrix[0][0] + + elif matrix[i][j] > max: + + x=i + + y=j + + max=matrix[i][j] + +print (x, y, end=' ') +#----------------------------------------------------------------- + + +#task2------------------------------------------------------------ +""" +Дано нечетное число n. Создайте двумерный массив из n?n элементов, заполнив его символами "." +(каждый элемент массива является строкой из одного символа). Затем заполните символами "*" среднюю строку массива, +средний столбец массива, главную диагональ и побочную диагональ. В результате единицы в массиве должны образовывать +изображение звездочки. Выведите полученный массив на экран, разделяя элементы массива пробелами. +""" +size=int(input()) +matrix = [] +matrix = ['.'] * size +for i in range(size): + matrix[i] = ['.'] * size +for i in range(size): + for j in range(size): + if i==j: + matrix[i][j] = '*' + elif (size-j) == (i+1): + matrix[i][j] = '*' + if size//2 == j: + matrix[i][j] = '*' + if size//2 == i: + matrix[i][j] = '*' +for i in range(size): + for j in range(size): + print(matrix[i][j], end=' ') + print() +#----------------------------------------------------------------- + + +#task3------------------------------------------------------------ +""" +Даны два числа n и m. Создайте двумерный массив размером n?m и заполните его символами "." и "*" +в шахматном порядке. В левом верхнем углу должна стоять точка. + +""" +size = input().split() +m=int(size[0]) +n=int(size[1]) +matrix = ['.'] * m +for i in range(m): + matrix[i] = ['.'] * n +for i in range(m): + for j in range(n): + if (i+j)%2 == 1: + matrix[i][j] = '*' +for i in range(m): + for j in range(n): + print(matrix[i][j], end=' ') + print() +#----------------------------------------------------------------- + + +#task4------------------------------------------------------------ +""" +Дано число n. Создайте массив размером n?n и заполните его по следующему правилу. На главной диагонали должны быть записаны числа 0. +На двух диагоналях, прилегающих к главной, числа 1. На следующих двух диагоналях числа 2, и т.д. +""" +size = int(input()) +matrix = [0] * size +for i in range(size): + matrix[i] = [0] * size +for k in range(1, size): + for i in range(size-k): + for j in range(size-k): + if i == j: + matrix[i][j+k] = k + matrix[i+k][j] = k +for i in range(size): + for j in range(size): + print(matrix[i][j], end=' ') + print() +#----------------------------------------------------------------- + +#task5------------------------------------------------------------------------------------------------------------------------ +""" +Дано число n. Создайте массив размером n?n и заполните его по следующему правилу: + +Числа на диагонали, идущей из правого верхнего в левый нижний угол равны 1. + +Числа, стоящие выше этой диагонали, равны 0. + +Числа, стоящие ниже этой диагонали, равны 2. + +Полученный массив выведите на экран. Числа в строке разделяйте одним пробелом. +""" +size = int(input()) +matrix = [0] * size +for i in range(size): + matrix[i] = [0] * (size-i-1) + [1] + [2] * i +for i in range(size): + for j in range(size): + print(matrix[i][j], end=' ') + print() +#----------------------------------------------------------------- + +#task6------------------------------------------------------------ +""" +Дан двумерный массив и два числа: i и j. Поменяйте в массиве столбцы с номерами i и j и выведите результат. + +Программа получает на вход размеры массива n и m, затем элементы массива, затем числа i и j. + +Решение оформите в виде функции swap_columns(a, i, j). +""" +def swap_columns(matrix, i, j): + for z in range (a): + temp=matrix[z][i] + matrix[z][i]=matrix[z][j] + matrix[z][j]=temp + return +size = input().split() +a=int(size[0]) +b=int(size[1]) +matrix = [] +for k in range(a): + row = input().split() + for k in range(len(row)): + row[k] = int(row[k]) + matrix.append(row) +size = input().split() +i=int(size[0]) +j=int(size[1]) +swap_columns(matrix, i, j) +for i in range(a): + for j in range(b): + print(matrix[i][j], end=' ') + print() +#----------------------------------------------------------------- \ No newline at end of file