Sie sind auf Seite 1von 2

GdProg 1 – Formelsammlung

HTML-CODE: public static void countList(){ außerhalb


Datentypen <applet codebase="/" System.out.println("Die Liste
enthaellt " + liste.size() + "
des Pakets
code="GutenMorgen.class"
Bez Byte Werte Ganz VZ Stel Eintraege.");
width=300 height=120 alt="Applet Von einer Ja Ja Ja Nein
futsch."> }
boolean 1 Byte true/false ja nein 1 public static void showList() { Subklasse im
<param name="text" value="Parammeter!">
char 2 Byte Unicode ja nein 1 System.out.println("Die Liste selben Paket
</applet>
byte 1 Byte 27..27-1 ja ja 3 enthaelt folgenden Inhalt
\n+"+liste.toString()); Von einer Ja Ja Nein Nein
short 2 Byte 215..215-1 ja ja 7 Die HTML und der ByteCode befinden sich im } Subklasse
int 4 Byte 231..231-1 ja ja 10 selben Verzeichnis. public static void main (String [] außerhalb
long 8 Byte 263..263-1 ja ja 19 args) { des Pakets
float 4 Byte 10-38..1038 nein ja 6..7 Sequenz & Verzweigung addList();
addList();
Zählschleife
countList(); Variablentypen
Exception Handling for( int i = 0; i <= feld.length; i++) }
showList();
Lokale Variablen class{ methode() { float
a) Wie wird dieses Konzept bezeichnet ? {System.out.println(feld[i]);} } EineKlassenVariable;} }
Ausnahmebehandlung / Expection Handling System.out.println("Anz.: "feld.legth()); Klassenvariablen class{ static float
b) Was wird mit diesem Sprachelement erreicht ? for( feld : zugriffsvariable} ArrayList ermöglichen EineKlassenVariable; }
{System.out.println(zugriffsvaiable);} Referenzielle Datentypen (Felder) welche Daten mit
Abfangen von Laufzeitfehlern. Instanzvariablen class{ float EineKlassenVariable; }
Bedeutung Schlüsselworte: Bedingungsschleife verschiedenen Datentypen enthält // Zugriff mit this.EineKlassenVariable;
try Beginn des geschützten Bereichs import java.util.*; Konstanten class{ methode() { final float
int i = 1;
class {private static ArrayList <Object>
catch Kennzeichnet den Beginn des Blocks while ( i <= 10) { i++; }
liste = new ArrayList <Object> (); konstentenVariable;} }
zum Auffangen und Reagieren auf Fehler. do { i++; } while(i<=10);
methode() {liste.add(new
finally Wird auf jedenfall ausgeführt
throws "Wirft" die Exception an höhrere Methode.
Verzweigungen String);list.set(index,WERT);liste.remove(
index)
Zeichen & Zeichenketten
if(true) {} else {} String var = new String("Zeichenkette");
Throw Bietet Möglichkeit, selber Exceptions try {
for (Iterator e = liste.iterator () ; Strng var = "Zeichenkette";
auszulösen. Mehrfachverzweigung
e.hasNext () ;) { char var = 'z'; // einfache Anf.Zeichen
Beispiele: switch(antwort) { zeigerInt = liste.indexOf(e.next());}} int var = 4; // keine Anführungszeichen
case 's': }}
catch(ArrayIndexOutOfBoundsException e){} doSomeThing();
catch(ArithmeticException e) { //DivNULL} break; Ein- und Ausgabe
catch(IOException e) { // Eingabefehler}
catch(NumberFormatException e) {//Zahl? }
default:
doSomeThing();
Typumwandlung
Console
Wir eingebunden durch java.lang; } (auch Typ-Konvertierung, Typ-Casting, Typ-
import Console.java;
Konversionen) class { methode() {
Aufgabenbeispiel
Applet GutenMorgen Ausgabe der von des aktuellen Wertes von t, Sinus
Typeinengungen (engl. casting) kann es zu zahl = Console.getInt("Bitte geben sie
Informationsverlusten kommen. eine Zahl ein!");
von t und Cosinus von t solange bis PI erreicht ist. Typeinengungen sind immer explizit anzuweisen.
JAVA-CODE: }}
import java.applet.*; Dazu dient der cast-Operator.
double i = 12345678;
Klassisch
import java.awt.*;
public class GutenMorgen extends Applet { Array und ArrayList 012 int d = (int) i; import java.io.*;
class { methode() throws IOException {
Image picture;
BufferedReader br = new
AudioClip sound;
public void init() {
Array
Typ[] Name = new Typ[Anzahl];
Modifizierer BufferedReader(new
sound = getAudioClip(getCodeBase(), InputStreamReader(System.in));
Typ Name[] = new Typ[Anzahl]; Erreichbarkeit public protected default private System.out.print("Bitte geben Sie
"WelchWunderschoenerTag.au");
picture = getImage(getCodeBase(), Beispiel Ihren Vornamen ein: ");
"Sonnenaufgang.jpg"); String [] mystring = Innerhalb Ja Ja Ja Ja vorname = br.readLine();
} {"eins","zwei","drei"} derselben }}
public void start({ sound.loop();} mystring[2] = "vier"; Klasse
public void stop(){ sound.stop();}
public void paint(Graphics g) {
System.out.println("Anz"+mystring.lenght);
Von einer Ja Ja Ja Nein
Dateien und Datenströme
g.drawImage(picture, 0, 0, this); ArrayList in Telefonliste beliebiger
g.drawString("Hello World!",30,30); import java.util.*; Eingabestrom
Klasse im
} public class TelefonListe { import java.io.*;
private static ArrayList <String> liste
selben Paket public class TextAusDateiLesen{
public void destroy(){sound.stop();}
} = new ArrayList <String> (); public static void main (String [] args)
Von einer Ja Nein Nein Nein throws IOException {
public static void addList() {
liste.add(Console.inpString()); beliebiger String datei = "Die_zwei_Wurzeln.txt";
} Klasse FileReader fr = new FileReader(datei);
GdProg 1 – Formelsammlung

BufferedReader br = new BubbleSort Rekursiv System.out.println(i+"..."+z); Mulitplikation Iterativ


BufferedReader(fr); public static void main (String args[]) { z=z*2; pub. static int multiFor(int n, int fak){
System.out.println("Gedicht von Christian int[] werte = {3, 7, 1, 9, 2, 5, 2}; }// Ende for int erg = 0;
Morgenstern:"); werte = bubbleSort (werte); }// Ende if for( int k=0; k < fak; k++) {
while(br.ready()) for (int i = 0; i < werte.length; i++) } erg += n;
System.out.println(br.readLine()); { Zweierpotenz Rekusiv }
} System.out.print (werte[i] + " "); public static long zp(int n){ return erg;
} } long z = 2; }
} if(n > 1 && n< 64) {
Vorteile der Rekursion
Rekursion Fakultätsberechnung rekusiv
int rekursiv(int zahl){
z = 2*zp(n-1);
} • Eine rekursive Lösung ist natürlicher und
Rekursion Bezeichnet eine sich selbst aufrufende if (zahl == 1) // Abbruch bei 1 System.out.println(n + " " + z); dadurch klarer als eine iterative Lösung.
Methode mit einer Abbruchbedingung. return 1; return z; • Eine rekursive Lösung ist deutlich kürzer
Wenn sich Probleme in fast identische Teilprobleme else } als die iterative Variante.
return zahl * rekursiv(zahl - 1); „Türme von Hanoi“ Rekursiv
zerlegen lassen, dann sind diese oftmals durch • Die Korrektheit rekursiver Lösungen ist
}} hanoi(int n, int from, int to, int aux) {
rekursive Algorithmen lösbar. meist leichter zu überprüfen.
Fakultätsberechnung iterativer if(n == 1)
Beispiele int iterativ (int zahl){ System.out.println(n+": "+from Nachteile
Quicksort Rekusiv int i = 1; // Schleifenvariable +"->"+ to); • Die rekursive Lösung benötigt mehr
class QuickSort{ vereinbaren else { Speicherplatz. Sie kann dabei den
public static int[] quick(int[] reihe, int f = 1; // Variable für hanoi(n - 1, from, aux, to);
Zwischenprodukt System.out.println(n + ": " + from Laufzeitstack effizient ausnutzen.
int u, int o) {
int i = u, j = o, median; while (i <= zahl){ // + "-->" + to); • Bei grosser Rekursionstiefe steigt die
median = reihe[(u + o) >> 1]; Berechnungsschleife hanoi(n - 1, aux, to, from); Laufzeit stark an.
do { f = i * f; // Teilprodukt }
i++; // Schleifenzaehler erhoehen } Programmentwicklung
while (reihe[i] < median)
i++; } 1. Editieren 2. Compilieren 3. Ausführen
while (median < reihe[j]) return f; // Rueckgabe des
j--; Fakultaetswertes
if (i <= j) { }
int temp = reihe[j];
reihe[j] = reihe[i];
Potenz Iterativ
pub. static int potenzFor(int n, int pot){
Glossar
reihe[i] = temp; int erg = 0; Cast-Operator Dient der explizieten Zuweisung
i++; for( int k=0; k < pot; k++) { CLASSPATH Systemvariable die der JVM & JVC erweiternde Klassen sichtbar macht
j--; erg += n; Deklarierung Variable mit Typ und Bezeichner festlegen;
} }
} while (i < j); = Variable mit Typ und Bezeichner festlegen;
return erg;
if (u < j) }
import Dient zum Zum Sichtbarmachen anderer Klassen.
quick (reihe, u, j); public static long potenzWhile(int n) { Initialisierung Zuweisung eines Anfangswertes an eine Konstante oder Variable
if (i < o) long erg = n; Instanziierung Bereitst. von Speicherplatz f. Vari.
quick (reihe, i, o); while(n > 2) { Instanzvariablen beschreiben die Eigenschaften einzelner Objekte einer Klasse. (gelten nur dort)
return reihe; erg += n-1; Java-Beans sind fertige Programmkomponnenten für die visuelle Entwicklung von Oberflächen
} n--;
} Java-Byte-Code Maschinenunabh. ProgCode, der vom Java-Compiler erzeugt u. auf jeder JVM
}
ausführbar
BubbleSort Iterativ return erg;
} JVM Software die Java-Byte-Code interpretiert und in Befehle für den Prozessor des
static int[] bubbleSort (int[] liste) {
boolean sortiert; Potenz Rekursiv
Rechners umsetzt.
do { public static int potRekursiv(int x, int Klassenvariablen (static) sind Attribute die für alle Instanzen der jeweiligen Klasse gültig sind.
sortiert = true; y){ Kommentar Ist eine Textzeile die rein Informativen Charakter hat.
for (int i = 0; i < liste.length – int result = 0; Kompilieren Umwandlung des Quellcodes.java in Bytecode.class
1; i++) { if(y == 0){ Konstante Eine Konstante ist im Gegensatz zur Variablen ein unveränderlicher Wert
if (liste[i] > liste[i + 1]) { result = 1; zugewiesen hat.
// Tauschen: }else{
int temp = liste[i]; Konstruktor
result = x * potRekursiv(x, y-1);
liste[i] = liste[i + 1]; Lokale Variablen gelten nur innerhalb einer Methode.
}
liste[i + 1] = temp; return result; Modifizierer Schlüsselwörter die die Zugriffsrechte auf Attribute, Methoden und Klassen
// Nicht sortiert! } beschreiben. (private, satic puiblic, protected)
sortiert = false; Rekursion Bezeichnet eine sich selbst aufrufende Methode mit einer Abbruchbedingung
Zweierpotenz Interativ ( 0 < n 64 )
} Sandbox gesicherten Speicherbereich mit begrenzten Ausführungsrechten für Applets
} public static void zp(int n){
} while (!sortiert); long z = 2; StringBuffer Zeichenkette vom Typ String bei der Veränderungen möglich sind
return liste; if(n<64) { Typenumwandlung Explizit Mit Cast Operator: int var = (float) var;
} for(int i = 1;i<=n; i++){ Typenumwandlung Implizit ohne Castoperator: int var = byte var;