1 - Заменить в массиве отрицательные числа нулем
2 – Сортировка массива по убыванию(возрастанию)
3 – Найти max(min) элемент в массиве
4 – Найти сумму элементов массива
1 - Заменить в массиве отрицательные числа нулем
2 – Сортировка массива по убыванию(возрастанию)
3 – Найти max(min) элемент в массиве
4 – Найти сумму элементов массива
Хорошо, но напишите Ваши мысли по поводу каждого из пунктов, только тогда будет толк от обучения.
Еще месяц назад подобные задания меня вводили в ступор. Потому что мне казалось, что я это должен быстро в уме прокрутить и решить. Но такое случается только после приобретения опыта.
Поэтому, смотрите что объединяет все эти четыре пункта? Правильно, слово массив. Открываете документацию по массиву и штудируете ее. А так же все методы класса NSArray
Решил только 1-ю и 4-ю задачу. Остальные как то труднее решать
// Заменить в массиве отрицательные числа нулем
var array = [1, 2, -3, -4, 5, -6, -7, 8, -9, 10]
for var item in array {
if item < 0 {
item = 0
array[item] = 0
}
print(item)
}
// Найти сумму элементов массива
var array_summa = [1, 2, 3, 4, 5]
var summa = 0
for i in array_summa {
summa += i
}
print(summa)
Решение 3 задачи, если надо объясню.
let array = [2,3,454,234,12,-234,53,-1,222,342,32423,-53]
func getArray (_ array :[Int], _ closure : (Int, Int?) -> Bool) -> Int {
var optValue : Int? = nil
for value in array {
if closure(value, optValue) {
optValue = value
}
}
return optValue!
}
print(array.sorted())
print(getArray(array) { ($1 != nil) ? $0 < $1! : true})
print(getArray(array) { ($1 != nil) ? $0 > $1! : true})
А вот тебе сортировочка:
let array = [1,3,5,2,3,6,8,7,9,0]
var reversed = array.sorted(by: >)
var normal = array.sorted(by: <)
//Можно так, если это не понятно
var reversed = array.sorted(by: {i1, i2 in return i1 > i2})
var reversed = array.sorted(by: {i1, i2 in return i1 < i2})
//или так
var reversedNames = arrayInt.sorted(by: { $0 > $1})
var reversedNames = arrayInt.sorted(by: { $0 < $1})
//или если нужна функция
func sortArray (i1 : Int, i2: Int) -> Bool {
return i1 > i2
}
var reverse = array.sorted(by: sortArray)
я предпочитаю шортхэнд, а вобще читайте методичку по свифту, там все написано
не посмотрел на дату и начал решать
let array = [1, 2, 3, 4, 5, -1, -2, -3, -4, -5];
// 1 - Заменить в массиве отрицательные числа нулем
print("map: \(array.map{ $0 < 0 ? 0 : $0 })");
// 2 – Сортировка массива по убыванию(возрастанию)
print("sort1: \(array.sorted{ $0 > $1 })"); // убыванию
print("sort2: \(array.sorted{ $0 < $1 })"); // возрастанию
// 3 – Найти max(min) элемент в массиве
print("max: \(array.reduce(array[0]) { $0 < $1 ? $1 : $0 })"); // max
print("min: \(array.reduce(array[0]) { $0 > $1 ? $1 : $0 })"); // min
// 4 – Найти сумму элементов массива
print("sum: \(array.reduce(0) { $0 + $1 })");
На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.
конечно слабо, не буду(не хочу) же я писать какую-нибудь сортировку, которую нигде использовать не буду
let array = [1, 2, 3, 4, 5, -1, -2, -3, -4, -5];
var a1 = [Int](repeating: 0, count: array.count);
var min = array.first ?? 0;
var max = min;
var sum = 0;
for index in 0..<array.count {
let item = array[index];
a1[index] = item < 0 ? 0 : item;
if item < min {
min = item;
}
if item > max {
max = item;
}
sum += item;
}
// 1 - Заменить в массиве отрицательные числа нулем
print("map: \(a1)");
// 3 – Найти max(min) элемент в массиве
print("max: \(max)"); // max
print("min: \(min)"); // min
// 4 – Найти сумму элементов массива
print("sum: \(sum)");
На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.
Здравствуйте) мне кажется, что первая задача у вас решена не совсем верно, если хотите убедиться в этом - напишите в самом конце строку print(array)… Окажется, что сам массив не изменился так, как этого требовалось в задании, а принял вид: [0, 2, -3, -4, 5, -6, -7, 8, -9, 10]
мой вариант решения:
var mass = [1, 2, -3, -4, 5, -6, -7, 8, -9, 10]
//создаем массив, который нужно изменить
var i = 0
// создаем переменную счетчик
while i != mass.count {
//объявляем цикл while от i=0 до mass.count равного в данном случае 10
var iItem = mass[i]
// объявляем переменную в которую будем вносить i-тый элемент массива
if iItem <= 0 {
//проверяем, меньше ли выбранный элемент чем 0 используя созданную ранее переменную
mass[i] = 0
//если да - то приравниваем его к нулю
}
i += 1
//переходим к следующему элементу
}
print(mass)
//выводим весь массив для проверки
А можно пожалуйста Поподробнее объяснить всё?
В целом если смотрю - то, объективно, понятно…но можно по отдельности сказать что вы конкретно делаете?