From 7bfb8cbc0c0c22ce870731f70ce21d69dd8b9413 Mon Sep 17 00:00:00 2001 From: Luca Conte Date: Thu, 17 Nov 2022 16:42:13 +0100 Subject: [PATCH] u19 --- uebungen/u19/Quadratic.class | Bin 0 -> 1890 bytes uebungen/u19/Quadratic.java | 58 +++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 uebungen/u19/Quadratic.class create mode 100644 uebungen/u19/Quadratic.java diff --git a/uebungen/u19/Quadratic.class b/uebungen/u19/Quadratic.class new file mode 100644 index 0000000000000000000000000000000000000000..892d4338d44df4c41ec992829b70ca9fb832acbe GIT binary patch literal 1890 zcmaJ>&r=&!9RDmNo3LF1q)SP)KT->6K!jqI7E+oN0xcA1Yp^KQ>LYo;lFe?|-B8i0 ztp}a)FK8Wa9z1sHp<*3vXFTcXnQ=Tgjwfe4IOCOZ{O*rH5XN_S@B2RQ^Zota`{AEQ z-vT&|49St#a{>d?G&n!xz$3A+x11>}iPUud1BiPq{-( z|M{aceiGB0RpD>{DAVk^A%};2;YqX4$uw_BL*>sl#Gzkq{rdC9H(yJb#8d;OaXE}D z60YJUC%Rme6lcSD#W{X83IVg?AJs(nsCeX{eKfWU}R-~yT^Rh>^)O7q;DVe=Xxff7@70SA)TCzshO>(!XP*qgIW zRbNawiVZ6jRxp{Z=E-IhAsiLu}R+a?Q zsOW`0@|nzb(q76L6*JGrR40zemST?+hl~`?$~ceV5b`n#xDW!Dv4BO2mBmXH%ZgX@ zMUAWZrTEFX#Z^6oB^fG~Wn?ibpn2FZY|A!Td5YUhM!{+lQ4B+qQ355bTp|@7H#yfd z9-sW~p+)9o7`PBdIgAw2rfW257{y9ifIP12+#J!EWpT>pZf!+;8(!-#GQFU2tKCyf?M}G{*`YYIR_1%q zYoChO_f%~ieG?;0({hw@Dug=%I(Fr^S8M`~{67!J=$Ig1U(X(hiHG8R)N-F z*Ow3;kRae3&7uni(10{DBs6 z93&pe5d}{xIP7tcDmX^cw##P_CMO~KrouQtj^iYCV;{~y#xNS`lZp^ZFWV32H`>Xh z@sWb#17czw9Wn9lr;xuuB6{K>k`I!}A~{SHV}au0KsXkzGTMldNJiGt`3PMAQ9nmE z7LJf|#8H0MMV@yQx(6he9Ftu3b1vIO6!gTTqKlq%Q74f)w|4y$EGUH_+R%g;%?D{d zganSD4@WUdsZCNtW^o)h(2g=X@F7lMgtTM?HW91eM0b5l4<$%nlAmrDRbM1VlsqRX zr@Vr`MA2Bssr!W1cCC-}=o9kwCJ>;wfH+m?g?k7l?vwDMCn)Hr6wZ81tKnGj;*X%7 wabLZ>-0%%{qa{vGU literal 0 HcmV?d00001 diff --git a/uebungen/u19/Quadratic.java b/uebungen/u19/Quadratic.java new file mode 100644 index 0000000..ef97d32 --- /dev/null +++ b/uebungen/u19/Quadratic.java @@ -0,0 +1,58 @@ +/** + * Klasse zum berechnen Quadratischer gleichungen + */ +public class Quadratic { + + public static void main(String[] args) { + quadratic(1, -12, 35); + quadratic(0.2, -0.8, 0.8); + quadratic(1, 12, 37); + quadratic(0.1, 0.6, 0.9); + quadratic(1.8, 1.2, 0.2); + quadratic(0, 4, 7); + quadratic(1, -4.2, 4.21); + } + + /** + * berechnet alle reellen Lösungen einer Quadratischen Gleichung des Formats a*x*x + b*x + c + * a != 0 + * Lösungen werden mit System.out.println ausgegeben, nicht zurueckgegeben + */ + public static void quadratic(double a, double b, double c) { + double epsilon = 0.0000000001; + if (Math.abs(a) < epsilon) { + System.out.println("a muss ungleich 0 sein"); + return; + } + + double wurzelterm = (b * b) - (4.0 * a * c); + + if (Math.abs(wurzelterm) < epsilon) { + System.out.println("Lösung: " + simplifiedQuadraticFormula(a, b, 0)); + } else if (wurzelterm < 0) { + System.out.println("Keine reelle Lösung"); + } else { + double wurzel = Math.sqrt(wurzelterm); + System.out.println("Erste Lösung: " + simplifiedQuadraticFormula(a, b, wurzel)); + System.out.println("Zweite Lösung: " + simplifiedQuadraticFormula(a, b, -1 * wurzel)); + } + } + + /** + * Berechnet eine Loesung einer Quadratischen gleichung + * Plus-Minus wird als Plus interpretiert + * root muss bereits berechnet uebergeben werden + * Um Plus-Minus als Minus zu interpretieren, root zuvor mit -1 multiplizieren + * Ergebnis mittels round1 auf eine Nachkommastelle gerundet + */ + public static double simplifiedQuadraticFormula(double a, double b, double root) { + return round1((-1 * b + root) / (2 * a)); + } + + /** Rundet eine gegebene Zahl auf eine Nachkommastelle. */ + public static double round1(double value) { + if (Double.isNaN(value)) return value; + if (Double.isInfinite(value)) return value; + return Math.round(value * 10) / 10.0; + } +}