Step 12 (S-14683)

From Stepik Wiki
Revision as of 06:18, 22 July 2017 by Valeriy Shagur (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3368/step/12

S-14683-1.png

Иногда в программе возникает необходимость хранить таблицу или матрицу. К примеру, вспомним наших студентов и мы хотим хранить некий электронный журнал. То есть для каждого студента хранить набор оценок по каждому из изучаемых предметов. Как можно представить в программе такие данные? Их удобно представить в виде таблицы, где строчки соответствуют студентам, а столбцы соответствуют предметам. Давайте пронумеруем наших студентов начинаю с 0 - 0, 1, 2, 3 и так далее. Аналогичным образом пронумеруем предметы. Тогда на пересечении 2 строчки и 1 столбца мы будем хранить число, соответствующее числу баллов второго студента по первому предмету. И так для всех пар строчка-столбец.

А как хранить такие данные? Такие данные можно хранить с помощью двумерных списков. Простейшим примером двумерного списка является такой:

S-14683-2.png

Список содержит внутри себя три элемента, каждый из которых, в свою очередь, тоже является списком, состоящим из трех элементов - целых чисел. Такой список можно представить в виде матрицы 3 х 3.

1 2 3
4 5 6
7 8 9 

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

S-14683-3.png

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

S-14683-4.png

Первый индекс указывает на индекс элемента списка а, второй - на индекс элемента списка, хранящегося в a[1].

Применительно к нашему примеру со студентами, первый индекс - номер строки в таблице (номер студента), второй - номер столбца (номер предмета).

S-14683-5.png