Skip to content

Instantly share code, notes, and snippets.

@Medvedoc
Last active August 4, 2020 17:14
Show Gist options
  • Save Medvedoc/69e639aa79e479694a484d9deeb7a2d2 to your computer and use it in GitHub Desktop.
Save Medvedoc/69e639aa79e479694a484d9deeb7a2d2 to your computer and use it in GitHub Desktop.
My_tasks_Dart_по_анонимным_функциям
/*
Задача 2.
Вы получите список чисел. Ваша задача вернуть сумму всех положительных чисел.
Пример: [1, -10, 9, -1] => 1 + 9 = 10
Условия:
1. Список может быть пустым, в этом случае возвращаем 0.
2. Если в списке все отрицательные значения, то вернуть 0.
Входные данные:
[1, -10, 9, -1]
[-1, -2, -3]
[]
[1, 2]
Выходные данные
[1, -10, 9, -1] => 10
[-1, -2, -3] => 0
[] => 0
[1, 2] => 3
*/
void main() {
//Задание 2
print('Задание 2');
//Вариант 1
print('Вариант 1 - получение суммы всех положительных чисел без использования функции');
List<int> numbers = [1, -10, 9, -1];
numbers = numbers.where((element)=>element>0).toList();
int count = 0;
for(int number in numbers) {
count += number;
}
print(count);
print('\n');
//Вариант 2
print('Вариант 2 - получение суммы всех положительных чисел с использованием функции');
List<int> numbers2 = [1, -10, 9, -1];
numbers2 = numbers2.where((element)=>element>0).toList();
int count2 = 0;
for(int word22 in numbers2) {
count2 = operationNumbers(count2, word22, (a,b) => a=a+b);
}
print(count2);
print('\n');
//Вариант 2.1
print('Вариант 2.1 - получение суммы всех положительных чисел с использованием функции');
List<int> numbers21 = [1, -10, 9, -1];
print(numbers21.where((element)=>element>0).reduce((a, b) => a=a+b));
print('\n');
//Вариант 2.2
print('Вариант 2.2 - получение суммы всех положительных чисел с использованием функции');
List<int> numbers22 = [1, -10, 9, -1];
print(int.parse(numbers22.where((element)=>element>0).fold(0, (a, b) => a + b).toString()));
print('\n');
//Вариант 3
print('Вариант 3 - получение суммы всех положительных чисел путем перебора всех списков с использование функции');
var numbers3 = [[1, -10, 9, -1],[-1, -2, -3],[],[1, 2]];
for (int i=0;i<numbers3.length;i++){
numbers3[i] = numbers3[i].where((element)=>element>0).toList();
int number3=0;
for(int word22 in numbers3[i]) {
number3 = operationNumbers(number3, word22, (a,b) => a=a+b);
}
print(number3);
}
print('\n');
}
int operationNumbers (int a, int b, Function operation) {
return operation(a,b);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment