Skip to content

Instantly share code, notes, and snippets.

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