Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.89 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. /***********************************************************************
  5. * Diese Klasse stellt einige einfache Methoden zur Ein- und
  6. * Ausgabe auf einem Terminal zur Verfügung.
  7. * @author P. Pepper und Gruppe
  8. * @version 1.1
  9. ************************************************************************/
  10.  
  11. public class Terminal {
  12.  
  13. /****************************************************************
  14. * Gibt eine Zeichenkette aus.
  15. * @param text die auszugebende Zeichenkette.
  16. ****************************************************************/
  17. public static void print (String text) {
  18. System.out.print(text);
  19. System.out.flush();
  20. }
  21.  
  22. /****************************************************************
  23. * Gibt eine Zeichenkette gefolgt von einem Zeilenumbruch aus.
  24. * @param text die auszugebende Zeichenkette.
  25. ****************************************************************/
  26. public static void println (String text) {
  27. System.out.println(text);
  28. System.out.flush();
  29. }
  30.  
  31. /****************************************************************
  32. * Gibt einen booleschen Wert aus.
  33. * @param val der auszugebende boolesche Wert.
  34. ****************************************************************/
  35. public static void print (boolean val) { print(norm(val)); }
  36.  
  37. /****************************************************************
  38. * Gibt eine booleschen Wert gefolgt von einem Zeilenumbruch aus.
  39. * @param val der auszugebende boolesche Wert.
  40. ****************************************************************/
  41. public static void println (boolean val) { println(norm(val)); }
  42.  
  43. /****************************************************************
  44. * Gibt ein Zeichen aus.
  45. * @param val das auszugebende Zeichen.
  46. ****************************************************************/
  47. public static void print (char val) { print(norm(val)); }
  48.  
  49. /****************************************************************
  50. * Gibt ein Zeichen gefolgt von einem Zeilenumbruch aus.
  51. * @param val das auszugebende Zeichen.
  52. ****************************************************************/
  53. public static void println (char val) { println(norm(val)); }
  54.  
  55. /****************************************************************
  56. * Gibt eine ganze Zahl aus.
  57. * (Kann auch mit byte und short aufgerufen werden.)
  58. * @param number die auszugebende ganze Zahl.
  59. ****************************************************************/
  60. public static void print (long number) { print(norm(number)); }
  61.  
  62. /****************************************************************
  63. * Gibt eine ganze Zahl gefolgt von einem Zeilenumbruch aus.
  64. * (Kann auch mit byte und short aufgerufen werden.)
  65. * @param number die auszugebende ganze Zahl.
  66. ****************************************************************/
  67. public static void println (long number) { println(norm(number)); }
  68.  
  69. /***************************************************************
  70. * Gibt eine Gleitpunktzahl(32 Bit) aus.
  71. * @param number die auszugebende Gleitpunktzahl.
  72. ****************************************************************/
  73. public static void print (float number) { print(norm(number)); }
  74.  
  75. /***************************************************************
  76. * Gibt eine Gleitpunktzahl(32 Bit) gefolgt von einem
  77. * Zeilenumbruch aus.
  78. * @param number die auszugebende Gleitpunktzahl.
  79. ****************************************************************/
  80. public static void println (float number) { println(norm(number)); }
  81.  
  82. /***************************************************************
  83. * Gibt eine Gleitpunktzahl(64 Bit) aus.
  84. * @param number die auszugebende Gleitpunktzahl.
  85. ****************************************************************/
  86. public static void print (double number) { print(norm(number)); }
  87.  
  88. /***************************************************************
  89. * Gibt eine Gleitpunktzahl(64 Bit) gefolgt von einem
  90. * Zeilenumbruch aus.
  91. * @param number die auszugebende Gleitpunktzahl.
  92. ****************************************************************/
  93. public static void println (double number) { println(norm(number)); }
  94.  
  95.  
  96.  
  97. //***************************************************************
  98. //***************************************************************
  99. // Array-Ausgabe
  100. //***************************************************************
  101. //***************************************************************
  102. //
  103.  
  104. /****************************************************************
  105. * Gibt einen Array von ganzen Zahlen (32 Bit) aus.
  106. * @param array der auszugebende Array.
  107. ****************************************************************/
  108. public static void print (int[] array) {
  109. System.out.print("{ ");
  110. for (int i = 0; i < array.length; i++) {
  111. System.out.print(norm(array[i]));
  112. if (i != array.length - 1) { System.out.print(", "); }
  113. }//for
  114. System.out.print(" }");
  115. }
  116.  
  117. /****************************************************************
  118. * Gibt einen Array von ganzen Zahlen (32 Bit) gefolgt
  119. * von einem Zeilenumbruch aus.
  120. * @param array der auszugebende Array.
  121. ****************************************************************/
  122. public static void println (int[] array) {
  123. print(array);
  124. System.out.println();
  125. System.out.flush();
  126. }
  127.  
  128. /****************************************************************
  129. * Gibt einen Array von ganzen Zahlen (64 Bit) aus.
  130. * @param array der auszugebende Array.
  131. ****************************************************************/
  132. public static void print (long[] array) {
  133. System.out.print("{ ");
  134. for (int i = 0; i < array.length; i++) {
  135. System.out.print(norm(array[i]));
  136. if (i != array.length - 1) { System.out.print(", "); }
  137. }//for
  138. System.out.print(" }");
  139. }
  140.  
  141. /****************************************************************
  142. * Gibt einen Array von ganzen Zahlen (64 Bit) gefolgt
  143. * von einem Zeilenumbruch aus.
  144. * @param array der auszugebende Array.
  145. ****************************************************************/
  146. public static void println (long[] array) {
  147. print(array);
  148. System.out.println();
  149. System.out.flush();
  150. }
  151.  
  152. /****************************************************************
  153. * Gibt einen Array von Gleitpunktzahlen (32 Bit) aus.
  154. * @param array der auszugebende Array.
  155. ****************************************************************/
  156. public static void print (float[] array) {
  157. System.out.print("{ ");
  158. for (int i = 0; i < array.length; i++) {
  159. System.out.print(norm(array[i]));
  160. if (i != array.length - 1) { System.out.print(", "); }
  161. }//for
  162. System.out.print(" }");
  163. }
  164.  
  165. /****************************************************************
  166. * Gibt einen Array von Gleitpunktzahlen (32 Bit) gefolgt
  167. * von einem Zeilenumbruch aus.
  168. * @param array der auszugebende Array.
  169. ****************************************************************/
  170. public static void println (float[] array) {
  171. print(array);
  172. System.out.println();
  173. System.out.flush();
  174. }
  175.  
  176. /****************************************************************
  177. * Gibt einen Array von Gleitpunktzahlen (64 Bit) aus.
  178. * @param array der auszugebende Array.
  179. ****************************************************************/
  180. public static void print (double[] array) {
  181. System.out.print("{ ");
  182. for (int i = 0; i < array.length; i++) {
  183. System.out.print(norm(array[i]));
  184. if (i != array.length - 1) { System.out.print(", "); }
  185. }//for
  186. System.out.print(" }");
  187. }
  188.  
  189. /****************************************************************
  190. * Gibt einen Array von Gleitpunktzahlen (64 Bit) gefolgt
  191. * von einem Zeilenumbruch aus.
  192. * @param array der auszugebende Array.
  193. ****************************************************************/
  194. public static void println (double[] array) {
  195. print(array);
  196. System.out.println();
  197. System.out.flush();
  198. }
  199.  
  200. /****************************************************************
  201. * Gibt eine Matrix von ganzen Zahlen (32 Bit) aus.
  202. * @param matrix die auszugebende Matrix..
  203. ****************************************************************/
  204. public static void print (int[][] matrix) {
  205. System.out.print("{ ");
  206. for (int i = 0; i < matrix.length; i++) {
  207. for (int j = 0; j < matrix[i].length; j++) {
  208. System.out.print(norm(matrix[i][j]));
  209. if (j != matrix[i].length - 1) {
  210. System.out.print(", ");
  211. } else {
  212. if (i != matrix.length - 1) {
  213. System.out.print(" / ");
  214. }
  215. }
  216. }
  217. }
  218. System.out.print(" }");
  219. }
  220.  
  221. /****************************************************************
  222. * Gibt eine Matrix von ganzen Zahlen (64 Bit) aus.
  223. * @param matrix die auszugebende Matrix..
  224. ****************************************************************/
  225. public static void print (long[][] matrix) {
  226. System.out.print("{ ");
  227. for (int i = 0; i < matrix.length; i++) {
  228. for (int j = 0; j < matrix[i].length; j++) {
  229. System.out.print(norm(matrix[i][j]));
  230. if (j != matrix[i].length - 1) {
  231. System.out.print(", ");
  232. } else {
  233. if (i != matrix.length - 1) {
  234. System.out.print(" / ");
  235. }
  236. }
  237. }
  238. }
  239. System.out.print(" }");
  240. }
  241.  
  242. /****************************************************************
  243. * Gibt eine Matrix von Gleitpunktzahlen (32 Bit) aus.
  244. * @param matrix die auszugebende Matrix..
  245. ****************************************************************/
  246. public static void print (float[][] matrix) {
  247. System.out.print("{ ");
  248. for (int i = 0; i < matrix.length; i++) {
  249. for (int j = 0; j < matrix[i].length; j++) {
  250. System.out.print(norm(matrix[i][j]));
  251. if (j != matrix[i].length - 1) {
  252. System.out.print(", ");
  253. } else {
  254. if (i != matrix.length - 1) {
  255. System.out.print(" / ");
  256. }
  257. }
  258. }
  259. }
  260. System.out.print(" }");
  261. }
  262.  
  263. /****************************************************************
  264. * Gibt eine Matrix von Gleitpunktzahlen (64 Bit) aus
  265. * @param matrix die auszugebende Matrix..
  266. ****************************************************************/
  267. public static void print (double[][] matrix) {
  268. System.out.print("{ ");
  269. for (int i = 0; i < matrix.length; i++) {
  270. for (int j = 0; j < matrix[i].length; j++) {
  271. System.out.print(norm(matrix[i][j]));
  272. if (j != matrix[i].length - 1) {
  273. System.out.print(", ");
  274. } else {
  275. if (i != matrix.length - 1) {
  276. System.out.print(" / ");
  277. }
  278. }
  279. }
  280. }
  281. System.out.print(" }");
  282. }
  283.  
  284. /****************************************************************
  285. * Gibt eine Matrix von ganzen Zahlen (32 Bit) aus.
  286. * gefolgt von einem Zeilenumbruch
  287. * @param matrix die auszugebende Matrix..
  288. ****************************************************************/
  289. public static void println (int[][] matrix) {
  290. print(matrix);
  291. System.out.println();
  292. System.out.flush();
  293. }
  294.  
  295. /****************************************************************
  296. * Gibt eine Matrix von ganzen Zahlen (64 Bit) aus.
  297. * gefolgt von einem Zeilenumbruch
  298. * @param matrix die auszugebende Matrix..
  299. ****************************************************************/
  300. public static void println (long[][] matrix) {
  301. print(matrix);
  302. System.out.println();
  303. System.out.flush();
  304. }
  305.  
  306. /***************************************************************
  307. * Gibt eine Matrix von Gleitpunktzahlen (32 Bit) aus
  308. * gefolgt von einem Zeilenumbruch
  309. * @param matrix die auszugebende Matrix..
  310. ****************************************************************/
  311. public static void println (float[][] matrix) {
  312. print(matrix);
  313. System.out.println();
  314. System.out.flush();
  315. }
  316.  
  317. /***************************************************************
  318. * Gibt eine Matrix von Gleitpunktzahlen (64 Bit) aus
  319. * gefolgt von einem Zeilenumbruch
  320. * @param matrix die auszugebende Matrix..
  321. ****************************************************************/
  322. public static void println (double[][] matrix) {
  323. print(matrix);
  324. System.out.println();
  325. System.out.flush();
  326. }
  327.  
  328. //***************************************************************
  329. //
  330. // R E A D I N G
  331. //
  332. //***************************************************************
  333.  
  334. /***************************************************************
  335. * Liest eine Zeichenkette vom Terminal.
  336. * @return das gelesene Zeichen.
  337. ****************************************************************/
  338. public static String readString () {
  339. String line = "";
  340. BufferedReader R = new BufferedReader(
  341. new InputStreamReader(System.in));
  342. try {
  343. line = R.readLine();
  344. }
  345. catch (IOException e) { error1(); }
  346. return line;
  347. }
  348.  
  349. /****************************************************************
  350. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  351. * Zeichenkette.
  352. * @param prompt die auszugebende Zeichenkette.
  353. * @return die eingegebene Zeichenkette.
  354. ****************************************************************/
  355. public static String askString (String prompt) {
  356. print(prompt);
  357. return readString();
  358. }
  359.  
  360. /****************************************************************
  361. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  362. * Zeichenkette.
  363. * @param prompt die auszugebende Zeichenkette.
  364. * @return die eingegebene Zeichenkette.
  365. ****************************************************************/
  366. public static String ask (String prompt) {
  367. return askString(prompt);
  368. }
  369.  
  370. /****************************************************************
  371. * Liest einen Wahrheitswert vom Terminal.
  372. * Die Zeichenkette "true" (unabh&auml;ngig von Gro&szlig;-/Kleinschreibung)
  373. * liefert true, alles andere false.
  374. * @return der eingegebene Wert.
  375. ****************************************************************/
  376. public static boolean readBoolean () {
  377. StringTokenizer tokenizer = getTokenizer();
  378. while (true) {
  379. try {
  380. String token = tokenizer.nextToken();
  381. return Boolean.valueOf(token).booleanValue();
  382. }
  383. catch (NoSuchElementException e1) { tokenizer = getTokenizer(); }
  384. catch (NumberFormatException e2) { error2("Boolean"); }
  385. }//while
  386. }
  387.  
  388. /****************************************************************
  389. * Gibt eine Zeichenkette aus und erwartet die Eingabe eines
  390. * Wahrheitswerts.
  391. * Die Zeichenkette "true" (unabh&auml;ngig von Gro&szlig;-/Kleinschreibung)
  392. * liefert true, alles andere false.
  393. * @param prompt die auszugebende Zeichenkette.
  394. * @return der eingegebene Wert.
  395. ****************************************************************/
  396. public static boolean askBoolean (String prompt) {
  397. print(prompt);
  398. return readBoolean();
  399. }
  400.  
  401. /****************************************************************
  402. * Liest ein Zeichen vom Terminal.
  403. * @return das gelesene Zeichen.
  404. ****************************************************************/
  405. public static char readChar () {
  406. int x = 0;
  407. InputStreamReader R = new InputStreamReader(System.in);
  408. try {
  409. x = R.read();
  410. }
  411. catch (IOException e1) { error1(); }
  412. return (char) x;
  413. }
  414.  
  415. /***************************************************************
  416. * Gibt eine Zeichenkette aus und erwartet die Eingabe eines
  417. * Zeichens.
  418. * @param prompt die auszugebende Zeichenkette.
  419. * @return das eingegebene Zeichen.
  420. ****************************************************************/
  421. public static char askChar (String prompt) {
  422. print(prompt);
  423. return readChar();
  424. }
  425.  
  426. /****************************************************************
  427. * Liest eine ganze Zahl (8 Bit) vom Terminal.
  428. * @return die gelesene Zahl.
  429. ****************************************************************/
  430. public static byte readByte () {
  431. StringTokenizer tokenizer = getTokenizer();
  432. while (true) {
  433. try {
  434. String token = tokenizer.nextToken();
  435. return Byte.valueOf(token).byteValue();
  436. }
  437. catch (NoSuchElementException e1) { tokenizer = getTokenizer(); }
  438. catch (NumberFormatException e2) { error2("Byte"); }
  439. }//while
  440. }
  441.  
  442. /****************************************************************
  443. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  444. * ganzen Zahl (8 Bit).
  445. * @param prompt die auszugebende Zeichenkette.
  446. * @return die eingegebene Zahl.
  447. ****************************************************************/
  448. public static byte askByte (String prompt) {
  449. print(prompt);
  450. return readByte();
  451. }
  452.  
  453. /****************************************************************
  454. * Liest eine ganze Zahl (16 Bit) vom Terminal.
  455. * @return die gelesene Zahl.
  456. ****************************************************************/
  457. public static short readShort () {
  458. StringTokenizer tokenizer = getTokenizer();
  459. while (true) {
  460. try {
  461. String token = tokenizer.nextToken();
  462. return Short.valueOf(token).shortValue();
  463. }
  464. catch (NoSuchElementException e1) { tokenizer = getTokenizer(); }
  465. catch (NumberFormatException e2) { error2("Short"); }
  466. }//while
  467. }
  468.  
  469. /****************************************************************
  470. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  471. * ganzen Zahl (16 Bit).
  472. * @param prompt die auszugebende Zeichenkette.
  473. * @return die eingegebene Zahl.
  474. ****************************************************************/
  475. public static short askShort (String prompt) {
  476. print(prompt);
  477. return readShort();
  478. }
  479.  
  480. /****************************************************************
  481. * Liest eine ganze Zahl (32 Bit) vom Terminal.
  482. * @return die gelesene Zahl.
  483. ****************************************************************/
  484. public static int readInt () {
  485. StringTokenizer tokenizer = getTokenizer();
  486. while (true) {
  487. try {
  488. String token = tokenizer.nextToken();
  489. return Integer.valueOf(token).intValue();
  490. }
  491. catch (NoSuchElementException e1) { tokenizer = getTokenizer(); }
  492. catch (NumberFormatException e2) { error2("Integer"); }
  493. }//while
  494. }
  495.  
  496. /****************************************************************
  497. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  498. * ganzen Zahl (32 Bit).
  499. * @param prompt die auszugebende Zeichenkette.
  500. * @return die eingegebene Zahl.
  501. ****************************************************************/
  502. public static int askInt (String prompt) {
  503. print(prompt);
  504. return readInt();
  505. }
  506.  
  507. /****************************************************************
  508. * Liest eine ganze Zahl (64 Bit) vom Terminal.
  509. * @return die gelesene Zahl.
  510. ****************************************************************/
  511. public static long readLong () {
  512. StringTokenizer tokenizer = getTokenizer();
  513. while (true) {
  514. try {
  515. String token = tokenizer.nextToken();
  516. return Long.valueOf(token).longValue();
  517. }
  518. catch (NoSuchElementException e1) { tokenizer = getTokenizer(); }
  519. catch (NumberFormatException e2) { error2("Long"); }
  520. }//while
  521. }
  522.  
  523. /****************************************************************
  524. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  525. * ganzen Zahl (64 Bit).
  526. * @param prompt die auszugebende Zeichenkette.
  527. * @return die eingegebene Zahl.
  528. ****************************************************************/
  529. public static long askLong (String prompt) {
  530. print(prompt);
  531. return readLong();
  532. }
  533.  
  534. /****************************************************************
  535. * Liest eine Gleitpunktzahl(32 Bit) vom Terminal.
  536. * @return die gelesene Zahl.
  537. ****************************************************************/
  538. public static float readFloat () {
  539. StringTokenizer tokenizer = getTokenizer();
  540. while (true) {
  541. try {
  542. String token = tokenizer.nextToken();
  543. return Float.valueOf(token).floatValue();
  544. }
  545. catch (NoSuchElementException e1) { tokenizer = getTokenizer(); }
  546. catch (NumberFormatException e2) { error2("Float"); }
  547. }
  548. }
  549.  
  550. /****************************************************************
  551. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  552. * Gleitpunktzahl einfacher Genauigkeit (32 Bit).
  553. * @param prompt die auszugebende Zeichenkette.
  554. * @return die eingegebene Gleitpunktzahl.
  555. ****************************************************************/
  556. public static float askFloat (String prompt) {
  557. print(prompt);
  558. return readFloat();
  559. }
  560.  
  561. /****************************************************************
  562. * Liest eine Gleitpunktzahl(64 Bit) vom Terminal.
  563. * @return die gelesene Zahl.
  564. ****************************************************************/
  565. public static double readDouble () {
  566. StringTokenizer tokenizer = getTokenizer();
  567. while (true) {
  568. try {
  569. String token = tokenizer.nextToken();
  570. return Double.valueOf(token).doubleValue();
  571. }
  572. catch (NoSuchElementException e1) { tokenizer = getTokenizer(); }
  573. catch (NumberFormatException e2) { error2("Double"); }
  574. }
  575. }
  576.  
  577.  
  578. /****************************************************************
  579. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  580. * Gleitpunktzahl doppelter Genauigkeit (64 Bit).
  581. * @param prompt die auszugebende Zeichenkette.
  582. * @return die eingegebene Gleitpunktzahl.
  583. ****************************************************************/
  584. public static double askDouble (String prompt) {
  585. print(prompt);
  586. return readDouble();
  587. }
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594. /****************************************************************
  595. * Liest ein Integer-Array vom Terminal.
  596. * @return array das gelesene Array.
  597. * @throws NoSuchElementException bei unerwarteter Eingabe.
  598. * @throws NumberFormatException bei falschem Zahlenformat.
  599. ****************************************************************/
  600. public static int[] readIntArray () {
  601. StringTokenizer tokenizer;
  602. String token;
  603. int anzahl, i;
  604.  
  605. while (true) {
  606. tokenizer = new StringTokenizer(readString(), ",");
  607. anzahl = tokenizer.countTokens();
  608.  
  609. if (anzahl > 0) {
  610. int[] array = new int[anzahl];
  611.  
  612. try {
  613. for (i = 0; i < anzahl; i++) {
  614. token = tokenizer.nextToken();
  615. array[i] = Integer.valueOf(token).intValue();
  616. }
  617. return array;
  618. }
  619. catch (NoSuchElementException e1) { }
  620. catch (NumberFormatException e2) { error2("Integer"); }
  621. } else {
  622. error3();
  623. }
  624. }
  625. }
  626.  
  627. /****************************************************************
  628. * Liest eine Integer-Matrix vom Terminal.
  629. * @return matrix die gelesene Matrix..
  630. * @throws NoSuchElementException bei unerwarteter Eingabe.
  631. * @throws NumberFormatException bei falschem Zahlenformat.
  632. ****************************************************************/
  633. public static int[][] readIntMatrix () {
  634. StringTokenizer tokenizer;
  635. String token;
  636. int zeilen, spalten, i, j, anzahl;
  637.  
  638. while (true) {
  639. tokenizer = new StringTokenizer(readString(), "/");
  640. zeilen = tokenizer.countTokens();
  641.  
  642. if (zeilen > 1) {
  643. StringTokenizer[] eingabe = new StringTokenizer[zeilen];
  644.  
  645. spalten = 0;
  646. try {
  647. for (i = 0; i < zeilen; i++) {
  648. eingabe[i] = new StringTokenizer(tokenizer.nextToken(), ",");
  649. if (eingabe[i].countTokens() > spalten) spalten = eingabe[i].countTokens();
  650. }
  651. }
  652. catch (NoSuchElementException e1) { }
  653.  
  654. if (spalten > 0) {
  655. int[][] matrix = new int[zeilen][spalten];
  656.  
  657. // Matrix mit 0 initialisieren
  658. for (i = 0; i < zeilen; i++) {
  659. for (j = 0; j < spalten; j++) {
  660. matrix[i][j] = 0;
  661. }
  662. }
  663.  
  664. try {
  665. for (i = 0; i < zeilen; i++) {
  666. anzahl = eingabe[i].countTokens();
  667. for (j = 0; j < anzahl; j++) {
  668. token = eingabe[i].nextToken();
  669. matrix[i][j] = Integer.valueOf(token).intValue();
  670. }
  671. }
  672.  
  673. return matrix;
  674. }
  675. catch (NoSuchElementException e1) { }
  676. catch (NumberFormatException e2) { error2("Integer"); }
  677. } else {
  678. error4();
  679. }
  680. } else {
  681. error5();
  682. }
  683. }
  684. }
  685.  
  686. // asking ...
  687.  
  688. /****************************************************************
  689. * Gibt eine Zeichenkette aus und erwartet die Eingabe eines
  690. * Integer Arrays.
  691. * @return das gelesene Array.
  692. ****************************************************************/
  693.  
  694. public static int[] askIntArray (String prompt) {
  695. print(prompt);
  696. return readIntArray();
  697. }
  698.  
  699. /****************************************************************
  700. * Gibt eine Zeichenkette aus und erwartet die Eingabe einer
  701. * Integer Matrix.
  702. * @return die gelesene Matrix.
  703. ****************************************************************/
  704.  
  705. public static int[][] askIntMatrix (String prompt) {
  706. print(prompt);
  707. return readIntMatrix();
  708. }
  709.  
  710.  
  711.  
  712. //****************************************************************/
  713. //****************************************************************/
  714. //
  715. // auxiliary stuff for writing ...
  716. //
  717. //****************************************************************/
  718. //****************************************************************/
  719.  
  720. private static String norm (boolean val) {
  721. return Boolean.toString(val);
  722. }
  723.  
  724. private static String norm (char val) {
  725. return Character.toString(val);
  726. }
  727.  
  728. private static String norm (long number) {
  729. return Long.toString(number);
  730. }
  731.  
  732. private static String norm (float number) {
  733. if ( Math.abs(number) < 1e-8F ) { number = 0.0F;}
  734. return Float.toString(number);
  735. }
  736.  
  737. private static String norm (double number) {
  738. if ( Math.abs(number) < 1e-8F ) { number = 0.0;}
  739. return Double.toString(number);
  740. }
  741.  
  742. //****************************************************************/
  743. // auxiliary stuff for reading ...
  744. //****************************************************************/
  745. // the auxiliary (but central) method
  746.  
  747. private static StringTokenizer getTokenizer () {
  748. String line;
  749. StringTokenizer tok = null;
  750. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  751. try {
  752. line = reader.readLine();
  753. if (line == null) { throw new IOException(); }
  754. tok = new StringTokenizer(line);
  755. }
  756. catch (IOException e) { error1(); }
  757. return tok;
  758. }
  759.  
  760. //****************************************************************/
  761. // error handling ...
  762. //****************************************************************/
  763.  
  764. private static void error1 () {
  765. print("***ERROR*** ");
  766. }
  767.  
  768. private static void error2 ( String kind) {
  769. print("Ungueltige " + kind + "-Zahl! (Nochmal eingeben) ");
  770. }
  771.  
  772. private static void error3 () {
  773. print("Ein leeres Array ist nicht erlaubt! (Nochmal eingeben) ");
  774. }
  775.  
  776. private static void error4 () {
  777. print("Eine leere Zeile ist nicht erlaubt! (Nochmal eingeben) ");
  778. }
  779.  
  780. private static void error5 () {
  781. print("Eine Matrix muss mindestens zwei Zeilen besitzen! (Nochmal eingeben) ");
  782. }
  783. } // end of class Terminal
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement