Массивы (Array) в Swift

Домашняя работа к главе 9

Массив — это один из наиболее важных представителей коллекции, который вы с большой долей вероятности будете использовать при реализации функционала любой программы. Массив (Array) — это упорядоченная коллекция однотипных элементов, для доступа к которым используются целочисленные индексы. Упорядоченной называется коллекция, в которой элементы располагаются в порядке, определенном разработчиком.

Задание 1

Какие из выражений не вызовут ошибок? Исправьте найденные ошибки.

var arr1 = [1,2,3,"4",5,6]
var arr2 = ["a","Z"]
var arr3 = [Character("a"), "b"]
var arr4 = [Character("a"), "zz"]
var arr5: [ClosedRange<Float>] = [1...3, 2.1...2.3]
Правильный ответ

1) Ошибка. Массив должен состоять из однотипных элементов
Исправлено: var arr1 = [1,2,3,4,5,6]
2) Корректно. Диапазон значений типа String
3) Корректно. Диапазон значений типа Character.
Обратите внимание, что по значению нижней границы диапазона будет правильно определено значение верхней границы (при том, что в ней не используется функция Character(_:)). Вы уже видели подобное в домашних заданиях предыдущей главы.
type(of: arr3[1]) // Character.Type
4) Ошибка. Массив должен состоять из однотипных элементов
Исправлено:
var arr4 = ["a", "zz"]
или
var arr4 = [Character("a"), "z"]
5) Корректно. Swift самостоятельно определит типы границ диапазонов в соответсвии с явно указанным типом ClosedRange<Float>.

Задание 2

Покажите все способы создания массива, состоящего из целочисленных элементов от 0 до 10

Правильный ответ

[1,2,3,4,5,6,7,8,9,10]
Array(1...10)
Array(arrayLiteral: 1,2,3,4,5,6,7,8,9,10)

Так же можно создать данный массив сложением двух других массивов
[1,2,3,4,5]+[6,7,8,9,10]

Задание 3

Покажите все известные вам способы создания массива, состоящего из пяти одинаковых значений

Правильный ответ

// С помощью литерала массива
[1,1,1,1,1]
// с помощью спецальных функций
Array(repeating: 1, count: 5)
Array(arrayLiteral: 1,1,1,1,1)

Задание 4

1)Создайте массив, состоящий из четырех целочисленных элементов

2)Сделайте так, чтобы вместо второго и третьего элементов массива (с индексами 1 и 2) был элемент, содержащий сумму начального и конечного элементов данного массива. После этого в массиве должно остаться 3 элемента.

3) Отсортируйте элементы по возрастанию

Правильный ответ

//1
var arr = [1,2,3,4]
//2
arr.remove(at: 1)
arr[1] = arr[0]+arr[2]
arr // [1, 5, 4]
//3
arr.sort() // [1, 4, 5]

Задание 5

1) Создайте массив, состоящий из всех целых чисел от 1 до 100

2) Создайте пустой массив типа Array<Int>

3) Проинициализируйте пустому массиву элементы с 25го по 50ый

Правильный ответ

//1
var arr = Array(1...100)
//2
var arr2: Array<Int> = []
// требуется преобразование ArraySlice в Array
// индекс 25го элемента - 24
arr2 = Array(arr[24...49])



Доступ закрыт

Дополнительные 5 заданий доступны только подписчикам

Оформить доступ


5 Comments

  1. dmuspensky:

    В четвертом задании получилось такое решение:

    //1
    var array = [1,2,3,4]

    //2
    var arraySum = array[0] + array[3] // 5
    array.removeSubrange(1…2) // [1, 4]
    array.insert(arraySum, at: 1) // [1, 5, 4]

    //3
    array.sort() // [1, 4, 5]

    Довольно сложным путем пошел 🙂

    Будет ли это считаться правильным решением?

  2. web.lukyanov:

    Доброго дня. Простите, Задание 9, при написанном в задании коде выводит ошибку, а не символ «а».
    4 строка удаляет второй массив из трех элементов [«d», «e», «f»]
    5 строка удаляет оставшийся массив [«a», «b», «c»]
    при попытки вывода print с индексом [0] получаем ошибку, убрав индекс получаем вывод пустого массива, уже без ошибок

  3. Xenya:

    В 7 задании нет ответа на вопрос «Может ли описанный вами синтаксис привести к ошибке? Если да, то в каком случае?» Как я понимаю ошибка будет, если в массиве один элемент, т.е. предпоследнего просто не будет существовать.

  4. a.avdeychik:

    Добрый день, в тесте по этой теме (платная версия 6 издания) ошибка:
    let friends = [«Alex»,»Anton»,»Jane»]
    print(friend[1])

    Правильный ответ должен быть: Выдаст ошибку при компиляции кода. В тесте стоит правильный ответ «Anton»
    P.S С большим удовольствием решаю задания в тестах и практике по 6 изданию (хоть и читаю 5е :)) Спасибо за Ваш труд !

  5. samilkuraev:

    Я решил задачу 4 вот так.
    var ExFour = [1,2,3,4]
    ExFour[1…2] = [5]
    ExFour.sort()
    ExFour

Добавить комментарий