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:convert'; | |
import 'dart:io'; | |
// 2.8 Асинхронность | |
// Напишите функцию, которая считывает данные с клавиатуры до тех пор, пока не будет введен строка "exit". Функция должна возвращать Stream. | |
// Напишите код, который прослушивает поток и распечатывает на консоль "Введена строка stroke_name" каждый раз, когда в потоке появляется новое событие. | |
Stream<String> waitInput() async* { | |
while (true) { | |
var inVal = stdin.readLineSync(encoding: Encoding.getByName('utf-8')); |
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:convert'; | |
import 'dart:io'; | |
// 2.8 Асинхронность | |
// Напишите функцию, которая считывает данные с клавиатуры. Функция должна возвращать Future. | |
// Напишите код, который дожидается выполнения функции и распечатывает на консоль "Введена строка stroke_name". | |
// Поэкспериментируйте с async/await и then | |
Future<String> waitInput() async { | |
return stdin.readLineSync(encoding: Encoding.getByName('utf-8')); |
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
// 2.7 Генерики | |
// Представьте, что разрабатывайте фентезийную игру. | |
// В игре есть гоблины и орки. Они спавнятся в пещерах. | |
// Создайте классы: | |
// Goblin | |
// Hobogoblin extends Goblin |
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
// 2.7 Генерики | |
// Написать класс с методом, приводящим полученное значение в строку. | |
// Не очень понял что имелось ввиду в задании | |
class Stringifier<T extends String> { | |
String stringify(T value) { | |
return value as String; | |
} |
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
// 2.7 Миксины | |
// Для реализации используйте классы из предыдущего задания. Транспортные средства, наследуемые от класса Car приходят в движения от двигателя внутреннего сгорания. На велосипед двигатель установить нельзя. | |
// Напишите миксин, который реализует двигатель только у наследников Car | |
// Задайте свойство enginePower: int с произвольным значением - мощность двигателя | |
// Напишите функцию runEngine которая выводит строку "Двигатель работает. Максимальная скорость = мощности двигателя / вес автомобиля. | |
// В Truck и SportCar в методе run выполните метод runEngine | |
abstract class Car with Painter { |
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
// 2.7 Миксины | |
// Есть базовый класс Car, с базовыми свойствами для всех машин | |
// abstract class Car { | |
// double weight; | |
// void run(); | |
// } | |
// Есть два наследника Грузовик и Спорткар | |
// class Truck extends Car { |
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
// 2.6 Классы | |
// Велосипед | |
// Создайте класс велосипеда по следующей схеме: | |
// Велосипед состоит из следующих частей | |
// Bike - управляющий класс велосипеда. В нем инкапсулированы детали, из которых состоит велосипед - колеса и руль. Содержит методы | |
// run - приводит в движения колеса. После запуска колес оповещает пользователя "Велосипед пришел в движение" | |
// stop - останавливает колеса. После остановки колес вывести на консоль "Велосипед остановлен" |
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
// 2.6 Классы | |
// Реализуйте класс Student (Студент), который будет наследоваться от класса User. Класс должен иметь следующие свойства: | |
// yearOfAdmission:DateTime (год поступления в вуз): инициализируется в конструкторе | |
// currentCourse:int (текущий курс): расчитывается след. образом - из текущего года вычесть год поступления. чтобы получить годы из DateTime, воспользуйтесь свойством DateTime.year | |
// Класс должен иметь метод toString() , с помощью которого можно вывести: | |
// имя и фамилию студента - используя родительскую реализацию toString | |
// год поступления |
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'; | |
// 2.5 Функции | |
// Напишите функцию решения квадратного уравнения, используя вложенные функции. Вычисление дискриминанта, нахождение x1 и x2 выполните во вложенных функциях. Главная функция должна возвращать готовый результат. Функция возвращает ответ в строке (String). Есть три вида результата: | |
// Уравнение не имеет решения так как его дискриминант меньше нуля; | |
// Квадратное уравнение имеет единственное решение; | |
// Квадратное уравнение имеет два разных корня. | |
void main() { |
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
// 2.5 Функции | |
// Модернизируйте предыдущие функции так, чтобы на вход они принимали необходимые данные для работы. Параметр должен быть опциональным. | |
void main() { | |
String reverseText([String text]) { | |
return text?.split(' ')?.reversed?.join(' '); | |
} | |
double average([List<num> arrayList]) { | |
if (arrayList == null) return null; |