Extrem kurzer Einstieg in die Programmierung mit Java



Ähnliche Dokumente
Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Anleitung über den Umgang mit Schildern

Primzahlen und RSA-Verschlüsselung

Hinweise zum Übungsblatt Formatierung von Text:

Mediator 9 - Lernprogramm

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Arbeiten mit UMLed und Delphi

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

1 Vom Problem zum Programm

Erstellen einer GoTalk-Auflage

Eigene Dokumente, Fotos, Bilder etc. sichern

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Wie halte ich Ordnung auf meiner Festplatte?

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Repetitionsaufgaben Wurzelgleichungen

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Grundlagen der Theoretischen Informatik, SoSe 2008

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Gezielt über Folien hinweg springen

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

Satzhilfen Publisher Seite Einrichten

Bedienungsanleitung für Mitglieder von Oberstdorf Aktiv e.v. zur Verwaltung Ihres Benutzeraccounts auf

PowerPoint: Text. Text

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

1 topologisches Sortieren

Professionelle Seminare im Bereich MS-Office

Programmierkurs Java

Leichte-Sprache-Bilder

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Erstellen von x-y-diagrammen in OpenOffice.calc

Hardware - Software - Net zwerke

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

1. Standortbestimmung

Übungen Programmieren 1 Felix Rohrer. Übungen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Gruppenrichtlinien und Softwareverteilung

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1 Mathematische Grundlagen

Pfötchenhoffung e.v. Tier Manager

Mit dem sogenannten Seriendruck können Etiketten und Briefe mit einer Adressdatei (z. B. Excel) verknüpft werden.

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Woche 1: Was ist NLP? Die Geschichte des NLP.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Gutes Leben was ist das?

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Unperfekthaus-Tutorial: Wordpress

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Datenbanken Kapitel 2

Kulturelle Evolution 12

4.1 Wie bediene ich das Webportal?

Abwesenheitsnotiz im Exchange Server 2010

1.Unterschied: Die Übungen sind nicht von deinem Mathe-Lehrer...

Erstellen der Barcode-Etiketten:

Der Kalender im ipad

Was man mit dem Computer alles machen kann

Das Leitbild vom Verein WIR

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Thunderbird herunterladen, Installieren und einrichten Version (portable)

Gratis Excel SVERWEIS Funktions-Anleitung, Tutorial, ebook, PDF-E-Book

COMPUTERIA VOM SERIENBRIEFE UND ETIKETTENDRUCK

Einführung in Powerpoint M. Hasler Wie erstelle ich eine Präsentation mit Powerpoint? - Eine Kurzanleitung

Diese Anleitung zeigt dir, wie du eine Einladung mit Microsoft Word gestalten kannst.

Zahlen auf einen Blick

Viele Bilder auf der FA-Homepage

Einleitung. Hauptteil. Wir befinden uns nun im Demoarchiv.

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Informationsblatt Induktionsbeweis

25 kann ohne Rest durch 5 geteilt werden! ist wahr

Die besten Excel-Tastenkombinationen im Überblick

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Tevalo Handbuch v 1.1 vom

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Rock-Band. Einleitung. Scratch. In diesem Projekt lernst du, wie du deine eigenen Musikinstrumente programmieren kannst! Activity Checklist

Anleitung Homepage TAfIE

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Animationen erstellen

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Fitswork Kometenbilder aufaddieren Oliver Schneider,

BaseCamp OS X, Zümo 590 und die unterschiedliche Punkte in einer Route:

Microsoft Access 2010 Navigationsformular (Musterlösung)

Datensicherung. Beschreibung der Datensicherung

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Ich möchte eine Bildergalerie ins Internet stellen

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Was tust du auf Suchmaschinen im Internet?

Transkript:

Extrem kurzer Einstieg in die Programmierung mit Java Material für die Vorbereitungskurse Felix-Klein-Gymnasium Göttingen Andreas Flemming, November 2008

Was ist ein Computerprogramm? mit Java Auch in Zeiten objektorientierter Programmierung ist es nach wie vor dasselbe: Eingabe, Verarbeitung und Ausgabe (Programmierer verstehen unter dem EVA-Prinzip also etwas völlig anderes als Frau Herman). Die eigentliche Herausforderung ist der mittlere Schritt. Um aus Eingangsdaten Ausgangsdaten zu machen, bedarf es eines Plans. Dieser Plan heißt Algorithmus. Beispiel: Man möchte testen, ob es sich bei einer Zahl um eine Primzahl handelt. Man braucht also einen Algorithmus, um die betreffende Zahl zu testen. Das Finden dieses Algorithmus' ist nicht immer ganz einfach und soll im nächsten Kapitel erfolgen. Wie entwickelt man ein Programm? Viele Programmieranfänger stürzen sich, nachdem die Aufgabe verkündet wurde, auf die Rechner. Das ist falsch! Wie so oft hat man eine ungefähre, aber keine brauchbare Idee. Wenn man versucht, Ideenfindung und Umsetzung gleichzeitig am Rechner zu erledigen, verzettelt man sich. Wie geht man also am Besten vor? Zuerst braucht man einen Zettel und einen Stift. Denken ohne Zettel und Stift ist kaum möglich! Als nächstes braucht man eine Grundidee. Diese besteht oft nur aus ein bis zwei Sätzen. Es empfiehlt sich, diese Idee als Satz aufzuschreiben. Gedanken im Kopf sind immer wirr. Erst wenn sie ausgesprochen oder aufgeschrieben werden müssen, konkretisieren sie sich zu etwas Brauchbarem. Beispiel: Wir wollten testen, ob es sich um eine Primzahl handelt. Primzahlen sind nur durch 1 und durch sich selbst teilbar. Also müssen wir mit allen Zahlen von 2 bis zur Hälfte der Zahl (denn danach wird der Teiler ja kleiner als 2) testen, ob die Division aufgeht. Teste alle Zahlen von 2 bis x/2, ob die Division aufgeht. Nun mag man sich fragen, ob man die 6 noch testen muss, wenn die 3 schon nicht funktioniert hat. Ja, das machen wir. Denn das Programm soll einfach sein! Und Rechenzeit ist eigentlich genug da. Zumindest für unsere einfachen Aufgaben. Als nächstes muss der Algorithmus aufgeschrieben werden. Dazu gibt es verschiedene Möglichkeiten. Man kann einen Text schreiben. Das ist oft sehr exakt, aber auch unübersichtlich. Man kann Struktogramme malen. Die sind aber zu starr für einen kreativen Prozess wie Programmplanung. Eine weitere (und oft verwendete) Variante ist die des formlosen Programmaublaufplans. Man schreibt einfach in Stichworten, was zu tun ist und verbindet dies durch Pfeile. Die Abarbeitung kann man mit dem Finger im Plan verfolgen. Das nachfolgende Bild zeigt dies.

Denn mit 2 geht es los. Programm verlassen zahl ist die zu testende Zahl i = 2 solange i <= (zahl / 2) ja zahl mod i = 0? nein Abbruch, i = i + 1 keine Primzahl Ausgabe, dass Primzahl Alle Zahlen bis zur Hälfte testen. Modulo steht für Restdivision. Ist der Rest 0, ging die Division auf. nächste Zahl Hierher kommen wir nur, wenn alle Zahlen erfolglos getestet wurden. Was passiert? Es gibt eine Art Wiederholung, der Programmierer spricht von Schleife. Diese beginnt bei solange und endet beim Anfang des Rückpfeiles. Am Anfang sagt man, wie oft oder wie lange die Schleife durchlaufen wird. Die Schleife sorgt dafür, dass wir nicht für jede Zahl einen Test schreiben müssen. Dazu muss die Zahl aber allgemein, also unter einem Namen gespeichert werden. Diese Speicher nennt man Variable (wie in der Mathematik). Wir haben zwei: zahl zum Merken der Testzahl und i zum Merken des aktuellen Teilers. Um zu prüfen, ob die Division aufgeht, nutzen wir die Restdivision (Modulo). Beispielsweise ist 5mod 3=2, denn 5:3 liefert den Rest 2. Geht die Division auf, ist es keine Primzahl. Alle anderen Zahlen brauchen wir nicht zu testen, wir können das Programm abbrechen. Hier haben wir ein weiteres wesentliches Element gesehen: die Verzweigung. Fassen wir die Theorie mal zusammen. Was sind wesentliche Elemente eine Programmes? Variable. Programme müssen Zahlen (und später auch Zeichen und Text) speichern. Diese Speicher nennt man Variable. Das kennt man vom Taschenrechner. Variablen brauchen Namen, die man frei wählen kann. Ausdrücke. Das sind Terme und Rechenausdrücke der Mathematik. Möchte man testen, ob der Inhalt der Variablen x kleiner als 3 ist, schreibt man x/3. Möchte man den Inhalt einer Variablen erhöhen, so schreibt man x=x+1. Verzweigungen. An bestimmten Stellen will man den Programmfluss aufspalten. Ist eine Bedingung erfüllt, soll das eine, wenn nicht, das andere erledigt werden. Hier schreibt man die zu testende Bedingung und verzweigt dann mit ja und nein. Schleifen. Oftmals sind viele gleichartige Dinge zu erledigen. Wir machen einen Divisionstest, aber mit vielen Zahlen. Sollen wir wirklich für jeden Teiler ein Programmstück schreiben? Dann sind wir ohne Computer schneller! Also schreiben wir unseren Code allgemein mit Variablen und ändern nur den Inhalkt der Variablen. 3

Das war's. Wirklich? Na, nicht ganz. Aber diese Elemente bieten fast alle Computersprachen und das Wesentliche kann man damit erledigen. Der Rest besteht aus technischen Details der Bibliotheken für Sonderaufgaben. Hat man also dies verstanden, kommt man mit vielen Programmiersprachen auf Anhieb zurecht. Was ist Java? Bis jetzt sind wir sehr allgemein geblieben. Wir haben uns um Programmierung gekümmert, ohne einen Computer zu verwenden. Jetzt muss unsere Idee getestet werden. Dazu brauchen wir eine Sprache, in welcher wir unser Programm schreiben. Java ist weit verbreitet, eigentlich ganz ok und es gibt viele freie Werkzeuge. Auf die technischen Details der jeweiligen Entwicklungsumgebung verzichten wir vorerst. Zuerst schauen wir uns an, wie unsere Programmbestandteile in Java aussehen. Das Zusammenfassen von mehreren Teilen zu einem Block geschieht in Java mit geschweiften Klammern. Variable. Programmiersprachen unterscheiden oftmal verschiedene Typen. Java kennt Zahlen ohne Komma (int) zum Zählen, Kommazahlen zum Rechnen (double, float) und Wahrheitswerte (boolean). Die Festlegung erfolgt durch Typ und Name. int i; double zahl; Ausdrücke. Die schreibt man fast wie gewohnt. Es gibt aber einige Besonderheiten. Das Gleichheitszeichen ist die Zuweisung (a soll den Wert 3 bekommen: a=3). Davon muss der Computer den Test, ob a gleich 3 ist, unterscheiden können. Deshalb schreibt man einen Test mit 2 Gleichheitszeichen. Ungleich, größer gleich und kleiner gleich sehen so aus:!=, >=, <=. Verzweigungen. Sprechen würde man: Wenn Bedingung wahr ist, dann dieses sonst jenes. Und so schreibt man das auch: if (a == 3)... hier steht, was getan werden soll, wenn a 3 ist... else... hier steht, was getan werden soll, enn a ungleich 3 ist. Diesen Teil (ab else) kann man auch weglassen... Schleifen. Eine Wiederholung muss einen Anfang, eine Abbruchbedingung und ein Ende haben. while (i < 10)... hier steht, was getan werden soll, solange i kleiner als 10 ist. Achtung, wenn i kleiner als 10 ist, aber niemals in der Schleife verändert wird, läuft die Schleife ewig... Es gibt noch viele andere Variablentypen, Verzweigungen und Schleifenarten, die uns aber im Moment erstmal nicht interessieren sollen. Zum Schluss übersetzen wir mit dem bisherigen Wissen unsere Planung.

int zahl = Integer.valueOf(jTextField1.getText()); int i = 2; while (i <= zahl/2) if (zahl % i == 0) // Teiler gefunden jlabel1.settext("keine Primzahl"); return; i = i + 1; jlabel1.settext("primzahl!"); Die Eingabe, also das Auslesen des Inhaltes eines Textfeldes und die Ausgabe, also das Setzen des Textes eines Labels, sei schon mal mit eingebaut. Gleich wird klar, woher das kommt. Programmieren in Java Nachdem man nun weiß, wie ein Programm aussieht, kann man es in Java umsetzen. Dazu muss man einige Besonderheiten kennen. Computerprogramme sind meist auf einen Prozessor und ein Betriebssystem zugeschnitten. Java- Programme sollen aber überall lauffähig sein. Dazu muss es ein Programm geben, welches überall eine einheitliche Umgebung anbietet. Das ist die sogenannte Java-Maschine (java.exe). Weiterhin müssen Programme in eine Form gebracht werden, welche die Java-Maschine versteht. Diese Übersetzungsaufgabe erledigt der Java-Compiler (javac.exe). Ein Java-Programm muss nach jeder Änderung neu übersetzt werden. Java-Quelltexte haben die Endung java, die übersetzten Programme haben die Endung class. Oft werden die vielen Einzeldateien, die zu einem Javaprogramm gehören, in ein Archiv gepackt (Endung jar). Auf vielen Maschinen ist die Endung jar bereits mit der Java-Maschine verknüpft, so dass man die Programme mit einem Doppeklick starten kann. Ein Programmierer muss sich all diese Programme besorgen. Dabei hat er die Wahl zwischen verschiedenen Entwicklungsumgebungen. Im Folgenden soll das Vorgehen am Beispiel der Sun- IDE NetBeans demonstriert werden. Starte die IDE und erstelle ein neues Projekt, am besten eine Desktop-Application. Dazu muss ein Projektname und ein Verzeichnis, wo alle zum Projekt gehörenden Dateien gespeichert werden sollen, festgelegt werden. Um die Zahl einzugeben, braucht man ein Textfeld. Das Prüfen geschieht nach einem Buttonklick. Die Ausgabe erfolgt in eine Label. All diese Elemente findet man in der rechten Auswahlliste. Nach dem Anklicken kann man sie mit der Maus im Fenster platzieren und ihre Größe ändern. Das aktuelle Fensterelement hat Eigenschaften. Diese werden im Fenster unter der Liste dargestellt. Dort kann man z.b. den Text (Eigenschaft text) ändern. 5

Die Dateien des Projektes GUI-Editor mit einer Vorschau der Oberfläche Starte Programm Starte Programm mit Debugger Auswahl an Fensterelementen Die Hierarchie der Fensterelemente Ausgabe, z.b. Fehlermeldungen des Compilers Die Eigenschaften des aktuellen Elementes (hier Button Los ) Nun ist die Oberfläche gebaut, aber unser Code muss noch eingegeben werden. Der Test soll genau dann ausgeführt werden, wenn der Button gedrückt wird. Diese Stelle der Ereignisbehandlung erreicht man, wenn man mit der rechten Maustaste auf den Button klickt und Events Action actionperformed auswählt. NetBeans schaltet danach sofort in das Quelltextfenster. Dort kann man den Code eingeben.

Wie sucht und findet man Fehler? Es gibt zwei Arten von Fehlern: Schreib- und Denkfehler. Schreibfehler findet der Compiler. Klammern wurden vergessen, ein Codebereich ist nicht erreichbar oder irgendwo steht eine Variable, die der Compiler nicht kennt. Erst wenn man all diese Schreibfehler beseitigt hat, kann der Compiler ein fertiges Programm erstellen. Glücklicherweise bekommt man mehr oder weniger verständlich gesagt, wo das Problem liegt. Tückischer sind da Denkfehler. Diese erkennt man daran, dass das Programm abstürzt, festhängt oder nicht macht, was man erwartet. Diese Fehler kann man unter anderem mit einem Debugger finden. Ein Debugger verfolgt die Programmausführung. So kann man Zeile für Zeile durch das Programm gehen und sich die Inhalte der Variablen anschauen. Um mit dem Debugger zu arbeiten, startet man das Programm nicht mit Run (Grüner Pfeil), sondern mit Debug (kleiner grüner Pfeil mit Zeilen rechts daneben). Vorher muss man jedoch einen Breakpoint setzen. Damit sagt man, beim Erreichen welcher Zeile der Debugger unterbrechen und dem Programmierer die Kontrolle übergeben soll. Diese Unterbrechungen setzt man einfach, indem man mit der Maus auf den linken Rand der Zeile klickt. Stoppt der Debugger, kann man mit F8 schrittweise das Programm abarbeiten. Mit F7 kann man in eine Routine springen, mit F5 geht es weiter bis zum nächsten Breakpoint. Was sind typische Schreibfehler? ':' expected Semikolon vergessen. Siehe Fehler 1 cannot find Symbol das Wort ist unbekannt; eine Variable wurde nicht deklariert oder eine Variable bzw. ein Befehl wurde falsch geschrieben; Fehler 2 xxx ist already defined es wurde versucht, eine Variable erneut zu deklarieren, obwohl sie schon existiert; Fehler 3 incompatible types die rechte Seite eines Ausdruckes passt nicht zum Typ der Variable unreachable statement ein Programmstück kann nicht erreicht werden, weil z.b. vorher ein return steht; Fehler 4 int zahl = Integer.valueOf(jTextField1.getText()); int i = 2 while (i <= zahl/2) 1: ; vergessen if (Zahl % i == 0) 2: Z statt z, erkennt Variable nicht // Teiler geunden jlabel1.settext("keine Primzahl"); return; int i = i + 1; 3: i gibt es schon return; jlabel1.settext("primzahl!"); 4: da kommt er nicht hin, denn vorher steht return 7

Was sind typische Denkfehler? Programm stürzt ab Unbedingt die Meldung anschauen und das Programm im Debugger starten. Möglich sind Divisionen durch 0, nicht vorhandene Dateien, das Bearbeiten leerer Zeichenketten, nicht vorhandene Objekte u.ä. Java gibt meist sehr genaue Hinweise. Programm reagiert nicht könnte eine Endlosschleife sein; z.b. weil das Ändern der Zählvariablen vergessen wurde. Siehe dazu die Zeile zu Schreibfehler 3. Java und Texte Zum Schluss soll noch kurz auf Texte eingegangen werden. Genau so, wie sich Variablen Zahlen merken können (double, int, float,...), können sie sich auch Zeichen (char) merken. Intern ist dies natürlich nur eine Zahl, aber es gibt eine Codierung (ASCII), welche angibt, welcher Buchstabe zu welcher Zahl gehört. char z = 'a'; // beachte die einfachen Hochkommas Allerdings hat man es oft mit Texten statt Buchstaben zu tun. Dann spricht man von einer Zeichenkette bzw. string. Dazu gibt es einen Typ String. String text = "Oma"; // beachte die doppelten Hochkommas Das ist eigentlich ein Objekt, also eine Sammlung verschiedenster Daten. Für uns ist nur wichtig, dass wir das Objekt um Dinge bitten können. Z.B.kann man die Länge ermitteln int laenge = text.length(); oder sich ein Zeichen an einer Position geben lassen: char z = text.charat(2); Achtung, Java beginnt beim Zählen mit der 0. text.charat(3) würde bei unserem Beispiel nicht funktionieren, weil Oma nur drei Buchstaben (0-2) hat. Zeichenketten kann man auch addieren: text = text + '!'; oder text = text + ", mach mir mal einen Kaffee!"; Achtung, wenn ich testen will, ob eine Zeichenkette einen bestimmten Inhalt hat, jmacht man dies nicht mit ==, sondern mit equals: if (text.equals("oma"))... Das war's erstmal!