From 11beed44c78847c91b25d8b4c9d8b3c7ada8de35 Mon Sep 17 00:00:00 2001
From: hbui <hong-phuc.bui@htwsaar.de>
Date: Thu, 25 Jul 2024 03:01:12 +0200
Subject: [PATCH] Auswahl der Methode is eindeutig gestaltet
---
num-int/src/numint/guimain.py | 33 ++++++++++++++++++++++++++++-----
1 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/num-int/src/numint/guimain.py b/num-int/src/numint/guimain.py
index 3f90199..076d851 100644
--- a/num-int/src/numint/guimain.py
+++ b/num-int/src/numint/guimain.py
@@ -35,24 +35,30 @@
layout.addWidget(self.canvas)
self.ui.plotBox.setLayout(layout)
self.ui.plotBtn.clicked.connect(self._update_plot)
+ self.ui.breakMethod.buttonClicked.connect(self._activate_break_rule)
+ self.ui.numberOfSectionsMethod.click()
def _update_plot(self):
fn_expr = self.ui.function.text()
self.fn_expr = fn_expr
start = self.ui.startValue.text()
end = self.ui.endValue.text()
- epsilon = self.ui.espilon.text()
+
try:
f = parse_function(fn_expr)
(a, b) = (parse_value(start), parse_value(end))
- if epsilon is not None and len(epsilon.strip()) > 0:
- eps = parse_value(epsilon)
+ method_id = self.ui.breakMethod.checkedId()
+ if method_id == self.ui.breakMethod.id(self.ui.minEpsilonMethod):
+ epsilon = self.ui.espilon.text()
+ eps = abs(parse_value(epsilon))
+ self.ui.espilon.setText(f"{eps}")
print(f"plot f(x) = {fn_expr}, {a}, {b}, epsilon = {eps}")
(self.x, self.y, self.left, self.right, self.num_of_iterations, *_) = numint_epsilon(f, a, b, eps)
self._update_plot_eps()
- else:
+ elif method_id == self.ui.breakMethod.id(self.ui.numberOfSectionsMethod):
section = self.ui.section.text()
- sec = parse_value(section)
+ sec = int(abs(parse_value(section)))
+ self.ui.section.setText(f"{sec}")
print(f"plot f(x) = {fn_expr}, {a}, {b}, section = {sec}")
(self.x, self.y, self.left, self.right, self.num_of_iterations, *_) = numint_section(f, a, b, sec)
self._update_plot_eps()
@@ -74,6 +80,23 @@
self.ui.rightSum.setText(f"{self.right}")
self.ui.numOfSections.setText(f"{self.num_of_iterations}")
+ def _activate_break_rule(self):
+ method_id = self.ui.breakMethod.checkedId()
+ print(method_id)
+ if method_id == self.ui.breakMethod.id(self.ui.numberOfSectionsMethod):
+ print("activate num of sec")
+ self.ui.section.setEnabled(True)
+ self.ui.section.setFocus()
+ self.ui.espilon.setEnabled(False)
+
+ elif method_id == self.ui.breakMethod.id(self.ui.minEpsilonMethod):
+ print("activate minimum epsilon method")
+ self.ui.section.setEnabled(False)
+ self.ui.espilon.setEnabled(True)
+ self.ui.espilon.setFocus()
+
+
+
def main():
app = QApplication(sys.argv)
--
Gitblit v1.10.0