From 4c05d65aadfe27959b15a88e99dbccd199b534c7 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 28 Oct 2015 14:50:26 +0100 Subject: EiP Blatt 2 --- .../blaetter/02/Arithmetik.java | 33 ++++++++++++++++++++++ .../blaetter/02/H2-1.md | 18 ++++++++++++ .../blaetter/02/H2-2.md | 13 +++++++++ .../blaetter/02/H2-3.java | 1 + .../blaetter/02/manifest | 3 ++ .../blaetter/02/test.sh | 20 +++++++++++++ 6 files changed, 88 insertions(+) create mode 100644 ws2015/einfuehrung_in_die_programmierung/blaetter/02/Arithmetik.java create mode 100644 ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-1.md create mode 100644 ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-2.md create mode 120000 ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-3.java create mode 100644 ws2015/einfuehrung_in_die_programmierung/blaetter/02/manifest create mode 100644 ws2015/einfuehrung_in_die_programmierung/blaetter/02/test.sh (limited to 'ws2015') diff --git a/ws2015/einfuehrung_in_die_programmierung/blaetter/02/Arithmetik.java b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/Arithmetik.java new file mode 100644 index 0000000..90335a4 --- /dev/null +++ b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/Arithmetik.java @@ -0,0 +1,33 @@ +import java.util.Scanner; + +class Arithmetik +{ + public static void main (String[] args) + { + Scanner scanner = new Scanner(System.in); + + System.out.print("Vorname: "); + String vorname = scanner.nextLine(); + System.out.print("Nachname: "); + String nachname = scanner.nextLine(); + System.out.print("x_1 = "); + int x1 = scanner.nextInt(); + System.out.print("x_2 = "); + int x2 = scanner.nextInt(); + + System.out.print("Hallo " + vorname.substring(0,1) + ". " + nachname + "! "); + + if (x1 < x2) + { + System.out.println("Der Mittelwert von " + x1 + " und " + x2 + " ist übrigens " + ((x1 + x2) / 2.0) + "!"); + } + else if (x1 > 0 && x2 > 0) + { + System.out.println("Der Kehrwert von " + x1 + " ist ungefähr " + 1.0/x1 + "!"); + } + else + { + System.out.println(x1 + x2); + } + } +} diff --git a/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-1.md b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-1.md new file mode 100644 index 0000000..e2fa908 --- /dev/null +++ b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-1.md @@ -0,0 +1,18 @@ +# Speicherbild + +Wir notieren eine Referenz mit Variablennamen `x` auf ein Objekt, dessen Repräsentation als String `...` ist, wie folgt: + +~~~ {.java} +x -> ... +~~~ + +~~~ {.java} +Int x = 9 +Prof prof1 -> Prof[name="Chris",teaching=9] +Prof prof2 -> Prof[name="Dora",teaching=9] +Student student1 -> Student[name="Alois",matrikel=1234] +Student student2 -> Student[name="Bine",matrikel=4567] +Student student3 -> Student[name="Alois",matrikel=1234] +~~~ + +`student1` und `student3` zeigen auf unterschiedliche Speicherbereiche. diff --git a/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-2.md b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-2.md new file mode 100644 index 0000000..430d28e --- /dev/null +++ b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-2.md @@ -0,0 +1,13 @@ +# Variablen + +2 -- `int x` + ~ Instanzvariable -- Lebenspanne identisch mit der des Objekts, Sichtbar (und nicht überschattet) in 9, und 13 + +4 -- `int x` + ~ Parameter -- Lebenspanne bis 6, Sichtbar in 5 + +12 -- `int y` + ~ Parameter -- Lebenspanne bis 17, Sichtbar in 13--16 + +14 -- `int x` + ~ Lokale Variable -- Lebenspanne bis 17, Sichtbar in 15--16 diff --git a/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-3.java b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-3.java new file mode 120000 index 0000000..34aea7f --- /dev/null +++ b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/H2-3.java @@ -0,0 +1 @@ +Arithmetik.java \ No newline at end of file diff --git a/ws2015/einfuehrung_in_die_programmierung/blaetter/02/manifest b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/manifest new file mode 100644 index 0000000..9cec2d1 --- /dev/null +++ b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/manifest @@ -0,0 +1,3 @@ +H2-1.pdf +H2-2.pdf +H2-3.java \ No newline at end of file diff --git a/ws2015/einfuehrung_in_die_programmierung/blaetter/02/test.sh b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/test.sh new file mode 100644 index 0000000..5647e13 --- /dev/null +++ b/ws2015/einfuehrung_in_die_programmierung/blaetter/02/test.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env zsh + +runTest() { + ret=$(echo $1 | java Arithmetik | tail -c +32) + if [[ $ret != $2 ]]; then + echo "Input:" + echo $1 + echo "Should return:" + echo $2 + echo "But returns:" + echo $ret + exit 1 + fi +} + +gup --update Arithmetik.class || exit 1 + +runTest "Christian\nElegans\n2\n7" "Hallo C. Elegans! Der Mittelwert von 2 und 7 ist übrigens 4.5!" +runTest "Gustav\nEnauer\n70\n15" "Hallo G. Enauer! Der Kehrwert von 70 ist ungefähr 0.014285714285714!" +runTest "Karla\nEhr-Wert\n7\n3" "Hallo K. Ehr-Wert! Der Kehrwert von 7 ist ungefähr 0.143!" -- cgit v1.2.3