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