Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'dart:math';
- import 'package:flutter/material.dart';
- void main() {
- runApp(const MyApp());
- }
- class MyApp extends StatelessWidget {
- const MyApp({Key? key}) : super(key: key);
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- title: 'Flutter Demo',
- theme: ThemeData(
- primarySwatch: Colors.blue,
- ),
- home: const MyHomePage(title: 'Flutter Demo Home Page'),
- );
- }
- }
- class MyHomePage extends StatefulWidget {
- const MyHomePage({Key? key, required this.title}) : super(key: key);
- final String title;
- @override
- State<MyHomePage> createState() => _MyHomePageState();
- }
- class _MyHomePageState extends State<MyHomePage> {
- int a = 0, b = 0, c = 0;
- static List<double> calculate(int a, int b, int c) {
- double discr = (b*b - 4*a*c).toDouble();
- if (discr < 0) throw Exception();
- if(discr > 0) {
- double x1 = (-b + sqrt(discr)) / 2 * a;
- double x2 = (-b - sqrt(discr)) / 2 * a;
- return [x1, x2];
- } else {
- double x1 = (-b) / 2 * a;
- return [x1];
- }
- }
- String check() {
- try {
- List n = calculate(a,b,c);
- return n.toString();
- } catch(e) {
- return 'Некорректное уравнение!';
- }
- }
- @override
- Widget build(BuildContext context) {
- return DefaultTabController(
- initialIndex: 0,
- length: 2,
- child: Scaffold(
- appBar: AppBar(
- title: Text(widget.title),
- bottom: const TabBar(
- tabs: <Widget>[
- Tab(
- icon: Text('Calculate')
- ),
- Tab(
- icon: Text('Result')
- ),
- ],
- ),
- ),
- body: TabBarView(
- children: <Widget>[
- Center(
- child: Container(
- child: Column(
- children: [
- Align(
- alignment: Alignment.centerLeft,
- child: Text('Ваше уравнение:', style: TextStyle(fontSize: 30),),
- ),
- Text('$a*x^2 + $b*x + $c = 0'),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: TextField(
- onChanged: (t) {setState(() {a = int.parse(t);});},
- ),
- ),
- Expanded(
- flex: 1,
- child: TextField(
- onChanged: (t) {setState(() {b = int.parse(t);});},
- ),
- ),
- Expanded(
- flex: 1,
- child: TextField(
- onChanged: (t) {setState(() {c = int.parse(t);});},
- ),
- ),
- ],
- )
- ],
- ),
- ),
- ),
- Center(
- child: Text(check()),
- ),
- ],
- ),
- )
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement