Массивы
Мы изучили базовые типы данных такие как Boolean, String, Integer и изучили последовательность Range. Давайте поговорим про базовую структуру данных - массив.
Массив (Array) - множество значений объединенных в одной структуре данных. По сути это структура, которая содержит в себе упорядоченное множество элементов. Это может быть массив строк, или массив чисел, а может включать и то и то. Хорошей практикой является хранить в массиве элементы одного и того же типа данных, так как часто приходится обрабатывать этот массив, а если в нем содержатся и строки и числа, то поведение программы поменяется. Пожалуй проще всего представлять массив на большую коробку, в которой есть набор маленьких коробок, внутри которых содержится значение
Мы также можем получать полезную информацию о массиве, например его длину. Важно длина массива соответсвует реальному размеру, а не индексу. Важно всегда про это помнить, чтобы не допускать ошибки
Кроме того мы можем получать точечный доступ к нашим элементам по его индексу. Индекс - местоположение элемента по счету. Так как массив это упорядоченная структура данных, то элементы расположены строго в том порядке, в каком они были добавлены. Важно индекс массива начнается с 0, а не с 1 как это можно подумать.
Можно подумать, что примеров использования у массива не так много, но давайте посмотрим на пример конструкции (метода) .split
у String
:
Даже если пойти немного глубже, то можно выяснить, что сама по себе строка это всего лишь массив симолов и работать мы можем с ней точно также как и с массивом
Также массив это изменяемая структура. Мы можем добавлять новые элементы, изменять значения, удалять элементы.
А что будем если изменить индекс, которого не существует ?
Старайтесь аккуратнее работать с массивом на уровне индексов, так как в последующем при обработке массива придется лишний раз проверять является ли элемент nil
или нет, что заметно усложнит структуру кода.
Как мы помним массив может содержать любые значения в себе, в том числе и сам массив или любую другую структуру данных, как и любая другая структура данных может хранить в себе массив. Массив, который содержит себе вложенный массив называется двумерным, массив, который состоит из массивов, которые состоят из массивов называется трехмерный и тд.
Задание reverse
Получите из консоли введенную пользователем строку и разбейте ее на массив слов
разверните массив в обратную сторону
*Реализуйте 2 пункт с помощью инструментов из урока не прибегая к использованию новых
Пример:
Hello world
-> [Hello, world]
-> [world, Hello]
Задание med_clinic
Создайте массив типа
Float
с температурами 30 пациентов (от 32 до 40 градусов).Напишите код, который выводит среднюю температуру по больнице и количество здоровых пациентов (с температурой от 36,2 до 36,9), а также температуры всех пациентов.
Рекомендации:
Помним про rand(...)
При написании программы выносите 'магические числа' в отдельные переменные
Задание cross
Создайте с помощью циклов двумерный массив строк. При его распечатке в консоли должен выводиться крестик из X:
Задание todo_list
Разработайте список дел, который управляется командами в консоли. Команды: LIST, ADD, EDIT, DELETE.
Принцип работы команд:
LIST — выводит дела с их порядковыми номерами;
ADD — добавляет дело в конец списка или дело на определённое место, сдвигая остальные дела вперёд, если указать номер;
EDIT — заменяет дело с указанным номером;
DELETE — удаляет.
Примеры команд
LIST
ADD Какое-то дело
ADD 4 Какое-то дело на четвёртом месте
EDIT 3 Новое название дела
DELETE 7 Команды вводятся одной строкой пользователем в консоль.
Дополнительный материал
Last updated