Dart 1.1.1
Версия реализации Dart языка программирования DartВерсия, выпущенная 16 января 2014 года.
Dart Editor 1.1.1
Примеры:
Hello, World! - Dart (551):
=> expr
— сокращение для { return expr; }
main() => print("Hello, World!");
Факториал - Dart (552):
Используется рекурсивное определение факториала. Тип данных int
позволяет хранить целые числа произвольной величины.
int factorial(int n) => n == 0 ? 1 : n * factorial(n - 1);
main() {
for (int i = 0; i <= 16; ++i) {
print('$i! = ${factorial(i)}');
}
}
Факториал - Dart (553):
Используется итеративное вычисление факториала.
main() {
int fact = 1;
for (int i = 0; i <= 16; ++i, fact *= i) {
print('$i! = $fact');
}
}
Числа Фибоначчи - Dart (554):
Используется рекурсивное определение чисел Фибоначчи.
int fibonacci(int n) => n <= 2 ? 1 : fibonacci(n - 2) + fibonacci (n - 1);
main() {
String output = "";
for (int i = 1; i <= 16; ++i) {
output += fibonacci(i).toString() + ", ";
}
print(output + "...");
}
Квадратное уравнение - Dart (555):
import 'dart:io';
import 'dart:math' show sqrt;
int readInt() {
String input = stdin.readLineSync();
return int.parse(input);
}
main() {
int A, B, C;
try {
A = readInt();
B = readInt();
C = readInt();
}
on FormatException {
print("Coefficient is not a number.");
return;
}
if (A == 0) {
print("Not a quadratic equation.");
return;
}
int D = B * B - 4 * A * C;
double p1 = - B / 2.0 / A;
double p2 = sqrt(D.abs()) / 2.0 / A;
if (D == 0) {
print("x = $p1");
} else {
if (D > 0) {
print("x1 = ${p1 + p2}");
print("x2 = ${p1 - p2}");
} else {
print("x1 = ($p1, $p2)");
print("x2 = ($p1, ${-p2})");
}
}
}
CamelCase - Dart (556):
splitMapJoin
разбивает строку на части, соответствующие регулярному выражению, и части между ними, преобразует все фрагменты с использованием двух функций (в данном случае изменяет регистр соответствующих частей и заменяет несоответствующие на пустые строки) и конкатенирует результаты в новую строку.
import 'dart:io';
main() {
String text = stdin.readLineSync().toLowerCase();
String capitalize(Match m) => m[0].substring(0, 1).toUpperCase() + m[0].substring(1);
String skip(String s) => "";
print(text.splitMapJoin(new RegExp(r'[a-z]+'), onMatch: capitalize, onNonMatch: skip));
}
Комментарии
]]>blog comments powered by Disqus
]]>