Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.70 KB | None | 0 0
  1. public class SammlungGanzerZahlen
  2. {
  3. private int [] zahlen; // Arrayvariable fuer ein Array ganzer Zahlen.
  4.  
  5. private int anzahlElemente;//Die Anzahl der im Array gespeicherten Zahlen
  6.  
  7. /**
  8. * Bequemlichkeitskonstruktor fuer Objekte der Klasse SammlungGanzerZahlen
  9. */
  10. public SammlungGanzerZahlen()
  11. {
  12. zahlen = new int [10];
  13. anzahlElemente = 0;
  14. // Erzeugt ein leeres Array ganzer Zahlen. Groesse nach Ermessen des Programmierers festgelegt.
  15.  
  16. }
  17.  
  18. /**
  19. * Konstruktor f�r Objekte der Klasse SammlungGanzerZahlen der angegebenen Kapazitaet (= maximale
  20. * Zahl speicherbarer Zahlen).
  21. */
  22. public SammlungGanzerZahlen (int kapazitaet)
  23. {
  24. zahlen = new int [kapazitaet];
  25. anzahlElemente = 0;
  26. // Erzeugt ein leeres Array ganzer Zahlen. Groesse entspreched des Parameters kapaziaet.
  27.  
  28. }
  29.  
  30. /**
  31. * Gibt die Anzahl der gespeicherten Zahlen zurueck.
  32. * @return Die Anzahl der aktuell gespeicherten Zahlen.
  33. */
  34. public int gibAnzahl()
  35. {
  36. return anzahlElemente; //Gibt die Anzahl der gespeicherten Daten wieder
  37. }
  38.  
  39. /**
  40. * Gibt alle gespeicherten Zahlen im Konsolenfenster aus. Zahlen werden in einer Liste ausgegeben,
  41. * einzelne Zahlen durch Komma und Leerzeichen getrennt. Sofern mehr als 10 Zahlen im Speicher sind,
  42. * beginnt nach jeweils 10 Zahlen eine neue Zeile.
  43. */
  44. public void zeigeZahlen()
  45. {
  46. int index = 0; //Index als 0 initialisieren
  47. int ausgabe = 0; //Ausgabe als 0 initialisieren
  48. while(index < zahlen.length) //Wird solange durchlaufen bis der Index kleiner als die größe des Arrays ist
  49. {
  50. while(ausgabe < 10 && index < zahlen.length) // Wird solange durchlaufen wie die Ausgabe kleiner als 10 ist, damit nach 10 Zeichen ein Zeilenumbruch entshet
  51. {
  52. System.out.print(zahlen[index] + ", "); //Gibt die Zahl aus die an Stelle des Index gespeicher ist
  53. ausgabe++; //Setzt die Ausgabe um eines nach oben
  54. index++; // Erhöht den Index um eins.
  55. }
  56. System.out.println(); // Zeilenumbruch
  57. ausgabe = 0; // Damit wieder 10 Zeichen in einer Zeile ausgegeben werden wird dieser Wert wieder auf 0 gesetzt
  58. }
  59. }
  60.  
  61. /**
  62. * Fuegt eine Zahl hinzu. Zahl wird hinter den bereits gespeicherten Zahlen abgelegt.
  63. * Falls der Vorgang nicht moeglich ist, wird eine Fehlermeldung ausgegeben.
  64. * @param neueZahl Die Zahl, die hinzugefuegt wird.
  65. * @return gibt true zurueck, falls Hinzufuegen erfolgtreich, false sonst.
  66. */
  67. public boolean hinzufuegen (int neueZahl)
  68. {
  69. if(anzahlElemente >= zahlen.length)
  70. {
  71. return false; //Gibt False zurück wenn die Anzahl der Elemente größer,gleich der Größe des Arrays ist
  72. }
  73. else
  74. {
  75. zahlen[anzahlElemente] = neueZahl; // Die Anzahl der Elemente gibt die Zahl ab 1 wieder, daher wird im nächsten freien Wert die neue Zahl gespeichert
  76. anzahlElemente++; // Anzahl der Elemente um eines erhöhen
  77. return true; // True ausgeben wenn es funktioniert hat
  78. }
  79. }
  80.  
  81. /**
  82. * Gibt die Zahl des angegebenen Indexes zurueck.
  83. * @param index Der Index der gewuenschten Zahl.
  84. * @return Die Zahl zum Index index. Falls eine Fehler auftritt wird eine Fehlermeldung
  85. * ausgegeben und die Zahl 9999 zurueckgegeben.
  86. */
  87. public int gibZahl(int index)
  88. {
  89. if(index >= zahlen.length || index < 0 || index >= anzahlElemente)
  90. {
  91. return 9999; //Gibt 9999 zurück wenn die gesuchte Zahl kleiner als der Index ist, größer als die maximale Größe des Arrays oder größer als die Anzahl der gespeicherten Werte ist
  92. }
  93. else
  94. {
  95. return zahlen[index]; //Gibt die Zahl am Wert des Index zurück
  96. }
  97.  
  98. }
  99.  
  100. /**
  101. * Loescht die Zahl des angegebenen Indexes. Alle nachfolgenden Zahlen werden nach vorne
  102. * verschoben, so dass die entstehende Luecke geschlossen wird.
  103. * @param index Der Index der zu loeschenden Zahl.
  104. * @return Gibt die geloschte Zahl zurueck. Falls eine Fehler auftritt wird eine Fehlermeldung
  105. * ausgegeben und die Zahl 9999 zurueckgegeben.
  106. */
  107. public int loescheZahl(int index)
  108. {
  109. if(index >= zahlen.length - 1 || index < 0)
  110. {
  111. return 9999; // Gibt 9999 zurück wenn an der Stelle kein zu löschender Wert enthalten ist
  112. }
  113. else
  114. {
  115. int zahl = zahlen[index]; //Speichert die Zahl die gelöscht wird zwischen um sie später zurück zu geben
  116. for(int i = index + 1; i < anzahlElemente;i++) // Der Index muss um 1 erhöht sein, da er bei 0 anfängt zu speichern, dieser Wert darf nicht größer sein als die Anzahl der Elemente
  117. {
  118. zahlen[i-1] = zahlen[i]; // Löscht die Zahl und füllt ggf. entstandene Lücke auf
  119. }
  120. anzahlElemente--; //Anzahl der Elemente um 1 verringern
  121. for(int i = anzahlElemente; i < zahlen.length; i++) //
  122. {
  123. zahlen[i] = 0; //Setz Wert an dieser Stelle 0
  124. }
  125. return zahl; //Gibt die Zahl die gelöscht wurde aus
  126. }
  127. }
  128.  
  129. /**
  130. * Fuegt neue Zahl an der Stelle mit dem angegebenen Index ein. Alle nachfolgenden Zahlen werden
  131. * gegebenenfalls nach hinten verschoben. Falls eine Luecke entstehen wuerde, wir die Zahl direkt
  132. * hinter den bereits gespeicherten Zahlern abgelegt. Falls der Index negativ ist, wird die Zahl
  133. * an den Anfang gestellt.
  134. * @param neueZahl Die Zahl, die eingefuegt werden soll.
  135. * @param index Der Index der gewuenschten Stelle.
  136. * @return Gibt true zurueck, falls der Vorgang erfolgreich war. Falls eine Fehler auftritt wird
  137. * eine Fehlermeldung ausgegeben und false zurueckgegeben.
  138. */
  139. public boolean fuegeZahlEin(int neueZahl, int index)
  140. {
  141. if(index >= zahlen.length && anzahlElemente == zahlen.length)
  142. {
  143. System.out.println("error");
  144. return false;
  145. }
  146.  
  147. if(index > zahlen.length)
  148. {
  149. hinzufuegen(neueZahl);
  150. return true;
  151. }
  152.  
  153. if(index > anzahlElemente)
  154. {
  155. hinzufuegen(neueZahl);
  156. return true;
  157. }
  158.  
  159. if(index <= 0)
  160. {
  161. for(int i = anzahlElemente - 1; i >= 0; i--)
  162. {
  163. zahlen[i + 1] = zahlen[i];
  164. }
  165. zahlen[0] = neueZahl;
  166. anzahlElemente++;
  167. return true;
  168. }
  169.  
  170. for(int i = anzahlElemente - 1; i >= index; i--)
  171. {
  172. zahlen[i + 1] = zahlen[i];
  173. }
  174. zahlen[index] = neueZahl;
  175. anzahlElemente++;
  176. return true;
  177. }
  178.  
  179. /**
  180. * Findet groesste Zahl und gibt diese zurueck.
  181. * &return groesste Zahl im Array. Gibt 9999 zur�ck, falls es keine groesste Zahl gibt.
  182. */
  183. public int gibGroesste()
  184. {
  185. if(zahlen.length == 0)
  186. {
  187. return 9999;
  188. }
  189. else
  190. {
  191. int groessteZahl = Integer.MIN_VALUE;
  192. for(int i = 0; i < anzahlElemente; i++)
  193. {
  194. if(zahlen[i] > groessteZahl)
  195. {
  196. groessteZahl = zahlen[i];
  197. }
  198. }
  199. return groessteZahl;
  200. }
  201. }
  202.  
  203. /**
  204. * Findet kleinste Zahl und gibt diese zurueck.
  205. * &return kleinste Zahl im Array. Gibt 9999 zurueck, falls es keine kleinste Zahl gibt.
  206. */
  207. public int gibKleinste()
  208. {
  209. if(zahlen.length == 0)
  210. {
  211. return 9999;
  212. }
  213. else
  214. {
  215. int kleinsteZahl = Integer.MAX_VALUE;
  216. for(int i = 0; i < anzahlElemente; i++)
  217. {
  218. if(zahlen[i] < kleinsteZahl)
  219. {
  220. kleinsteZahl = zahlen[i];
  221. }
  222. }
  223. return kleinsteZahl;
  224. }
  225. }
  226.  
  227. /**
  228. * Kehrt Reihenfolge der Zahlen im Array um. Tauscht die erste Zahl mit der letzten,
  229. * die zweite mit der vorletzten, usw.
  230. */
  231. public void kehreReihenfolgeUm()
  232. {
  233. int[] tmp = new int[anzahlElemente];
  234. int tmp_index = tmp.length - 1;
  235. for(int i = 0; i < anzahlElemente; i++) {
  236. tmp[tmp_index] = zahlen[i];
  237. tmp_index--;
  238. }
  239. for(int i = 0; i < anzahlElemente; i++) {
  240. zahlen[i] = tmp[i];
  241. }
  242. }
  243.  
  244. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement