Gdprog1_spicker_ws2008

  • Uploaded by: Dirk van Molwentop
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Gdprog1_spicker_ws2008 as PDF for free.

More details

  • Words: 1,449
  • Pages: 3
GdProg 1 – Formelsammlung "WelchWunderschoenerTag.au");

Datentypen Bez boolean char byte short int long float

Byte 1 Byte 2 Byte 1 Byte 2 Byte 4 Byte 8 Byte

Werte true/false Unicode 27..27-1 215..215-1 231..231-1 263..263-1 104 Byte 38..1038

Ganz ja ja ja ja ja ja

VZ nein nein ja ja ja ja

nein ja

picture = getImage(getCodeBase(),

Stel 1 1 3 7 10 19

"Sonnenaufgang.jpg");

Beispiele: catch(ArrayIndexOutOfBoundsException e){} catch(ArithmeticException e) { //DivNULL} catch(IOException e) { // Eingabefehler} catch(NumberFormatException e) {//Zahl? }

Wir eingebunden durch java.lang;

Applet GutenMorgen JAVA-CODE: import java.applet.*; import java.awt.*; public class GutenMorgen extends Applet { AudioClip sound; public void init() { sound = getAudioClip(getCodeBase(),

Mehrfachverzweigung

sound.loop();}

public void stop(){

sound.stop();}

break;

public void destroy(){sound.stop();}

HTML-CODE:
Sequenz & Verzweigung Zählschleife for( int i = 0; i <= feld.length; i++) {System.out.println(feld[i]);} System.out.println("Anz.: "feld.legth()); for( feld : zugriffsvariable}

Ausgabe der von des aktuellen Wertes von t, Sinus von t und Cosinus von t solange bis PI erreicht ist.

int i = 1; while ( i <= 10) { i++; } do { i++; } while(i<=10);

showList(); } }

ArrayList ermöglichen Referenzielle Datentypen (Felder) welche Daten mit verschiedenen Datentypen enthält import java.util.*;

Typ[] Name = new Typ[Anzahl];

class {private static ArrayList

Typ Name[] = new Typ[Anzahl];

liste = new ArrayList ();

Beispiel

methode() {liste.add(new

String [] mystring =

String);list.set(index,WERT);liste.remove(

{"eins","zwei","drei"}

index)

mystring[2] = "vier";

try {

System.out.println("Anz"+mystring.lenght);

for (Iterator e = liste.iterator () ;

ArrayList in Telefonliste

e.hasNext () ;) {

import java.util.*; public class TelefonListe { private static ArrayList <String> liste = new ArrayList <String> (); public static void addList() { liste.add(Console.inpString());

{System.out.println(zugriffsvaiable);}

Bedingungsschleife

addList();

Aufgabenbeispiel

Array

Die HTML und der ByteCode befinden sich im selben Verzeichnis.

addList(); countList();

width=300 height=120 alt="Applet



args) {

}

Array und ArrayList

<param name="text" value="Parammeter!">

public static void main (String []

doSomeThing();

code="GutenMorgen.class" futsch.">

}

default:

g.drawString("Hello World!",30,30);

}

\n+"+liste.toString());

doSomeThing();

g.drawImage(picture, 0, 0, this); }

System.out.println("Die Liste enthaelt folgenden Inhalt

case 's':

public void paint(Graphics g) {

Exception Handling

Image picture;

public void start({

public static void showList() {

if(true) {} else {}

switch(antwort) {

}

6..7

a) Wie wird dieses Konzept bezeichnet ? Ausnahmebehandlung / Expection Handling b) Was wird mit diesem Sprachelement erreicht ? Abfangen von Laufzeitfehlern. Bedeutung Schlüsselworte: try Beginn des geschützten Bereichs catch Kennzeichnet den Beginn des Blocks zum Auffangen und Reagieren auf Fehler. finally Wird auf jedenfall ausgeführt throws "Wirft" die Exception an höhrere Methode. Throw Bietet Möglichkeit, selber Exceptions auszulösen.

Verzweigungen

} public static void countList(){ System.out.println("Die Liste enthaellt " + liste.size() + " Eintraege."); }

zeigerInt = liste.indexOf(e.next());}} }}

Typumwandlung (auch Typ-Konvertierung, Typ-Casting, TypKonversionen) Typeinengungen (engl. casting) kann es zu Informationsverlusten kommen. Typeinengungen sind immer explizit anzuweisen. Dazu dient der cast-Operator. double i = 12345678; 012 int d = (int) i;

GdProg 1 – Formelsammlung

Modifizierer Erreichbark eit

publi protecte defau c d lt

privat e

Innerhalb derselben Klasse

Ja

Ja

Von einer beliebiger Klasse im selben Paket

Ja

Von einer beliebiger Klasse außerhalb des Pakets

Ja

Von einer Subklasse im selben Paket

Ja

Von einer Subklasse außerhalb des Pakets

Ja

Ja

Ja

Ein- und Ausgabe

Rekursion

Console

Rekursion Bezeichnet eine sich selbst aufrufende Methode mit einer Abbruchbedingung. Wenn sich Probleme in fast identische Teilprobleme zerlegen lassen, dann sind diese oftmals durch rekursive Algorithmen lösbar.

i++;

Beispiele

int temp = reihe[j];

Quicksort Rekusiv

reihe[j] = reihe[i];

import Console.java; class { methode() { zahl = Console.getInt("Bitte geben sie

Ja

Ja

Nein

eine Zahl ein!"); }}

class QuickSort{

Klassisch Nein

Nein

Nein

public static int[] quick(int[] reihe,

import java.io.*; class { methode()

throws IOException {

BufferedReader br = new BufferedReader(new

Ja

Ja

Nein

InputStreamReader(System.in)); System.out.print("Bitte geben Sie Ihren Vornamen ein: ");

Ja

Nein

Nein

Variablentypen Lokale Variablen class{ methode() { float EineKlassenVariable;} } Klassenvariablen class{ static float EineKlassenVariable; } Instanzvariablen class{ float EineKlassenVariable; } // Zugriff mit this.EineKlassenVariable; Konstanten class{ methode() { final float konstentenVariable;} }

Zeichen & Zeichenketten

vorname = br.readLine(); }}

Dateien und Datenströme Eingabestrom import java.io.*; public class TextAusDateiLesen{ public static void main (String [] args) throws IOException { String datei = "Die_zwei_Wurzeln.txt"; FileReader fr = new FileReader(datei); BufferedReader br = new BufferedReader(fr); System.out.println("Gedicht von Christian

String var = new String("Zeichenkette"); Strng var = "Zeichenkette";

Morgenstern:");

char var = 'z'; // einfache Anf.Zeichen

while(br.ready())

int var = 4; // keine Anführungszeichen

System.out.println(br.readLine()); } }

int u, int o) {

while (reihe[i] < median) while (median < reihe[j]) j--; if (i <= j) {

reihe[i] = temp; i++; j--;

int i = u, j = o, median;

}

median = reihe[(u + o) >> 1];

} while (i < j);

do {

Glossar Cast-Operator Dient der explizieten Zuweisung CLASSPATH Systemvariable die der JVM & JVC erweiternde Klassen sichtbar macht Deklarierung Variable mit Typ und Bezeichner festlegen; = Variable mit Typ und Bezeichner festlegen; import Dient zum Zum Sichtbarmachen anderer Klassen. Initialisierung Zuweisung eines Anfangswertes an eine Konstante oder Variable Instanziierung Bereitst. von Speicherplatz f. Vari. Instanzvariablen beschreiben die Eigenschaften einzelner Objekte einer Klasse. (gelten nur dort) Java-Beans sind fertige Programmkomponnenten für die visuelle Entwicklung von Oberflächen Java-Byte-Code Maschinenunabh. ProgCode, der vom Java-Compiler erzeugt u. auf jeder JVM ausführbar JVM Software die Java-Byte-Code interpretiert und in Befehle für den Prozessor des Rechners umsetzt. Klassenvariablen (static) sind Attribute die für alle Instanzen der jeweiligen Klasse gültig sind. Kommentar Ist eine Textzeile die rein Informativen Charakter hat. Kompilieren Umwandlung des Quellcodes.java in Bytecode.class Konstante Eine Konstante ist im Gegensatz zur Variablen ein unveränderlicher Wert zugewiesen hat. Konstruktor Lokale Variablen gelten nur innerhalb einer Methode. Modifizierer Schlüsselwörter die die Zugriffsrechte auf Attribute, Methoden und Klassen beschreiben. (private, satic puiblic, protected) Rekursion Bezeichnet eine sich selbst aufrufende Methode mit einer Abbruchbedingung Sandbox gesicherten Speicherbereich mit begrenzten Ausführungsrechten für Applets StringBuffer Zeichenkette vom Typ String bei der Veränderungen möglich sind Typenumwandlung Explizit Mit Cast Operator: int var = (float) var; Typenumwandlung Implizit ohne Castoperator: int var = byte var;

GdProg 1 – Formelsammlung if (u < j) quick (reihe, u, j);

BubbleSort Rekursiv public static void main (String args[]) { int[] werte = {3, 7, 1, 9, 2, 5, 2};

if (i < o)

}

boolean sortiert; do {

Fakultätsberechnung rekusiv int rekursiv(int zahl){ if (zahl == 1) // Abbruch bei 1 return 1;

// Tauschen: int temp = liste[i]; liste[i] = liste[i + 1]; liste[i + 1] = temp; // Nicht sortiert! sortiert = false; } } } while (!sortiert);

hanoi(n - 1, from, aux, to);

}

public static void zp(int n){

erg += n; return erg;

Vorteile der Rekursion

if(n<64) {

•Eine rekursive Lösung ist natürlicher und dadurch klarer als eine iterative Lösung. •Eine rekursive Lösung ist deutlich kürzer als die iterative Variante. •Die Korrektheit rekursiver Lösungen ist meist leichter zu überprüfen.

System.out.println(i+"..."+z); z=z*2; }// Ende for

Fakultaetswertes

}

return erg; }

long z = 2; for(int i = 1;i<=n; i++){

return f; // Rueckgabe des

for( int k=0; k < pot; k++) {

}

}

Zweierpotenz Interativ ( 0 < n 64 )

}

int erg = 0;

erg += n;

return result;

i++; // Schleifenzaehler erhoehen

pub. static int potenzFor(int n, int pot){

for( int k=0; k < fak; k++) {

}

f = i * f; // Teilprodukt

Potenz Iterativ

int erg = 0;

result = x * potRekursiv(x, y-1);

Berechnungsschleife

}

pub. static int multiFor(int n, int fak){

}else{

vereinbaren

}

}

Mulitplikation Iterativ

result = 1;

int i = 1; // Schleifenvariable

return liste;

}

if(y == 0){

int iterativ (int zahl){

while (i <= zahl){ //

hanoi(n - 1, aux, to, from); int result = 0;

}}

Zwischenprodukt

+ "-->" + to);

y){

Fakultätsberechnung iterativer

int f = 1; // Variable für

System.out.println(n + ": " + from

public static int potRekursiv(int x, int

return zahl * rekursiv(zahl - 1);

if (liste[i] > liste[i + 1]) {

else {

Potenz Rekursiv

else

1; i++) {

+"->"+ to);

} return erg;

}

for (int i = 0; i < liste.length –

System.out.println(n+": "+from

n--;

}

sortiert = true;

if(n == 1)

erg += n-1;

System.out.print (werte[i] + " ");

static int[] bubbleSort (int[] liste) {

hanoi(int n, int from, int to, int aux) {

while(n > 2) {

{

}

}

„Türme von Hanoi“ Rekursiv

long erg = n;

for (int i = 0; i < werte.length; i++)

BubbleSort Iterativ

return z;

public static long potenzWhile(int n) {

werte = bubbleSort (werte);

quick (reihe, i, o); return reihe;

}

Nachteile

}// Ende if }

Zweierpotenz Rekusiv public static long zp(int n){ long z = 2;

Programmentwicklung 1. Editieren 2. Compilieren 3. Ausführen

if(n > 1 && n< 64) { z = 2*zp(n-1); } System.out.println(n + "

•Die rekursive Lösung benötigt mehr Speicherplatz. Sie kann dabei den Laufzeitstack effizient ausnutzen. •Bei grosser Rekursionstiefe steigt die Laufzeit stark an.

" + z);

More Documents from "Dirk van Molwentop"