Informatik

Schwerpunkte der Informatik

1Theoretische Informatik
Die theoretische Informatik befasst sich mit den mathematischen Modellen zur Informationsverarbeitung. Es werden beispielsweise automatische Beweiser für Axiomensysteme beschrieben.
2Praktische Informatik
Die praktische Informatik befasst sich mit der Entwicklung von Methoden zur Unterstützung von Programmierern.
3Technische Informatik
Es wird der Aufbau und der Entwurf von Computern und weiteren Geräten behandelt, beispielsweise solche der Robotik.
4Angewandte Informatik
Die angewandte Informatik behandelt die Automatisierung von Abläufen des täglichen Lebens.

Grundlagen der Informatik

1Elementare Begriffe
Befehl: Ein Befehl ist eine elementare Anweisung bzw. Vorschrift wie Daten zu bearbeiten sind. Er stellt sozusagen ein Arbeitsschritt des ausführenden Computers dar.
Programm: Ein Programm ist eine Abfolge von Befehlen zur Lösung einer Aufgabe.
Daten: Informationen, die durch einen Befehl bzw. ein Programm zu bearbeiten sind.
Speicher: ein Speicher dient der Aufnahme, der Aufbewahrung und Abgabe von Daten und Befehlen.
2Von-Neumann-Maschine
Bei der Von-Neumann-Maschine handelt es sich um ein abstraktes Konzept, das aus folgenden Elementen besteht:

Speicher: Im Speicher ist das Programm und die zu bearbeitenden Daten abgespeichert. Zentrale Einheit: Die zentrale Einheit umfasst die Verarbeitungseinheit und die Steuereinheit. Verarbeitungseinheit: Diese Einheit nimmt die Verarbeitung der Daten entsprechend der Anweisungen der Steuereinheit vor. Steuereinheit: steuert die Verarbeitungseinheit. Außerdem gibt es noch eine Eingabeeinheit und eine Ausgabeeinheit, die für die Eingabe von Daten und Programme in den Speicher bzw. die Ausgabe von Daten und Programmen aus dem Speicher verantwortlich sind.
3ASCII-Code
ASCII steht für American Standard Code for Information Interchange. ASCII ist ein 7-Bit-Code, der der Darstellung von Ziffern, Buchstaben und Sonderzeichen dient. Mit einem 7-Bit-Code können gerade einmal 128 Zeichen unterschieden werden.

Aufbau eines Computers

1Computersystem
Ein Rechensystem dient der Verarbeitung und Aufbewahrung von Daten. Eine Verarbeitung bedeutet, dass mathematische, umformende, übertragende oder speichernde Operationen durchgeführt werden.
2Hardware und Software
Mit der Hardware sind sämtlichen apparitiven Vorrichtungen gemeint, also der Rechner, Drucker, der Bildschirm und sonstige Peripheriegeräte.

Die Software ist die Gesamtheit der Programme und Daten eines Computersystems.
3Eingabegerät, Ausgabegerät, Peripheriegeräte, Zentraleinheit
Mit einem Eingabegerät werden Daten in das Computersystem eingegeben. Mit dem Ausgabegerät können Daten aus dem Computergerät ausgelesen werden.

Peripheriegeräte können Vorrichtungen zur Eingabe oder zur Ausgabe von Daten und Programmen aus dem Computersystem sein.

Die Zentraleinheit umfasst die Mikroprozessoren, EIngabe-/Ausgabe-Werke und den Zentralspeicher.
4Mikroprozessor
Der Mikroprozessor ist für die Abarbeitung eines Programms zuständig.

Ein Programm ist eine nach den syntaktischen Vorschriften einer Programmiersprache, beispielsweise Java, Sequenz von Anweisungen, die zur Lösung einer Aufgabe geeignet ist.

Ein Mikroprozessor umfasst ein Rechenwerk und ein Steuerwerk.

Ein Rechenwerk führt die arithmetischen Operationen, wie Addition, Subtraktion, Multiplikation und Division, durch. Außerdem können von einem Rechenwerk logische Operationen wie UND, ODER und NICHT-Verknüpfungen ausgeführt werden.

Das Steuerwerk eines Mikroprozessors hat die Aufgaben, die Programmbefehle des auszuführenden Programms in das Rechenwerk zu laden, die geladenen Befehle zu decodieren und die Befehle zu interpretieren.
5Interne Rechnerbusse
Ein Rechnerbus ist eine Sammelleitung zur Datenübertragung zwischen den einzelnen Elementen, also Rechner, Drucker, Bildschirm und Peripheriegeräte, eines Computersystems.

Ein Rechnerbus kann bidirektional und unidirektional ausgebildet sein. Ein Rechnerbus ist bidirektional, falls Informationen nur in eine Richtung übermittelt werden können. Der Rechnerbus ist bidirektional, falls Informationen in beide Richtungen vermittelt werden können, also beispielsweise Steuersignale vom Rechner zum Drucker und ein Feedback zurück zum Rechner.

Eine Busstruktur hat für das Computersystem erhebliche Vorteile:
- es können problemlos weitere Geräte an das Computersystem angeschlossen oder wieder abgetrennt werden.
- die einzelnen Elemente eines Computersystem können individuell konfiguriert werden, ohne dass die anderen Elemente eines Computersystems davon betroffen sind.

Allerdings gibt es auch Nachteile der Busstruktur:
- es gibt nur einen Verbindungsweg, sodass der Zugriff auf den Bus gemanagt werden muss. Dieses Management wird Busarbitrierung genannt. Es ist daher zunächst die Anforderung des Buszugriffs notwendig. In einem nächsten Schritt wird der anfordernden Einheit der Buszugriff erlaubt. Erst danach wird der Zugriff auf den Rechnerbus gestattet.
- Wird der Bus gerade genutzt, müssen alle Elemente auf einen Buszugriff warten.
- Alle Elemente eines Computersystems können sämtliche Daten auf dem Rechnerbus sehen, was bezüglich dem Datenschutz problematisch sein kann. - die langsamste Komponente des Computersystems bestimmt die maximale Geschwindigkeit des Rechnerbuses. Würden Daten schneller übertragen werden, könnte die langsamste Komponente diese nicht mehr verstehen und unkontrolliert den Rechnerbus beaufschlagen.
6Rechnerspeicher
Der Rechnerspeicher kann in den Arbeitsspeicher und den externen Speicher unterschieden werden.
Der Arbeitsspeicher dient dem Mikroprozessor, also dem Rechenwerk und dem Steuerwerk, zur Verarbeitung der Daten und zur Speicherung der einzelnen gerade auszuführenden Programmanweisungen.

In den externen Speicher werden diejenigen Daten und Programmbefehle ausgelagert, die nicht aktuell benötigt werden.
7Software

Bei der Software kann zwischen dem Betriebssystem und Anwendungssoftware unterschieden werden.

Das Betriebssystem ist für die korrekte Arbeitsweise des Computersystems zuständig. Es managet die einzelnen Teile des Computersystems und überwacht die Abarbeitung der Programme und die Bearbeitung der Daten.

Die Anwendungssoftware ist letzten Endes das, was der Anwender benötigt, um die Aufgabe durch das Computersystem gelöst zu bekommen. Eine Anwendungssoftware ist beispielsweise ein Buchhaltungsprogramm oder ein Textverarbeitungsprogramm.

8Programmiersprachen

Eine Programmiersprache ist eine Sprache mit der Anweisungen an ein Computersystem verfasst werden können.

Eine Programmiersprache ist von einem Mikroprozessor nicht direkt verständlich. Stattdessen muss die Programmiersprache noch in eine maschinenlesbare Zeichen, also Nullen und Einsen, übersetzt werden. Diese Übersetzung kann auf dreierlei Weise erfolgen. Zum einen kann vor dem Start des Programms, das Programm komplett übersetzt werden. Alternativ können die Anweisungen erst dann übersetzt werden, wenn sie zur Abarbeitung anstehen. In erstem Fall wird ein Compiler eingesetzt, im zweiten Fall ein sogenannter Interpreter.

Die dritte Variante ist ein Kompromiss, der beispielsweise bei der Programmiersprache Java angewandt wird.

Außerdem gibt es Linker, die mehrere lauffähige Programmpakete zu einem größeren lauffähigen Programm zusammensetzen kann.

Debugger dienen dazu, dass ein Programm auf Fehler (Bugs) untersucht werden kann.

Funktionsweise eines Computers

1Software
2Darstellung von Information
3Von-Neumann-Computer

Die Programmiersprache Java

1Anweisungen und Blöcke
Jedes Programm umfasst mehrere Anweisungen. Eine Gruppe von Anweisungen können zu einem Block zusammengefasst werden, der durch geschwungene Klammern abgeschlossen wird:


Block:
{Anweisung 1; Anweisung 2;}

zum Beispiel:
public class Willkommen
{

...
}
2Reservierte Wörter und Literale
Es gibt Worte, die Bestandteil der Programmiersprache sind. Diese Worte können nicht umgedeutet werden, etwa als Variablen genutzt werden. Beispiele hierfür sind: abstract, assert, boolean, break, byte, case, catch, char, class, continue, default, do, double, else, enum, extends, final, finally, float, for, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile und while.

Literale sind: false, true, null, 0, 1, -2, 2.0, "ABC"
3Kommentare
Ein Kommentar stellt keinen ausführbaren Programmschritt dar. Ein Kommentar dient allein der Erläuterung des Programms. Hierdurch soll die Verständlichkeit eines Programms verbessert werden.

In Java gibt es drei Arten Kommentare darzustellen:

- //.. es handelt sich um einen einzeiligen Kommentar

- /* ... */ bei dieser Kommentarart können auch mehrere Zeilen als Kommentare verwendet werden.

/** ... */ dieser Kommentar stellt ein Dokumentationskommentar dar, der stets direkt vor den Deklarationen von Klassen, Attributen oder Methoden geschrieben wird.

Java ignoriert Leerzeichen. Leerzeichen können daher zur Verbesserung der Lesbarkeit genutzt werden.
4Import-Anweisung
Fertige Java-Programme können in ein Programm eingebunden werden. Hierzu werden fertige Java-Programme in Verzeichnissen, den sogenannten Paketen, abgelegt.

Mit dem Import-Befehl, der stets am Anfang eines Programms stehen muss, erfolgt die Aufnahme der Java-Programme in das vorliegende Programm.

Ein Import-Befehl wird nicht durch geschwungene Klammern eingefasst.

Der Aufbau eines Programms in Java

1Überblick
Ein Java-Programm wird als Klasse bezeichnet und startet mit "public class" und dem Namen des Programms/der Klasse.

Ein Java-Programm besteht aus Teilelementen, die als Blöcke bezeichnet werden. Die Blöcke sind von geschwungenen Klammern umschlossen.

Der Startpunkt eines Java-Programms ist immer die main-Methode. Die nachfolgenden Anweisungen werden sequentiell abgearbeitet.
2Klassenname
Jedes Java-Programm wird als Klasse bezeichnet und weist einen Klassennamen auf. Dieser steht nach "public class".

Klassennamen beginnen mit einem Großbuchstaben. Sie werden in Dateien abgespeichert, die ebenso heißen mit der Extension ".java".
3Minimalversion einer Java-Applikation
public class Klassenname {
public static void main ( String [ ] args ) {
Deklarationen und Anweisungen;
}
}
4die Import-Anweisung des swing-Pakets
import javax.swing.JOptionPane;

....

JOptionPane.showMessageDialog(null, "Willkommen");
...

Hierdurch wird eine Dialogbox message dialog geöffnet und der nach der Konstanten null in Anführungszeichen eingeschlossenen Text wird angezeigt. Das reservierte Wort null gibt die Position des Dialogfensters in der Mitte des Bildschirms an.
5Strings
Ein Text, der in Anführunsgzeichen gesetzt wird, ist ein String:
"... Text"
6Escape-Sequenzen und Unicode
Es gibt Steuerzeichen, die nicht auf der Tastatur vorhanden sind.
Diese Steuerzeichen können durch eine Escape-Sequenz erreicht werden: \uxxx : Unicode-Zeichen
\n : line feed
\t : Tabulatorsprung
\\ : backslash \
\" : Anführungszeichen "
\´ : Hochkomma (Apostroph)
7Ausgabemöglichkeiten
In einem Java-Programm können beispielsweise folgende Ausgabemöglichkeiten gewählt werden:

system.out.print (...);
system.out.println (...); Ausgabe in einer Zeile
system.out.printf (...); formatierte Ausgabe
8Variablen, Datentypen, Deklarationen
Eine Variable ist ein Platzhalter. Es wird daher im Speicher ein Platz reserviert.
Durch eine Deklaration wird Variablen deren Format zugeordnet, beispielsweise: int t, k, l;
Durch die Deklaration weiß der Computer wieviel Platz er für die Variable reservieren muss. Bei einer integer-Variablen ist es deutlich weniger im Vergleich zu einer double-Variablen.
9Zuweisungsoperator
In der Programmiersprache Java erfolgt eine Wertzuweisung durch das Gleichheitszeichen "=". Das Gleichheitszeichen stellt daher den Zuweisungsoperator dar.
Durch den Zuweisungsoperator wird der Variablen auf der linken Seite des Gleichheitszeichens der Wert des Ausdrucks auf der rechten Seite des Gleichheitszeichens zugewiesen.
Es ergibt sich daraus, dass eine Addition oder Subtraktion zweier Werte stets auf der rechten Seite des Zuweisungsoperators stehen muss. Steht die Addition oder Subtraktion auf der linken Seite, macht das in Java keinen Sinn.
10Datentypen und Speichergröße
boolean : 1 Byte
char : 2 Byte
byte : 1 Byte
short : 2 Byte
int : 4 Byte
long : 8 Byte
float : 4 byte
double : 8 Byte
11Cast-Operator
Durch den Cast-Operator kann der Datentyp von Variablen geändert werden:

Beispielsweise:
double y = 4.5678;
int v = (int) y;
daraus ergibt sich für v der Wert von 4
12Spezielle arithmetische Operatoren
c += x; bedeutet: c = c + x
c -= x; bedeutet: c = c - x
c *= x; bedeutet: c = c * x
c /= x; bedeutet: c = c / x;
c %= x; bedeutet: c = c % x;
13Konkatenation von Strings
String ausgabe = feld [0].getText() + feld[1].getText(); Durch diesen Befehl wird der Variablen ausgabe die Hintereinanderfolge des Textes feld [0].getText() und des Textes feld[1].getText() zugeordnet.

Prozedurale Programmierung

1Algorithmus

Ein Algorithmus kann auch als Routine bezeichnet werden und stellt eine definierte Abfolge von Anweisungen an einen Rechner dar. Ein Algorithmus wird auch als Methode bezeichnet.

Bei einem Algorithmus spielen logische Bedingungen und Wiederholungen eine wesentliche Rolle.

2Verzweigung

Eine Verzweigung wird auch als Selektion, Auswahlstruktur oder if-Anweisung verstanden.

Eine Verzweigung umfasst 2 oder 3 Anweisungen, die je nach der Erfüllung einer Bedingung ausgeführt werden.

In Java hat eine Verzweigung folgende Syntax:

if (Bedingung) {
Anweisungen;
} else {
Anweisungen;
}

Die Bedingung nennt man Booleschen Ausdruck. Ein Boolescher Ausdruck kann zwei Werte wahrnehmen, nämlich richtig oder falsch.

3Logische Bedingungen durch Vergleich

Mit einer if-Anweisung können Werte eines Datentyps verglichen werden.
Folgende Vergleichsoperatoren in Java gibt es:
== "ist gleich"
!= "ist ungleich"
> "ist größer als"
< "ist kleiner als"
>= "ist gleich oder größer"
<= "ist kleiner oder gleich"

Der Vergleichsoperator "==" sollte nicht mit dem Zuweisungsoperator "=" verwechselt werden. Der Vergleichsoperator ist zu lesen als "ist gleich?" und der Zuweisungsoperator "=" ist zu lesen als "wird zu". oder "Bekommt den Wert von".
Bei Strings funktionieren die Vergleichsoperatoren nicht. Bei Strings muss die Methode:
string1.equals(string2) bzw.
!string1.equals(string2) verwendet werden.

4Logische Operatoren

5

6

7

8

9

10

Objektorientierte Programmierung

Buy now