Home > Informatik > Einführung in Java > Folge 1

1.1 Informatiksysteme und Programmiersprachen

Programmiersprachen - Java und BlueJ - Klassen und Objekte

KI-Zusammenfassung

In diesem Abschnitt lernen Sie die Grundlagen der Informatik kennen. Zunächst wird erklärt, was unter einem Informatiksystem zu verstehen ist und aus welchen Bestandteilen es besteht. Anschließend wird erläutert, welche Aufgabe Programmiersprachen erfüllen und warum Computerprogramme mit einem Kochrezept verglichen werden können. Am Beispiel eines kleinen Pascal-Programms lernen Sie den Aufbau eines Programms sowie den Begriff des Programmflusses kennen. Mithilfe eines Flussdiagramms wird gezeigt, wie der Ablauf eines Programms grafisch dargestellt werden kann. Abschließend werden lineare und verzweigte Programme miteinander verglichen und die Bedeutung von Fallunterscheidungen erläutert.

Inhalt der Seite

Lernziele

Wenn Sie diese Seite durchgearbeitet haben, sollten Sie wissen

  • Was man unter einem Informatiksystem versteht,
  • welche Aufgabe Programmiersprachen erfüllen - auch im Alltag
  • was man unter einem Programm versteht,
  • dass ein Programm mit einem Kochrezept vergleichbar ist,
  • dass es neben linearen Programmen auch verzweigte Programme gibt.

1.1.1 Was ist ein Informatiksystem ?

Werfen wir zunächst einen Blick auf einen Ausschnitt aus dem Kernlehrplan des Landes Nordrhein-Westfalen::

"Informatiksysteme sind heute weltweit miteinander vernetzt. Ein Informatiksystem ist eine spezifische Zusammenstellung von Hardware-, Software- und Netzwerkkomponenten zur Lösung eines Anwenderproblems. Gegenstand der Betrachtung ... ist schwerpunktmäßig der prinzipielle Aufbau singulärer und vernetzter Rechnersysteme und deren Interaktion untereinander und mit dem Benutzer."
Informatiksysteme

Einzelheiten zu diesem Thema finden Sie auf dieser Seite in der Abteilung "Begriffe und Konzepte der Informatik". Hier finden Sie auch ein Beispiel, wie man das Konzept des Informatiksystems auf eine Bibliothek übertragen kann.

Rechnersysteme

Auch zu diesem Thema finden sich Einzelheit auf der Seite über Informatiksystem in der Begriffe-Abteilung.

1.1.2 Was ist eine Programmiersprache?

Mit Hilfe von Programmiersprachen können wir Handys, Tablets, Chips von Waschmaschinen, aber auch Computer programmieren. Unter einem Computerprogramm versteht man eine Liste von Anweisungen, die ein Computer oder ein anderes Informatiksystem ausführen soll.

Ähnlich wie ein Kochrezept eine Liste von Anweisungen enthält, die der Koch ausführen soll, erhält auch ein Computerprogramm Anweisungen für den Computer.

Rezept

Das Rezept gibt zunächst an, welche Zutaten beispielsweise für die Herstellung der Mahlzeit benötigt werden.

Dann folgt eine Reihe von Anweisungen, wie man aus den Zutaten das fertige Produkt herstellt. Die Reihenfolge der einzelnen Schritte muss dabei meistens genau eingehalten werden. Bevor man das Schnitzel in die Pfanne legt, muss man beispielsweise das Öl oder die Butter in die Pfanne geben und die Herdplatte anstellen.

Programm

Betrachten wir ein einfaches Pascal-Programm, das den Mittelwert von zwei Zahlen berechnet und auf dem Bildschirm ausgibt:

program Mittelwert;
var zahl1, zahl2, mittel: real;

begin
   readln(zahl1);
   readln(zahl2);
   mittel := (zahl1 + zahl2) / 2;
   writeln(mittel);
end.
  1. Zunächst wird ein Wert für die Variable zahl1 eingelesen. Dazu fordert das Programm den Benutzer auf, eine Zahl über die Tastatur einzugeben. Der Benutzer gibt beispielsweise die Zahl 123 ein.
  2. Danach wird auf die gleiche Weise ein Wert für die Variable zahl2 eingelesen. Wenn der Benutzer zum Beispiel die Zahl 543 eingibt, wird dieser Wert in der Variablen zahl2 gespeichert.
  3. Anschließend addiert das Programm die beiden Werte und dividiert die Summe durch 2. Das Ergebnis dieser Berechnung - 333 - wird in der Variablen mittel gespeichert.
  4. Der Befehl writeln(mittel) gibt schließlich den Inhalt der Variablen mittel auf dem Bildschirm aus.

 

1.1.3 Lineare Programme

Ein Computerprogramm kann völlig linear verlaufen, so wie das Programm in unserem Beispiel. Grafisch könnte man den Ablauf eines solchen Programms durch einen großen Pfeil darstellen, der von oben nach unten geht:

Eine weitaus bessere Darstellung des Programmflusses erhält man mit einem Flussdiagramm. Darin wird der Ablauf des Programms, der so genannte Programmfluss, durch genormte Symbole dargestellt.

1.1.4 Flussdiagramm für das Programm

Flussdiagramm für das Programm "Mittelwert"

Dieses Flussdiagramm stellt den Ablauf unseres Programms sehr anschaulich dar. Ganz oben befindet sich das Start-Symbol. Hier beginn die Ausführung des Programms.

Das Parallelogramm "zahl 1" ist ein Eingabe-Symbol. An dieser Stelle wird eine Zahl eingelesen und in der Variablen zahl1 gespeichert. Entsprechendes gilt für zahl2.

Das Rechteck "mittel = zahl 1 + zahl 2 / 2" ist ein Anweisungs-Symbol. Dies Anweisung enthält allerdings noch einen kleinen Fehler. Finden Sie ihn?

Kleiner Tipp: Erinnern Sie sich an die alte Regel aus dem Mathe-Unterricht: Punktrechnung geht vor Strichrechnung.

Das Symbol, das wie ein abgerissenes Blatt Papier aussieht, ist ein Ausgabe-Symbol. Der berechnete Mittelwert wird jetzt auf dem Bildschirm ausgegeben.

Ganz am Ende kommt das Stopp-Symbol, es kennzeichnet das Ende des Programms. In der Informatik sagt man auch: Das Programm terminiert.

Merke:

Flussdiagramm

Ein Flussdiagramm beschreibt nicht, wie ein Programm geschrieben ist, sondern in welcher Reihenfolge seine Anweisungen ausgeführt werden.

1.1.5 Verzweigte Programme

Betrachten wir nun das folgende Programm, das den Quotienten zweier Zahlen berechnen soll:

program Teile;
var zahl1, zahl2, ergebnis: real;
begin
   readln(zahl1);
   readln(zahl2);
   ergebnis := zahl1/zahl2;
   writeln(ergebnis);
end.

Zunächst werden wieder die erforderlichen Variablen angelegt, anschließend folgen die Anweisungen des Programms. Die beiden Zahlen werden eingelesen, danach wird die erste Zahl durch die zweite dividiert. Das Ergebnis wird in der Variablen ergebnis gespeichert und anschließend ausgegeben.

Das Programm funktioniert auch wunderbar, bis jemand auf die Idee kommt, als zahl2 den Wert 0 einzutippen. Da man nicht durch 0 dividieren kann, tritt ein sogenannter Laufzeitfehler auf und das Programm wird mit einer Fehlermeldung beendet.

In diesem kleinen Pascal-Programm lässt sich dieser Laufzeitfehler jedoch leicht vermeiden. Dazu bauen wir eine sogenannte Fallunterscheidung in den Quelltext ein. Hier das entsprechend erweiterte Programm:

program Teile;
var zahl1, zahl2, ergebnis : real;

begin
   readln(zahl1);
   readln(zahl2);

   if zahl2 = 0 then
      writeln('Sie dividieren durch 0!')
   else begin
      ergebnis := zahl1 / zahl2;
      writeln(ergebnis);
   end;
end.

Mit der Anweisung if zahl2 = 0 wird überprüft, ob die Variable zahl2 den Wert 0 enthält. Ist dies der Fall, wird eine Fehlermeldung ausgegeben. Andernfalls (else) wird der Quotient berechnet und ausgegeben.

Der Programmfluss kann hier also zwei verschiedene Wege einschlagen. Man spricht dann von einem verzweigten Programm.

Die meisten Computerprogramme enthalten eine Vielzahl solcher Verzweigungen. Erst dadurch können sie auf unterschiedliche Eingaben und Situationen angemessen reagieren.

1.1.6 Ausblick

Im weiteren Verlauf dieses Kurses werden wir uns hauptsächlich mit der Programmiersprache Java beschäftigen. Java gehört seit vielen Jahren zu den wichtigsten Programmiersprachen und wird weltweit in zahlreichen Anwendungsgebieten eingesetzt.

Dieser Kurs ist für die Arbeit an Computern konzipiert. Als Entwicklungsumgebung verwenden wir BlueJ, das speziell für den Programmierunterricht an Schulen und Hochschulen entwickelt wurde. BlueJ ermöglicht einen besonders anschaulichen Einstieg in die objektorientierte Programmierung und eignet sich daher hervorragend für Anfängerinnen und Anfänger.

1.1.7 Aufgaben / Übungen

Aufgabe 1

a) Erstellen Sie eine Tabelle mit mindestens fünf "Informatiksystemen", die auch im Alltag benutzt werden. Listen Sie die Funktion dieser Systeme auf und geben Sie an, ob diese Systeme vernetzt sind oder "stand alone" (singulär, für sich, ohne Vernetzung) arbeiten können.

b) Man sollte es nicht glauben, aber auch ein moderner "Schweinestall" ist ein Informatiksystem. Recherchieren Sie mit Hilfe einer KI, wie man das Konzept des Informatiksystems auf einen modernen Schweinezucht-Betrieb umsetzen kann.

Lösungen der Aufgaben 1 bis 3 (nur für Lehrpersonen)

Aufgabe 2

Recherchieren Sie zu einem der folgenden Themen:

  • Eingabegeräte
  • Ausgabegeräte
  • Externe Speichermedien
  • Geschichte der Computer
  • Aufbau eines Computers
  • World Wide Web (WWW)
  • Computer und Arbeitswelt
  • Gegenüberstellung analog/digital an ausgewählten Beispielen
  • Homeoffice früher und heute
  • Vor- und Nachteile von KI-Systemen

Bereiten Sie Ihre Ergebnisse in einer kurzen Präsentation (ca. 5 Minuten) auf und stellen Sie diese anschließend dem Kurs vor.

Lösungen der Aufgaben 1 bis 3 (nur für Lehrpersonen)

Aufgabe 3

Was macht folgendes Programm (kein Java-Quelltext!) ?

program geheim;
var z1, z2, z3, ergebnis : integer;

begin
   read z1;
   read z2;
   read z3;
   if z1 < z2 and z1 < z3
      then ergebnis = z1;
   else if z2 < z1 and z2 < z3
      then ergebnis = z2;
   else if z3 < z1 and z3 < z2
      then ergebnis = z3;
   write ergebnis;
end.
						

Beschreiben Sie, welches Ergebnis das Programm liefert und überlegen Sie, wie man das Programm noch optimieren könnte. Erläutern Sie diese Optimierung!

Lösungen der Aufgaben 1 bis 3 (nur für Lehrpersonen)

Seitenanfang -
Weiter mit Java und BlueJ…