summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/bigInteger.java25
-rw-r--r--java/inputA.java4
-rw-r--r--java/inputB.java7
-rw-r--r--java/java.tex37
-rw-r--r--java/output.java7
5 files changed, 80 insertions, 0 deletions
diff --git a/java/bigInteger.java b/java/bigInteger.java
new file mode 100644
index 0000000..28490bf
--- /dev/null
+++ b/java/bigInteger.java
@@ -0,0 +1,25 @@
+// Berechnet this +,*,/,- val.
+BigInteger add(BigInteger val), multiply(BigInteger val),
+ divide(BigInteger val), substract(BigInteger val)
+
+// Berechnet this^e.
+BigInteger pow(BigInteger e)
+
+// Bit-Operationen.
+BigInteger and(BigInteger val), or(BigInteger val), xor(BigInteger val),
+ not(), shiftLeft(int n), shiftRight(int n)
+
+// Berechnet den ggT von abs(this) und abs(val).
+BigInteger gcd(BigInteger val)
+
+// Berechnet this mod m, this^-1 mod m, this^e mod m.
+BigInteger mod(BigInteger m), modInverse(BigInteger m),
+ modPow(BigInteger e, BigInteger m)
+
+// Berechnet die nächste Zahl, die größer und wahrscheinlich prim ist.
+BigInteger nextProbablePrime()
+
+// Berechnet int/long/float/double-Wert.
+// Ist die Zahl zu großen werden die niedrigsten Bits konvertiert.
+int intValue(), long longValue(),
+float floatValue(), double doubleValue() \ No newline at end of file
diff --git a/java/inputA.java b/java/inputA.java
new file mode 100644
index 0000000..6616c89
--- /dev/null
+++ b/java/inputA.java
@@ -0,0 +1,4 @@
+Scanner in = new Scanner(System.in); // java.util.Scanner
+String line = in.nextLine(); // Die nächste Zeile.
+int num1 = in.nextInt(); // Das nächste Token als int.
+double num2 = in.nextDouble(); // Das nächste Token als double. \ No newline at end of file
diff --git a/java/inputB.java b/java/inputB.java
new file mode 100644
index 0000000..9175d56
--- /dev/null
+++ b/java/inputB.java
@@ -0,0 +1,7 @@
+BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
+String line = in.readLine(); // Die nächste Zeile.
+String[] parts = line.split(" "); // Zeile in Tokens aufspalten.
+int num1 = Integer.parseInt(in.readLine);
+int num2 = Integer.parseInt(parts[0]);
+double num3 = Double.parseDouble(in.readLine);
+double num4 = Double.parseDouble(parts[0]); \ No newline at end of file
diff --git a/java/java.tex b/java/java.tex
new file mode 100644
index 0000000..af8a024
--- /dev/null
+++ b/java/java.tex
@@ -0,0 +1,37 @@
+\section{Java}
+\lstset{language=Java}
+
+\optional{
+\subsection{Introduction}
+
+\begin{itemize}
+ \item Compilen: \code{javac main.java}
+ \item Ausführen: \code{java main < sample.in}
+\end{itemize}
+}
+
+\subsection{Input}
+\begin{itemize}
+ \item \code{Scanner} ist sehr langsam. Nicht für lange Eingaben verwenden
+\end{itemize}
+\optional{
+\lstinputlisting{java/inputA.java}
+\lstinputlisting{java/inputB.java}
+}
+
+\subsection{Output}
+\begin{itemize}
+ \item \code{System.out} flusht nach jeder newline $\Rightarrow$ langsam
+ \item \code{String.format} langsam
+ \item \code{+} auf \code{String} benutzt \code{StringBuilder} $\Rightarrow$ schnell und leicht \\(bei vielen \code{+}-Operationen an unterschiedlichen Stellen doch explizit \code{StringBuilder} nutzen)
+\end{itemize}
+\optional{
+\lstinputlisting{java/output.java}
+}
+
+\optional{
+\subsection{BigInteger}
+\lstinputlisting{java/bigInteger.java}
+}
+
+\lstset{language=C++}
diff --git a/java/output.java b/java/output.java
new file mode 100644
index 0000000..a068d8d
--- /dev/null
+++ b/java/output.java
@@ -0,0 +1,7 @@
+//gepufferter nicht autoatischer flushender output
+PrintWriter out = new PrintWriter(new BufferedWriter(
+ new OutputStreamWriter(new FileOutputStream(
+ FileDescriptor.out), StandardCharsets.UTF_8), 4096));
+out.println("blub" + "a" + "b"); //zeile Ausgeben
+out.println(String.format("%d %s", 5, "a")) // wie printf
+out.close();//WICHTIG! \ No newline at end of file