Skip to content

Instantly share code, notes, and snippets.

@webmstk
Created December 17, 2022 10:04
Show Gist options
  • Save webmstk/11ccebf598331d9e4abd1c2de382e2d9 to your computer and use it in GitHub Desktop.
Save webmstk/11ccebf598331d9e4abd1c2de382e2d9 to your computer and use it in GitHub Desktop.
import 'dart:math';
void main() {
// 1.
String text = 'hello world';
revert(text);
// 2.
var ar = [1, 22, 3, 40, 12];
var result = avg(ar);
print(result);
// 3.
revert2();
result = avg2();
print(result);
// 4.
var solution = quadraticEqation(1, -8, 12);
print(solution);
solution = quadraticEqation(5, 3, 7);
print(solution);
solution = quadraticEqation(1, 6, 9);
print(solution);
}
// 1.
void revert(text) {
print(text.split(' ').reversed.join(' '));
}
// 2.
double avg(List<int> numbers) {
if (numbers.isEmpty) {
return 0;
}
var sum = numbers.reduce((acc, number) => acc += number);
return sum / numbers.length;
}
// 3.
void revert2([String text = '']) {
revert(text);
}
double avg2([List<int> numbers = const []]) {
return avg(numbers);
}
// 4.
// Для простоты не стал обрабатывать неполные квадратные уравнения
String quadraticEqation(int a, int b, int c) {
int calcDiscriminant(int a, int b, int c) {
return (pow(b, 2) as int) - 4 * a * c;
}
int calcX1(int a, int b, int discriminant) {
return (-b + sqrt(discriminant).toInt()) ~/ (2 * a);
}
int calcX2(int a, int b, int discriminant) {
return (-b - sqrt(discriminant).toInt()) ~/ (2 * a);
}
int discriminant = calcDiscriminant(a, b, c);
switch (discriminant.compareTo(0)) {
case -1:
return 'Корней нет.';
case 0:
var x1 = calcX1(a, b, discriminant);
return 'Корень $x1.';
default:
var x1 = calcX1(a, b, discriminant);
var x2 = calcX2(a, b, discriminant);
return 'Корни $x1 и $x2.';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment