From 90a01744d2be7706cd98f34db0dd52a5337d0aa1 Mon Sep 17 00:00:00 2001
From: dali662d <dana.liebscher@mailbox.tu-dresden.de>
Date: Tue, 5 Nov 2024 11:37:35 +0000
Subject: [PATCH] Upload New File

---
 .../02_taschenrechner_mit_if_v2.f95           | 41 +++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 Sonderuebung/WiSe24-25/SU03_2024_11_05_IF_DO/02_taschenrechner_mit_if_v2.f95

diff --git a/Sonderuebung/WiSe24-25/SU03_2024_11_05_IF_DO/02_taschenrechner_mit_if_v2.f95 b/Sonderuebung/WiSe24-25/SU03_2024_11_05_IF_DO/02_taschenrechner_mit_if_v2.f95
new file mode 100644
index 0000000..2956f07
--- /dev/null
+++ b/Sonderuebung/WiSe24-25/SU03_2024_11_05_IF_DO/02_taschenrechner_mit_if_v2.f95
@@ -0,0 +1,41 @@
+! Enthaelt weniger WRITE Anweisungen (weniger Redudanz) als 01_taschenrechner
+! benoetigt dafuer eine extra Logical-Variable ob die Rechnung durchgefuehrt wurde
+!   (wegen Division durch 0)
+
+program taschenrechner
+    implicit none
+    
+    INTEGER :: a, b ! Variablen
+    CHARACTER :: op ! Operator
+    INTEGER :: res  ! Result
+    LOGICAL :: calc = .true.
+
+    WRITE(*,*) "Gebe zwei Zahlen ein!"
+    READ(*,*) a, b
+
+    WRITE(*,*) "Gebe einen Rechenoperator (+,-,*,/) ein!"
+    READ(*,*) op
+
+    IF (op == "+") THEN
+        res = a + b
+    ELSEIF (op == "-") THEN
+        res = a - b
+    ELSEIF (op == "*") THEN
+        res = a * b
+    ELSEIF (op == "/") THEN
+
+        IF (b == 0) THEN
+            WRITE(*,*) "Division durch 0 ist veboten!"
+            calc = .false.
+        ELSE
+            res = a / b
+        END IF
+
+    ELSE
+        WRITE(*,*) "Der Eingegebene Operator ist ungueltig."
+        calc = .false.
+    END IF
+
+    IF (calc) WRITE(*,*) "Das Ergebnis ist ", res
+
+end program taschenrechner
\ No newline at end of file
-- 
GitLab