Skip to content

Instantly share code, notes, and snippets.

@1vank1n
Last active March 6, 2021 07:59
Show Gist options
  • Select an option

  • Save 1vank1n/8ef4b8ad2616709393b85c5ef8aac4e8 to your computer and use it in GitHub Desktop.

Select an option

Save 1vank1n/8ef4b8ad2616709393b85c5ef8aac4e8 to your computer and use it in GitHub Desktop.
Для запуска можно использовать https://dartpad.dev
import 'dart:math';
void main() {
// 1. Создайте текстовую переменную a = ‘hello world’; Напишите функцию, без возвращаемого значения. Функция меняет порядок слов на обратный. Например было ‘hello world’, стало ‘world hello’
String a = "hello world";
void reverseWords(String words) {
words = words.split(' ').reversed.toList().join(' ');
print(words);
}
reverseWords(a);
// 2. Создайте и проинициализируйте массив чисел с произвольным размером. Напишите функцию, которая вычисляет среднее арифметическое число массива и возвращает double результат. Распечатайте результат в консоли.
List<num> numberList = [1, 4, 61, 12, 134.2, 1, 4, 5254, 212, 14, 124, 13];
double average(List<num> numbers) {
num sum = numbers.reduce((a, b) => a + b);
return sum / numbers.length;
}
print(average(numberList));
// 3. Модернизируйте предыдущие функции так, чтобы на вход они принимали необходимые данные для работы. Параметр должен быть опциональным.
void reverseWordsOptional([String words = "Jedi Master Yoda"]) {
words = words.split(' ').reversed.toList().join(' ');
print(words);
}
double averageOptional([List<num> numbers = const [1, 2, 3]]) {
num sum = numbers.reduce((a, b) => a + b);
return sum / numbers.length;
}
reverseWordsOptional();
print(averageOptional());
// 4. Напишите функцию решения квадратного уравнения, используя вложенные функции. Вычисление дискриминанта, нахождение x1 и x2 выполните во вложенных функциях. Главная функция должна возвращать готовый результат. Функция возвращает ответ в строке (String). Есть три вида результата:
String solveQuadricEquation(num a, num b, num c) {
num getDiscriminant(num a, num b, num c) {
return pow(b, 2) - 4 * a * c;
}
List<num> getRoots(num a, num b, num c, num discriminant) {
if (discriminant < 0) {
return [];
} else if (discriminant == 0) {
num x = -b / 2 * a;
return [x];
} else {
num x1 = (-b + sqrt(discriminant)) / 2 * a;
num x2 = (-b - sqrt(discriminant)) / 2 * a;
return [x1, x2];
}
}
num discriminant = getDiscriminant(a, b, c);
List<num> roots = getRoots(a, b, c, discriminant);
if (roots.length == 0) {
return "Уравнение не имеет решения так как его дискриминант меньше нуля";
} else if (roots.length == 1) {
return "Квадратное уравнение имеет единственное решение: ${roots.first}";
} else {
return "Квадратное уравнение имеет два разных корня: ${roots.join(', ')}";
}
}
print(solveQuadricEquation(3, -4, 2));
print(solveQuadricEquation(1, -6, 9));
print(solveQuadricEquation(1, -4, -5));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment