1.19M
Категория: ПрограммированиеПрограммирование

Массивы

1.

Массивы
Массив – это фиксированное количество
упорядоченных однотипных
элементов, обозначенных одним
именем. В Python по другому
называется «списком».
Размерность – это количество элементов
в массиве
Индекс – это порядковый номер элемента
в массиве
Доступ к отдельному элементу массива
осуществляется указанием имени массива
и его индекса, заключённого в [ ].

2.

Массив, каждый элемент которого
имеет один индекс, называется
одномерным массивом или вектором.
Массив, каждый элемент которого
имеет два индекса, называется
двумерным массивом или матрицей.
Примечание: нумерация индексов
элементов массива начинается с 0!

3.

Двумерный массив - матрица

4.

Размерность матрицы определяется
количеством её строк и столбцов.
Доступ к отдельному элементу матрицы
осуществляется указанием имени матрицы
и двух индексов, записанных через запятую
и заключённых в квадратные скобки [ ].
Причём, первый индекс – это номер строки,
а второй индекс – это номер столбца,
на пересечении которых находится данный
элемент.

5.

A3 =
x4
2
5
7
-1
8
-3
4
0
1
9
-2
6
A[0,2] = 7
A[1,0] = 8
A[1,3] = 0
A[2,2] = -2

6.

Матрицы бывают двух видов:
квадратная(число строк равно числу столбцов)
прямоугольная матрица( число строк не равно
числу столбцов).
Прямоугольная матрица
Квадратная матрица

7.

У каждой квадратной матрицы есть главная и
побочная диагонали.
Признак главной диагонали: i = j.
Признак побочной диагонали: i = N – j + 1, где N –
размерность матрицы.
Побочная диагональ
Главная диагональ
3 -1
4
2
-5 6
2
0
1

8.

Признак элементов ниже главной диагонали: i > j
Признак элементов выше главной диагонали: i < j
Признак элементов ниже побочной диагонали:
i > N – j + 1, где N – размерность матрицы
Признак элементов выше побочной диагонали:
i < N – j + 1, где N – размерность матрицы
Элементы ниже главной диагонали
3 -1
4
2
-5 6
2
0
1
Элементы выше главной диагонали
3 -1
4
2
-5 6
2
0
1

9.

Создание матрицы
1. Создание матрицы, задавая конкретные
значения :
Q= [[1, 3, 5], [7, 9, -3], [-7, 0, 5]]
2. Создание матрицы, без начальных значений:
A = [[0] * m for j in range(n)] for i in range(m)]
3. Создание матрицы, задавая рандомные
значения:
from random import randint
….
A = [[randint(мин.значение, макс.значение) for j in
range(n)] for i in range(m)]

10.

Заполнение матрицы
Заполнение матрицы:
for i in range(0, m):
for j in range(0, n):
print("Введите элемент матрицы: ")
A[i][j] = int(input())

11.

Вывод элементов матрицы на экран
1. Вывод конкретного элемента матрицы:
A = 1 -3 5 -7
3 -8 8 0
print(«Первый элемент матрицы = ", A[0][0])

12.

Вывод элементов матрицы на экран
2. Вывод всех элементов матрицы:
print("Матрица А: ")
for i in range(0, m):
for j in range(0, n):
print(A[i][j], end = "
print("\n")
")

13.

Задача 1:
Организовать заполнение
матрицы А ,
размерностью 3 x 4,
случайными числами.
Вывести на экран значение максимального
элемента, а также заменить
все максимальные элементы
матрицы на противоположенные значения.
Вывести матрицу до и после изменения.

14.

max= 98
A=
-2 98 9 11 -18
-11 20 19 61 98
-18 98 8 31 48
A=
-2 -98 9 11 -18
-11 20 19 61 -98
-18 -98 8 31 48

15.

from random import randint
flag = True
max = 0
m, n = 0, 0
while flag:
print("Введите количество строк: ")
m = int(input())
if ((m >= 1) and (m <=10)):
flag = False
flag = True

16.

while flag:
print("Введите количество столбцов: ")
n = int(input())
if ((n >= 1) and (n <=10)):
flag = False
A = [[randint(-10, 20) for j in range(n)] for i in
range(m)]
print("\nМатрица А до изменения: ")
for i in range(0, m):
for j in range(0, n):
print(A[i][j], end = "
")
print("\n")

17.

max = A[0][0]
for i in range(0, m):
for j in range(0, n):
if A[i][j] > max:
max = A[i][j]
print("\nМаксимальный элемент = ",max)
for i in range(0, m):
for j in range(0, n):
if A[i][j] == max:
A[i][j] = A[i][j] * (-1)

18.

print("\nМатрица А после изменения: ")
for i in range(0, m):
for j in range(0, n):
print(A[i][j], end = "
")
print("\n")

19.

Задача 2:
Организовать заполнение
матрицы B ,
размерностью 5 x 5,
случайными числами.
Заменить все элементы главной диагонали
матрицы на число 0.
Вывести матрицу до и после изменения.

20.

B=
B=
-2 98 9 4
-11 20 19 98
-18 98 88 18
37 98 8 -8
0 98 9 4
-11 0 19 98
-18 98 0 18
37 98 8 0

21.

from random import randint
flag = True
m, n = 0, 0
while flag:
print("Введите количество строк: ")
m = int(input())
if ((m >= 1) and (m <=10)):
n=m
flag = False

22.

B = [[randint(-10, 20) for j in range(n)] for i in
range(m)]
print("\nМатрица B до изменения: ")
for i in range(0, m):
for j in range(0, n):
print(B[i][j], end = "
")
print("\n")
for i in range(0, m):
for j in range(0, n):
if i == j:
B[i][j] = 0

23.

print("\nМатрица B после изменения: ")
for i in range(0, m):
for j in range(0, n):
print(B[i][j], end = "
")
print("\n")

24.

Задача 3:
Организовать заполнение
матрицы C ,
размерностью 4 x 4,
случайными числами.
Заменить элементы ниже главной диагонали
на число введенное пользователем
Выведите матрицу до и после изменения.

25.

q=
C=
C=
-1
-2 98 9 4
-11 20 19 98
-18 98 88 18
37 98 8 -8
-2
-1
-1
-1
98 9 4
20 19 98
-1 88 18
-1 -1 -8

26.

from random import randint
flag = True
m, n, q = 0, 0, 0
while flag:
print("Введите количество строк: ")
m = int(input())
if ((m >= 1) and (m <=10)):
n=m
flag = False

27.

print("Введите число для замены: ")
q = int(input())
C = [[randint(-10, 20) for j in range(n)] for i in
range(m)]
print("\nМатрица C до изменения: ")
for i in range(0, m):
for j in range(0, n):
print(C[i][j], end = "
")
print("\n")

28.

for i in range(0, m):
for j in range(0, n):
if i > j:
C[i][j] = q
print("\nМатрица C после изменения: ")
for i in range(0, m):
for j in range(0, n):
print(C[i][j], end = "
")
print("\n")

29.

for i in range(0, n):
for j in range(0, m):
if i > j:
C[i][j] = q
print("\nМатрица C после изменения: ")
for i in range(0, n):
for j in range(0, m):
print(C[i][j], end = "
")
print("\n")

30.

Задача 4:
Организовать заполнение
матрицы А ,
размерностью 6 x 6,
случайными числами.
Заменить элементы ниже главной диагонали
на число 0, выше главной диагонали на
число 1, а элементы главной диагонали на
число 2.
Выведите матрицу до и после изменения.

31.

A=
A=
-2 98 9 4
-11 20 19 98
-18 98 88 18
37 98 8 -8
2
0
0
0
1
2
0
0
1
1
2
0
1
1
1
2

32.

from random import randint
m, n = 0, 0
flag = True
while flag:
print("Введите количество строчек/столбцов: ")
m = int(input())
if ((m >= 1) and (m <= 10)):
flag = False
n=m

33.

A = [[randint(-20, 20) for j in range(n)] for i in
range(m)]
print("\nМатрица А до изменения: ")
for i in range(m):
for j in range(n):
print(A[i][j], end = " ")
print("\n")

34.

for i in range(m):
for j in range(n):
if i < j:
A[i][j] = 0;
if i > j:
A[i][j] = 1;
if i == j:
A[i][j] = 2
print("\n")

35.

print("\nМатрица А после изменения: ")
for i in range(m):
for j in range(n):
print(A[i][j], end = " ")
print("\n")

36.

Задача 5:
Организовать заполнение
матрицы А ,
размерностью 5 x 5,
случайными числами.
Заменить все элементы второй строки
матрицы А на число,
введенное с клавиатуры.
Выведите матрицу до и после изменения.

37.

q=
А=
А=
-1
-2 98 9 4
-11 20 19 98
-18 98 88 18
37 98 8 -8
-2
2 98
1 1
9 1
4
-1
0 -1
2 -1
1 -1
1
1
-18
0 98
0 88
2 18
2
0 0
8 -8
37
0 98

38.

from random import randint
m, n = 0, 0
flag = True
q=0
while flag:
print("Введите количество строчек/столбцов: ")
m = int(input())
if ((m >= 1) and (m <= 10)):
flag = False
n=m

39.

print("\n Введите число для замены: ")
q = int(input())
A = [[randint(-50, 50) for j in range(n)]for i in
range(m)]
print("\n Матрица А до изменения: ")
for i in range(0, m):
for j in range(0, n):
print(A[i][j], end = " ")
print("\n")

40.

for i in range(0, m):
for j in range(0, n):
if i == 1:
A[i][j] = q
print("\n")
print("\n Матрица А после изменения: ")
for i in range(0, m):
for j in range(0, n):
print(A[i][j], end = " ")
print("\n")

41.

Задача 6:
Организовать заполнение
матрицы B ,
размерностью 4 x 5,
случайными числами.
Заменить все элементы последнего столбца
матрицы В на максимальный элемент
первого столбца матрицы.
Выведите матрицу до и после изменения.

42.

max = 37
B=
B=
-2 98 9 4
-11 20 19 98
-18 98 88 18
37 98 8 -8
-2
2 98
1 1
9
-1
0 -1
2 -1
1
-18
0 98
0 88
2
0 0
8
37
0 98
37
1
37
1
37
1
37
2

43.

from random import randint
m, n = 0, 0
flag = True
max = 0
while flag:
print("Введите количество строчек: ")
m = int(input())
if ((m >= 1) and (m <= 10)):
flag = False
flag = True

44.

while flag:
print("Введите количество столбцов: ")
n = int(input())
if ((n >= 1) and (n <= 10)):
flag = False
B = [[randint(-50, 50) for j in range(n)]for i in
range(m)]
print("\n Матрица B до изменения: ")
for i in range(0, m):
for j in range(0, n):
print(B[i][j], end = " ")
print("\n")

45.

max = B[0][0]
for i in range(0, m):
for j in range(0, n):
if (B[i][j] > max) and (j == 0):
max = B[i][j]
print("\n")
print("\n Максимальный элемент = ", max)

46.

for i in range(0, m):
for j in range(0, n):
if j == n-1:
B[i][j] = max
print("\n")
print("\n Матрица B после изменения: ")
for i in range(0, m):
for j in range(0, n):
print(B[i][j], end = " ")
print("\n")

47.

Задача 7:
Организовать заполнение
матрицы C ,
размерностью 6 x 6,
случайными числами.
Увеличить все элементы выбранной строки
матрицы C в два раза.
Выведите матрицу до и после изменения.

48.

m=
C=
C=
2
-2 98 9 4
-11 20 19 98
-18 98 88 18
37 98 8 -8
-2
2 98
1 1
9 37
1
-22
0 40
2 38
1 196
1
1
-18
0 98
0 88
2 37
2
0 0
8 37
37
0 98

49.

from random import randint
m, n = 0, 0
flag = True
q=0
while flag:
print("Введите количество строчек/столбцов: ")
m = int(input())
if ((m >= 1) and (m <= 10)):
flag = False
n=m
flag = True

50.

while flag:
print("Введите номер строчки для увеличения (
матрица ",m,"x",n,"):")
q = int(input())
if ((q >= 1) and (q <= m)):
flag = False
C = [[randint(-50, 50) for j in range(n)]for i in
range(m)]
print("Матрица С до изменения: ")
for i in range(0, m):
for j in range(0, n):
print(C[i][j], end = " ")
print("\n")

51.

for i in range(0, m):
for j in range(0, n):
if i == q-1:
C[i][j] = C[i][j] * 2
print("\n")
print("Матрица С после изменения: ")
for i in range(0, m):
for j in range(0, n):
print(C[i][j], end = " ")
print("\n")

52.

Задача 8:
Организовать заполнение
матрицы D ,
размерностью 3 x 5,
случайными числами.
Поменять местами элементы первой и
последней строки матрицы D.
Выведите матрицу до и после изменения.

53.

D=
D=
-2 98 9 4
-11 20 19 98
-18 98 88 18
37 98 8 -8
37
2 98
1 1
8 -8
1
-22
40
0 20
2 38
1 196
19
-11
1
98
1
18
-18
0 98
0 88
2 37
-18
4
0 0
9 2
-2
0 98

54.

from random import randint
m, n = 0, 0
flag = True
zam = 0
while flag:
print("Введите количество строк матрицы: ")
m = int(input())
if ((m >= 1) and (m <= 10)):
flag = False
flag = True

55.

while flag:
print("Введите количество столбцов матрицы:
")
n = int(input())
if ((n >= 1) and (n <= 10)):
flag = False
D = [[randint(-50, 50) for j in range(n)]for i in
range(m)]
print("Матрица D до перестановки: ")
for i in range(0, m):
for j in range(0, n):
print(D[i][j], end = " ")
print("\n")

56.

for j in range(0, n):
zam = D[0][j]
D[0][j] = D[m-1][j]
D[m-1][j] = zam
print("Матрица D после перестановки: ")
for i in range(0, m):
for j in range(0, n):
print(D[i][j], end = " ")
print("\n")

57.

Задача 9:
Организовать заполнение
матрицы F ,
размерностью 4 x 5,
случайными числами.
Поменять местами элементы двух
указанных строчек матрицы F.
Выведите матрицу до и после изменения.

58.

m1 = 2
F=
F=
m2 = 3
-2 98 9 4
-11 20 19 98
-18 98 88 18
37 98 8 -8
-2
2 98
1 1
9 1
4
-22
40
0 98
2 38
1 196
88
-18
1
18
-11
37
1
-18
0 20
0 19
2 18
98
88
-18
98
2
0 0
8 -8
37
0 98

59.

from random import randint
m, n = 0, 0
flag = True
zam = 0
l1, l2 = 0, 0
while flag:
print("Введите количество строк матрицы: ")
m = int(input())
if ((m >= 1) and (m <= 10)): #4
flag = False
flag = True

60.

while flag:
print("Введите количество столбцов матрицы:
")
n = int(input())
if ((n >= 1) and (n <= 10)):
flag = False
F = [[randint(-50, 50) for j in range(n)]for i in
range(m)]
flag = True

61.

while flag:
print("Введите номер первой строки для
перестановки( матрица ",m,"x",n,"): ")
l1 = int(input())
if ((l1 >= 1) and (l1 <= m)):
flag = False
flag = True
while flag:
print("Введите номер второй строки для
перестановки( матрица ",m,"x",n,"): ")
l2 = int(input())
if ((l2 >= 1) and (l2 <= m)):
flag = False

62.

print("Матрица F до перестановки: ")
for i in range(0, m):
for j in range(0, n):
print(F[i][j], end = " ")
print("\n")
for j in range(0, n):
zam = F[l1-1][j]
F[l1-1][j] = F[l2-1][j]
F[l2-1][j] = zam
print("Матрица F после перестановки: ")
for i in range(0, m):
for j in range(0, n):
print(F[i][j], end = " ")
print("\n")

63.

Задача 10:
Дана матрица X, размерностью 5x4.
Заполнить матрицу случайными числами.
Сформировать вектор Y, каждый элемент которого - это
количество четных элементов строки матрицы.
Вывести матрицу и вектор на экран

64.

65.

from random import randint
m, n, kol = 5, 4, 0
Y = [0] * 5
X = [[randint(-50, 50) for j in range(n)] for i in
range(m)]
print("Матрица X ")
for i in range(0, m):
for j in range(0, n):
print(X[i][j], end = "
print("\n")
")

66.

for i in range(0, m):
kol = 0
for j in range(0, n):
if (X[i][j] % 2 == 0):
kol = kol + 1
Y[i] = kol
print("Вектор Y: ")
for i in range(0, 5):
print(Y[i], end = "
")
English     Русский Правила