Last active
March 6, 2021 07:59
-
-
Save 1vank1n/8ef4b8ad2616709393b85c5ef8aac4e8 to your computer and use it in GitHub Desktop.
Для запуска можно использовать https://dartpad.dev
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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