import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Kalorienverbrauch Rechner', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(), ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State { final _gewichtController = TextEditingController(); final _streckeController = TextEditingController(); final _zeitController = TextEditingController(); double _geschwindigkeitProKilometer = 0.0; double _kalorienverbrauch = 0.0; bool _isValidInput = true; void _berechne() { double gewicht = double.parse(_gewichtController.text); double strecke = double.parse(_streckeController.text); double zeit = double.parse(_zeitController.text); setState(() { _geschwindigkeitProKilometer = zeit / strecke; _kalorienverbrauch = _berechneKalorienverbrauch(strecke, zeit, gewicht); _isValidInput = _kalorienverbrauch != 0; }); } double _berechneKalorienverbrauch(double distanzInKilometer, double zeitInMinuten, double gewichtDesBenutzers) { double zeitInStunden = zeitInMinuten / 60; double geschwindigkeit = distanzInKilometer / zeitInStunden; double kcalProKg; if (geschwindigkeit >= 7 && geschwindigkeit < 10) { kcalProKg = 8.0; } else if (geschwindigkeit >= 10 && geschwindigkeit < 13) { kcalProKg = 10.0; } else if (geschwindigkeit >= 13 && geschwindigkeit <= 15) { kcalProKg = 12.0; } else { return 0.0; // Invalid speed } return kcalProKg * gewichtDesBenutzers * zeitInStunden; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Kalorienverbrauch Rechner'), ), body: Padding( padding: const EdgeInsets.all(16.0), child: Column( children: [ TextField( controller: _gewichtController, decoration: InputDecoration(labelText: 'Gewicht (in kg)'), keyboardType: TextInputType.number, ), TextField( controller: _streckeController, decoration: InputDecoration(labelText: 'Strecke (in km)'), keyboardType: TextInputType.number, ), TextField( controller: _zeitController, decoration: InputDecoration(labelText: 'Zeit (in Minuten)'), keyboardType: TextInputType.number, ), SizedBox(height: 20), ElevatedButton( onPressed: _berechne, child: Text('Berechnen'), ), SizedBox(height: 20), Text('Geschwindigkeit pro Kilometer: ${_geschwindigkeitProKilometer.toStringAsFixed(2)} Minuten'), _isValidInput ? Text('Kalorienverbrauch: ${_kalorienverbrauch.toStringAsFixed(2)} kcal') : Text('Ungültige Angaben', style: TextStyle(color: Colors.red)), ], ), ), ); } }