Computer und Programmierung

Größe: px
Ab Seite anzeigen:

Download "Computer und Programmierung"

Transkript

1 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-1/60 Teil II Computer und Programmierung

2 Inhalt Kurze Historie Von-Neumann-Architektur Algorithmus Programmiersprachen Betriebssysteme Hamster-Simulator Am Beispiel Hamster-Befehle Variablen Bedingte Anweisung Schleifen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-2/60

3 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-3/60 Einführung in die Informatik Historie Vorläufer der Computer Rechenhilfen Mechanische Rechenhilfen wie Abakus und Rechenschieber unterstützen Menschen bei den Grundrechenarten. Rechenmaschinen Mechanische Rechenmaschinen sind vergleichbar in Funktion mit heutigen Taschenrechnern. Ein Benutzer gibt eine Anzahl Zahlen sowie die gewünschte Rechenoperation ein, und die Maschine liefert das Ergebnis.

4 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-4/60 Einführung in die Informatik Rechenmaschinen und Taschenrechner bestehen aus einer Einheit zur Eingabe von Zahlen und Operationen sowie einer Einheit zur Ausgabe des Ergebnisses Eingabe meist über Tasten Ausgabe meist über ein LCD-Display Der Anwender eines Taschenrechners ist auf die Funktionen beschränkt, die die Eingabeeinheit zur Verfügung stellt Diese Einheit ist in aller Regel nicht erweiterbar oder änderbar

5 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-5/60 Einführung in die Informatik Programmierbare Rechenmaschinen Der Begriff programmierbar bedeutet, dass die Funktion einer Maschine nicht beim Bau festgelegt wird Der Anwender eines programmierbaren Systems entwickelt ein Programm, welches aus kleineren Anweisungen besteht Die Kombination dieser Anweisungen bestimmt die Funktionsweise der Maschine

6 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-6/60 Einführung in die Informatik Entwicklung der Computer 1837 Analytical Engine von Charles Babbage Konzept einer programmierbaren Rechenmaschine (nicht gebaut) Konzept der Programmierung, erste Prorammiererin: Ada Lovelace 1890 Zählmaschine von Herman Hollerith - Volkszählung USA 1936 Theoretisches Rechnermodell von Alan Turing (Turingmaschine) 1941 Konrad Zuse Z3 erster Rechner mit Befehls und Datenspeicher 1945 John von Neumann - Konzept eines frei programmierbaren Computers

7 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-7/60 Einführung in die Informatik Von-Neumann-Architektur Die Architektur beschreibt ein Konzept für einen universellen Rechner. Ein Von-Neumann-Rechner realisiert alle Konzepte einer Turingmaschine. Die wesentlichen Bestandteile sind: Recheneinheit (Arithmetic Logic Unit, ALU ) Steuerwerk oder Leitwerk (Control Unit) Speicherwerk (Memory) Eingabe- bzw. Ausgabewerk (I/O Unit) Ein System, welches die Komponenten verbindet (Bus)

8 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-8/60 Einführung in die Informatik Von-Neumann-Architektur

9 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-9/60 Einführung in die Informatik Was also kennzeichnet einen Computer / die Von- Neumann-Architektur?

10 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-10/60 Einführung in die Informatik Was also kennzeichnet einen Computer / die Von- Neumann-Architektur? Befehle und Daten liegen gemeinsam im Speicher Der Speicher ist eingeteilt in kleine Einheiten (Wörter) Jedes Speicherwort hat eine eindeutige Adresse (Man kann sich den Speicher als fortlaufend durchnummeriertes Band vorstellen) Ein Befehlszähler enthält die Adresse des Befehls, der als nächstes ausgeführt werden soll Befehle werden in Zyklen abgehandelt

11 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-11/60 Einführung in die Informatik Von-Neumann-Architektur Folgender Ablauf wird kontinuierlich wiederholt: Der Inhalt des Speicherwortes, auf das der Befehlszähler zeigt, wird in das Steuerwerk geladen Das Steuerwerk dekodiert den Befehl und führt ihn aus Nach Abarbeitung des Befehls wird der Befehlszähler um 1 erhöht Anschließend wird wieder von vorne begonnen Es gibt weiterhin: Sprung-Befehle, die den Befehlszähler auf einen bestimmten Wert setzen Verzweigungs-Befehle, die aufgrund einer Abhängigkeit einen Sprung ausführen oder auch nicht

12 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-12/60 Einführung in die Informatik Beispiel einer Addition zweier Zahlen: Zwei Werte, Welche sich bereits im Speicher befinden, sollen addiert werden. Das Ergebnis soll in den Speicher zurück geschrieben werden: 1. Laden des ersten Wertes in ein Register der ALU 2. Laden des zweiten Wertes in ein anderes Register 3. Die ALU anweisen, die beiden Register zu addieren 4. Den Inhalt des Ergebnisregisters in den Speicher schreiben Befinden sich die beiden Werte nicht bereits im Speicher, so können sie beispielsweise über die I/O Unit von der Tastatur eingelesen werden.

13 Einführung in die Informatik Der moderne Computer Ein heutiger PC besteht im Grunde noch aus den gleichen Komponenten wie ein Von-Neumann-Rechner: Speicher I/O Unit RAM + Cache Anschlüsse für Festplatten, USB, Firewire, interne Erweiterungskarten Steuerwerk und ALU Sind in der CPU (Central Processing Unit) vereint Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-13/60

14 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-14/60 Einführung in die Informatik Jede CPU verfügt über eine Reihe von Befehlen, die sie ausführen kann. Zum Beispiel: Kopieren von Daten vom Speicher in Register und umgekehrt Ausführen von arithmetischen Operationen Absolute und relative Sprünge Verzweigungen Vergleich von Registern auf Gleichheit Größer / Kleiner enthält ein Register den Wert 0

15 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-15/60 Algorithmus Algorithmus im Kontext Informatik

16 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-16/60 Algorithmus Ein Algorithmus bezeichnet eine Arbeitsanleitung für einen Computer Dieser ist noch völlig losgelöst von der tatsächlichen Umsetzung, der Implementierung Algorithmen können auf vielfältige Arten formuliert werden: Pseudocode Programmablaufpläne Struktogramme Textform Quellcode Algorithmen besitzen darüber hinaus verschiedene Eigenschaften

17 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-17/60 Algorithmus Beispiel Kochrezept Bei Algorithmen und Kochrezepten ist die Einhaltung der Reihenfolge wichtig: (1) Brötchen einweichen; (2) Zwiebeln feinhacken; (3) aus Mett, gemischtem Hack, Eiern, den Zwiebeln und den Brötchen eine Masse zubereiten; (4) mit Salz und Pfeffer würzen;

18 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-18/60 Algorithmus sequentiell Bei Algorithmen und Kochrezepten ist die Einhaltung der Reihenfolge wichtig: (1) Brötchen einweichen; (2) Zwiebeln feinhacken; (3) aus Mett, gemischtem Hack, Eiern, den Zwiebeln und den Brötchen eine Masse zubereiten; (4) mit Salz und Pfeffer würzen; Merke: Die Anweisungen werden sequentiell von oben nach unten abgearbeitet. Keine Anweisung wird ausgelassen.

19 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-19/60 Algorithmus - Bedingungen Gewisse Anweisungen werden nur ausgeführt, wenn eine bestimmte Bedingung gegeben ist: (1) Ein Spieler aus Mannschaft A wird von einem Mitspieler aus Mannschaft B gefoult; (2) Wenn das Foul im Strafraum passiert: dann: pfeife Strafstoß ansonsten: pfeife Freistoß

20 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-20/60 Algorithmus - Bedingungen Gewisse Anweisungen werden nur ausgeführt, wenn eine bestimmte Bedingung gegeben ist: (1) Ein Spieler aus Mannschaft A wird von einem Mitspieler aus Mannschaft B gefoult; (2) Wenn das Foul im Strafraum passiert: dann: pfeife Strafstoß ansonsten: pfeife Freistoß Merke: Anweisungen können auch bedingt ausgeführt werden.

21 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-21/60 Algorithmus - Wiederholungen Neben Verzweigungen gibt es noch Ereignisse, die eine Wiederholung ( Schleifen ) von Anweisungen nach sich ziehen: (1) Solange ein Spieler eine 6 würfelt, darf er erneut würfeln

22 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-22/60 Algorithmus - Wiederholungen Neben Verzweigungen gibt es noch Ereignisse, die eine Wiederholung ( Schleifen ) von Anweisungen nach sich ziehen: (1) Solange ein Spieler eine 6 würfelt, darf er erneut würfeln Anzahl von Schritten in Abhängigkeit der gewürfelten Zahl (1) Wiederhole mit der gewürfelten Zahl: Gehe 1 Schritt vor

23 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-23/60 Algorithmus - Wiederholungen Neben Verzweigungen gibt es noch Ereignisse, die eine Wiederholung ( Schleifen ) von Anweisungen nach sich ziehen: (1) Solange ein Spieler eine 6 würfelt, darf er erneut würfeln Anzahl von Schritten in Abhängigkeit der gewürfelten Zahl (1) Wiederhole mit der gewürfelten Zahl: Gehe 1 Schritt vor Merke: Anweisungen können durch Schleifen wiederholt werden.

24 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-24/60 Algorithmus Als richtiger Algorithmus wird eine Sammlung von Anweisungen bezeichnet, die so exakt definiert ist, dass ein Computer sie ausführen kann. Welche Vorteile haben Computer gegenüber Menschen?

25 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-25/60 Algorithmus Als richtiger Algorithmus wird eine Sammlung von Anweisungen bezeichnet, die so exakt definiert ist, dass ein Computer sie ausführen kann. Welche Vorteile haben Computer gegenüber Menschen? Zuverlässigkeit: Computer machen keine Flüchtigkeitsfehler, und sie ermüden nie Geschwindigkeit: Eine heutige CPU kann mehr als drei Milliarden Operationen pro Sekunde ausführen (je Prozessorkern) Speicher: Computer haben heutzutage üblicherweise mindestens 2GByte Hauptspeicher und 1TByte Festplattenkapazität (1Tbyte sind etwa 730 Milliarden A4 Seiten Text, ein ca. 73km hoher Papierstapel)

26 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-26/60 Algorithmus - Eigenschaften Eigenschaften von Algorithmen: Endlichkeit: Die Beschreibung hat eine endliche Länge Eindeutigkeit: Die Anweisungen lösen das gegebene Problem und enthält dabei keine Widersprüche Ausführbarkeit: Der Algorithmus darf keine Anweisungen enthalten, die nicht ausführbar sind Jeder Algorithmus muss diese Kriterien erfüllen

27 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-27/60 Algorithmus - Eigenschaften Terminierung: Das Ziel bzw. Ergebnis kann in endlicher Zeit erreicht werden Parametrisierbarkeit: Das Verfahren löst nicht nur ein bestimmtes Problem, sondern eine Klasse von Problemen mit ähnlichem Schema Determiniertheit: Der Algorithmus liefert unter den gleichen Startbedingungen stets die gleichen Ergebnisse Es gibt Verfahren, die diese Kriterien nicht erfüllen, dies kann in Spezialfällen gewünscht sein

28 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-28/60 Algorithmus - Eigenschaften Bei der Implementierung von Algorithmen ergeben sich eine Reihe weiterer Eigenschaften: Effizienz: Das Verfahren sollte so schnell wie möglich zu einer korrekten Lösung kommen Ressourcenbedarf: Zur Lösung sollte so wenig Rechenleistung und Speicher wie möglich verwendet werden Erweiterbarkeit: Der Algorithmus sollte so einfach wie möglich auf eine geänderte Problemstellung angepasst werden können Wiederverwendbarkeit: Teile des Algorithmus sollen so formuliert sein, dass sie in anderen Problemen wiederverwendet werden können: Sie sollen also so allgemein wie möglich verfasst werden

29 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-29/60 Programmiersprachen Programmiersprachen

30 Programmiersprachen Ein Computer ist in der Lage verschiedene Befehle direkt auszuführen. Das bedeutet, dass man aus diesen Befehlen ein Programm erstellen kann Heutige Computer arbeiten mit dem Binärsystem Das bedeutet, dass sie eigentlich keine Zahlen oder Buchstaben speichern, sondern lediglich Folgen aus den Zuständen geladen / nicht geladen bzw. magnetisiert / nicht magnetisiert Würde man auf dieser Ebene programmieren wollen, so müsste man die gewünschten Befehle direkt in den Speicher des Computers laden (so funktionierten die ersten Computer) Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-30/60

31 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-31/60 Programmiersprachen Programme direkt auf der Maschine zu entwickeln (Maschinencode) ist umständlich Die Befehle des Prozessors sind sehr einfach und wenig flexibel Bestimmte Vorgänge wie beispielsweise das Lesen von Eingaben über die Tastatur oder die Ausgabe auf einem Bildschirm oder Drucker erfordern viel Vorarbeit Programmiersprachen sind Werkzeuge für Entwickler, um Algorithmen auszudrücken Die Art der Ausdrucksweise ist dabei näher an der natürlichen Sprache Für bestimmte Prozesse (Tastatureingabe, Bildschirmausgabe, Netzwerkkommunikation,...) stellen Programmiersprachen (in Kombination mit Betriebssystemen) vorgefertigte Methoden zur Verfügung

32 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-32/60 Programmiersprachen Daraus haben sich verschiedene Programmiersprachen entwickelt, mittels denen Algorithmen in neue Programme umformuliert werden können. Es gibt für verschiedene Einsatzgebiete verschiedene Sprachen: Maschinennahe Sprachen Didaktische Sprachen Sprachen für spezielle Einsatzgebiete...

33 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-33/60 Programmiersprachen Diese Vereinfachungen werden Abstraktion genannt. In heutiger Hard- und Software existieren mehrere Schichten von Abstraktionen, die das Arbeiten an und mit dem Computer vereinfachen. Prinzipiell bedeutet jede weitere Abstraktionsebene eine Vereinfachung... allerdings auch ein Verlust an Kontrolle über die Hardware

34 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-34/60 Programmiersprachen - Compiler Ein Computer ist nicht in der Lage, eine Programmiersprache direkt zu verstehen Daher müssen selbst verfasste Programme mittels eines zur Sprache passenden Programmes in Maschinensprache übersetzt werden. Diese speziellen Programme werden Compiler genannt. Zu einer Programmiersprache existieren manchmal verschiedene Compiler, beispielsweise von verschiedenen Herstellern. Bsp.: C, C++, Fortran, Pascal,...

35 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-35/60 Programmiersprachen - Interpreter Neben Compilern existieren auf vielen Computern Interpreter Dies sind Programme, die ähnlich wie Compiler Programme in einer Programmiersprache übersetzen - allerdings werden diese Programme nicht erst in Maschinensprache übersetzt. Die Anweisungen werden einzeln erkannt und ausgeführt ( interpretiert ). Bsp.: Perl, Commandline-Sprachen: DOS, Shell

36 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-36/60 Programmiersprachen - Compiler Oftmals gibt es Compiler für die gleiche Programmiersprache auf unterschiedlichen Plattformen. Plattform Eine Plattform bezeichnet (grob) eine bestimmte Kombination aus Hardware und Betriebssystem. Programme für eine Plattform sind in der Regel nicht auf einer anderen Plattform lauffähig. Beispiele für Plattformen sind: Windows auf x86 Prozessoren, MacOS auf x86, MacOS auf PowerPC, UNIX auf x86.

37 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-37/60 Programmiersprachen - Compiler Oftmals gibt es Compiler für die gleiche Programmiersprache auf unterschiedlichen Plattformen. Plattform Eine Plattform bezeichnet (grob) eine bestimmte Kombination aus Hardware und Betriebssystem. Programme für eine Plattform sind in der Regel nicht auf einer anderen Plattform lauffähig. Beispiele für Plattformen sind: Windows auf x86 Prozessoren, MacOS auf x86, MacOS auf PowerPC, UNIX auf x86. Ein Compiler auf der Plattform A übersetzt ein Programm in eine andere Maschinensprache als ein Compiler auf Plattform B. So kann ein und das selbe Programm auf mehreren Plattformen eingesetzt werden.

38 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-38/60 Programmiersprachen - Zusammenfassung Programmiersprachen vereinfachen die Erstellung von Programmen bzw. die Implementierung von Algorithmen Aus Sichtweise der Abstraktionsebenen befinden sich Programmiersprachen zwischen den natürlichen Sprachen, mit denen Menschen Algorithmen verfassen und den Maschinensprachen, welche die Befehle des jeweiligen Prozessors darstellen Programme in Programmiersprachen werden von einem Compiler genannten Programm in Maschinensprache übersetzt

39 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-39/60 Programmiersprachen - Zusammenfassung Programmiersprachen vereinfachen die Erstellung von Programmen bzw. die Implementierung von Algorithmen Aus Sichtweise der Abstraktionsebenen befinden sich Programmiersprachen zwischen den natürlichen Sprachen, mit denen Menschen Algorithmen verfassen und den Maschinensprachen, welche die Befehle des jeweiligen Prozessors darstellen Programme in Programmiersprachen werden von einem Compiler genannten Programm in Maschinensprache übersetzt In dieser Veranstaltung erlernen Sie die Programmiersprache Java

40 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-40/60 Programmiersprachen Betrachtung mehrerer Programmiersprachen um auf einem Ausgabegerät in der Regel ein Monitor (Bildschirm) oder Drucker den Text Hallo Welt! auszugeben.

41 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-41/60 Programmiersprachen Die so genannten Assemblersprachen bieten für Menschen lesbare Befehle, die direkt die Befehle in Maschinensprache der jeweiligen CPU abbilden: 1.MODEL Small 2.STACK 100h 3.DATA 4 HW DB 'Hallo Welt!' 5.CODE 6 start: 7 MOV AX,@data 8 MOV DS,AX 9 MOV DX, OFFSET HW 10 MOV AH, 09H 11 INT 21H 12 MOV AH, 4Ch 13 INT 21H 14 end start

42 Programmiersprachen C ist eine (relativ alte) Sprache, die den Ruf hat sehr effizient zu arbeiten, und gleichzeitig noch relativ leicht zu schreiben ist: 1 #include <iostream> 2 using std::cout; 3 using std::endl; 4 5 int main() 6 { 7 cout << "Hallo, Welt!" << endl; 8 return 0; 9 } Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-42/60

43 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-43/60 Programmiersprachen Perl: 1 print "Hallo Welt!\n"; JAVA: 1 class Hallo { 2 public static void main( String[] args ) { 3 System.out.println("Hallo Welt!"); 4 } 5 }

44 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-44/60 Programmiersprachen Programmiersprachen erweitern nicht den eigentlichen Befehlsumfang des Computers Sie dienen lediglich dazu Menschen einen besseren Zugang zu verschaffen, indem Anweisungen auf eine andere Art und Weise verfasst werden können Programmiersprachen versuchen sich dabei immer mehr der natürlichen Sprache anzunähern Es werden bei allen Programmiersprachen spezielle Programme (Compiler bzw. Interpreter) benötigt! Diese Programme übersetzen die jeweilige Sprache in die Maschinensprache des Computers

45 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-45/60 Zusammenfassung Computer sind universelle Rechenmaschinen, die Programme ausführen können Diese Programme bestimmen die Funktionsweise der Maschinen Durch die Beherrschung (mindestens) einer Programmiersprache können Sie selbst Programme entwerfen Diese Programme können Ihnen rechenintensive Arbeit abnehmen

46 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-46/60 Betriebssysteme Betriebssysteme

47 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-47/60 Betriebssysteme Computer Ein Computer ist, nach der heutigen Definition, eine Erweiterung der klassischen Rechenmaschine. Anstatt nur vorgegebene Operationen auszuführen, können Benutzer des Systems eigene Programme verfassen, die die Operation eines Computers bestimmen.

48 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-48/60 Betriebssysteme Computer Ein Computer ist, nach der heutigen Definition, eine Erweiterung der klassischen Rechenmaschine. Anstatt nur vorgegebene Operationen auszuführen, können Benutzer des Systems eigene Programme verfassen, die die Operation eines Computers bestimmen. Befehle Ein Prozessor versteht eine Reihe von Basisbefehlen. Diese werden in Programmen so kombiniert, dass komplexe Probleme gelöst werden können.

49 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-49/60 Betriebssysteme Bislang: Programme werden auf Hardwareebene entwickelt Diese arbeiten direkt mit dem Prozessor Ein- und Ausgabe, Speicherverwaltung, etc. müssen für jedes Programm selbst entwickelt werden

50 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-50/60 Ein Betriebssystem ist ebenfalls ein Programm Dieses läuft im Hintergrund ab und stellt einen einfachen Zugriff auf die Hardware zur Verfügung Man sagt: Die Hardware wird abstrahiert Die Entwicklung von neuen Programmen findet heutzutage (fast) ausschließlich auf Betriebssystemen statt

51 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-51/60 Hamster-Simulator Hamster-Simulator

52 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-52/60 Programmierung : Variablen Variablen sind das Gedächtnis Sie dienen dazu Werte zu speichern Arithmetische / Logische Operationen mit diesen durchzuführen und deren Ergebnisse zu speichern

53 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-53/60 Hamster-Simulator Grundlagen Der Hamster-Simulator kennt Variablen: boolean variablenname [ = initialwert] logische Variable mit Inhalt true / false int variablenname [= initialwert] integer Variable

54 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-54/60 Hamster-Simulator Grundlagen Die Möglichkeit eine Bedingung zu prüfen und entsprechend Anweisungen auszuführen bietet auch die Programmiersprache im Hamster-Simulator: if ( bedingung ) { anweisung ; } else { anweisung ; } Der else -Zweig kann auch entfallen.

55 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-55/60 Hamster-Simulator Grundlagen Der Hamster-Simulator kennt Wiederholungen Schleifen : Zählschleife (mit: solange bedingung wahr ist) for ( initial, bedingung, wiederholanweisung ) anweisung Bsp.: for ( i=0 ; i < 5 ; i++ ) Schleife solange Bedingung wahr ist while ( bedingung ) anweisung do anweisung while ( bedingung )

56 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-56/60 Hamster-Simulator Grundlagen Beispielprogramm cub_ws1617_praktikum_02_2 void main() { int anzahl_koerner = 0; // Speicher für Anzahl der Körner im Maul int eingabe_schrittanzahl = 0; // Speicher für Eingabe Anz. Schritte // Lies die Anzahl der zu gehenden Schritte ein eingabe_schrittanzahl = lieszahl("wie weit soll ich gehen?"); } // Schleife sooft wie eingegebene Schrittzahl durchlaufen for (int i=0; i < eingabe_schrittanzahl; i++) { vor (); // 1 Schritt vorwärts gehen if (kornda()) // Test ob Korn auf dem aktuellen Feld liegt { nimm(); // nimm 1 Korn auf anzahl_koerner++; // erhöhe Zähler für gefundene Körner } } // Ausgabe der Information wieviele Körner gefunden wurden schreib ("Anzahl Körner = " + anzahl_koerner);

57 Hamster-Simulator Wiederholung einige Befehle Der Hamster-Simulator kennt die folgenden vier Grundbefehle: vor(); Um 1 Feld nach vorne bewegen linksum(); Den Hamster um 90º nach links drehen nimm(); Ein Korn von der aktuellen Kachel in das Maul aufnehmen gib(); Ein Korn aus dem Maul des Hamsters auf der aktuellen Kachel ablegen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-57/60

58 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-58/60 Programmierung Wiederholung : Funktionen Funktionen sind Befehle mit Rückgabewerten Die Funktion hat somit einen Datentyp Beim Verwenden der Funktion muss dies berücksichtigt werden Funktionen können Parameter übergeben werden (sofern sie so definiert sind) Bsp. Hamster-Simulator: int lieszahl ( text ) // gib text aus und lese Zahl boolean vornfrei () // Teste ob in Blickrichtung Mauer / Ende des Territoriums => false Ein Schritt möglich ist => true

59 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17-59/60 Hamster-Simulator Wiederholung Der Hamster-Simulator kennt Befehle (Funktionen) zum Testen der Umgebung: (boolean) vornfrei() Test ob in Blickrichtung keine Mauer/Ende des Territoriums ist (boolean) kornda() Test ob auf dem aktuellen Feld noch Korn liegt

60 Fragen?

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

Mehr

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

Programmieren mit dem Java-Hamster-Modell. VP Orientierung Informatik WS 2008/09 H.Hagenauer

Programmieren mit dem Java-Hamster-Modell. VP Orientierung Informatik WS 2008/09 H.Hagenauer Programmieren mit dem Java-Hamster-Modell VP Orientierung Informatik WS 2008/09 H.Hagenauer Idee didaktisches Modell zur Einführung in die Programmierung leichter und intuitiver Zugang ( spielerisches

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (2) Architektur des Haswell- Prozessors (aus c t) Einführung

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. [email protected]. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth [email protected] Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 23 September 2013 Sebastian Stabinger (IIS) Brückenkurs / Computer 23 September 2013 1 / 20 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte

Mehr

Abstrakte Algorithmen und Sprachkonzepte

Abstrakte Algorithmen und Sprachkonzepte Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten.

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten. Folge 6 WHILE-Schleife JAVA 6.1 Schleifen Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten. Zu einer Schleife gehören die Schleifenbedingung und der Rumpf. Die Schleifenbedingung

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Von-Neumann-Rechner (John von Neumann : 1903-1957) C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Quelle: http://www.cs.uakron.edu/~margush/465/01_intro.html Analytical Engine - Calculate

Mehr

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,

Mehr

Grundlagen der Programmentwicklung

Grundlagen der Programmentwicklung Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie

Mehr

Informatik I - Einstiegskurs

Informatik I - Einstiegskurs Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013.

Informatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013. Informatik Studiengang Chemische Technologie Michael Roth [email protected] Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VIII Einstieg in Java II Michael Roth (h_da) Informatik

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate COMA Eine Einführung Quellcode: Anweisung(en)1 Wiederhole: T.Bosse Anweisung(en) 2 Einfache Schleifen (z.b. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Anweisung(en) 2 sonst führe Verzweigungen

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

Mehr

Ein- und Ausgabe (I/O)

Ein- und Ausgabe (I/O) Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 14 Motivation Computer arbeiten

Mehr

Computergrundlagen Geschichte des Computers

Computergrundlagen Geschichte des Computers Computergrundlagen Geschichte des Computers Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 1641: Rechenmaschine von B. Pascal B. Pascal, 1632-1662 mechanische Rechenmaschine

Mehr

Programmieren. Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda

Programmieren. Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda Programmieren Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda Peter Klingebiel, HS Fulda, DVZ Zur Vorlesung Wer bin ich? Peter Klingebiel Dipl.-Ing.

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

Mehr

Einführung in die Informatik Algorithms

Einführung in die Informatik Algorithms Einführung in die Informatik Algorithms Vom Problem zum Algorithmus und zum Programm Wolfram Burgard Cyrill Stachniss 1.1 Motivation und Einleitung In der Informatik sucht man im Normalfall nach Verfahren

Mehr

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um WI Zahlenumwandlungen Informatik I Aufgabentyp 1: a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um 000100010101 2 = Okt:., Hex:.. Wandeln Sie folgende Zahlen

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise Coma I Einleitung 1 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise 2 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

Infovorkurs, Teil II: Theoretische Informatik. Motivation. Turing-Maschine. Programmiersprachen

Infovorkurs, Teil II: Theoretische Informatik. Motivation. Turing-Maschine. Programmiersprachen Infovorkurs, Teil 08.10.2015 Webseite Mittlerweile gibt es die Folien und die Übungen online. Außerdem die Ergebnisse der Umfrage! Ich empfehle auch die Links. www.geile-hirnbude.de/vorkurs Rückblick Haben

Mehr

Greenfoot: Verzweigungen

Greenfoot: Verzweigungen Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein

Mehr

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel  Problem Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow [email protected] Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

Sprachen und Automaten. Tino Hempel

Sprachen und Automaten. Tino Hempel Sprachen und Automaten 4 Tino Hempel Computer und Sprache Wie werden Informationen zu Daten kodiert? Welche Datenträger gibt es? Wie erfolgt die Verarbeitung der Daten? o o o Informationen werden im Computer

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,

Mehr

HW- und SW-Komponenten eines PC. IBM 5150 aus dem Jahre 1981

HW- und SW-Komponenten eines PC. IBM 5150 aus dem Jahre 1981 HW- und SW-Komponenten eines PC IBM 5150 aus dem Jahre 1981 Anfänge des Computers 1941: Zuse Z3 in Deutschland entwickelt erster programmierbarer Rechner mit mechanischen Relais 1944: ENIAC In den USA

Mehr

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe. Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende

Mehr

Kapitel 1: Einführung

Kapitel 1: Einführung 10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Motivation und Überblick

Motivation und Überblick Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ

Mehr

Übungen mit Anleitung. Hamster-Simulator. Nicola Ramagnano 23. Oktober 2011

Übungen mit Anleitung. Hamster-Simulator. Nicola Ramagnano 23. Oktober 2011 Übungen mit Anleitung Hamster-Simulator Nicola Ramagnano 23. Oktober 2011 Dieses Dokument steht unter einer Creative Commons Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 2.5 Schweiz

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Kapitel 3. Mein erstes C-Programm

Kapitel 3. Mein erstes C-Programm Kapitel 3 Mein erstes C-Programm 1 Gliederung Kapitel 3 Mein erstes C-Programm 3.1 Einleitung 3.2 Mein erstes C-Programm 3.3 Zusammenfassung 2 Problem Algorithmus Mittelwert für Messwerte berechnen DGL

Mehr

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1 Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm ([email protected]) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Philipp Grasl PROZESSOREN

Philipp Grasl PROZESSOREN 1 PROZESSOREN INHALTSVERZEICHNIS Definition/Verwendung Prozessor Historische Entwicklung Prozessor Aufbau Prozessor Funktionsweise Prozessor Steuerung/Maschinenbefehle Prozessorkern Prozessortakt 2 DEFINITION

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen

Mehr

Wie funktionieren Computer?

Wie funktionieren Computer? Ideen und Konzepte der Informatik Wie funktionieren Computer? Kurt Mehlhorn Übersicht Wie funktionieren Computer? Der Von-Neumann-Rechner Universalität von Rechnern: Basis für Siegeszug der Informatik

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines

Mehr

Schleifenanweisungen

Schleifenanweisungen Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

Mehr

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung [email protected] 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

BKTM - Programmieren leicht gemacht.

BKTM - Programmieren leicht gemacht. BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Logische und mathematische Grundlagen Digitale Daten Computerprogramme als Binärdaten von Neumann-Rechnerarchitektur Einführung in Maschinen-Code Speicherorganisation Betriebssysteme

Mehr

Um dies zu vermeiden, werden nun drei so genannte Testbefehle eingeführt:

Um dies zu vermeiden, werden nun drei so genannte Testbefehle eingeführt: Folge 4 IF-ELSE-Anweisung - Testbefehle JAVA 4.1 Testbefehle (Boolesche Ausdrücke) Wenn Sie den Hamster in eine unlösbare Situation bringen (z.b. obwohl vor ihm eine Mauer steht), dann ist der Hamster

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Visuelle Programmierung mit dem Hamstersimulator

Visuelle Programmierung mit dem Hamstersimulator Visuelle Programmierung mit dem Hamstersimulator Erstellt von Fachbezug Maja Plavsic, [email protected], JKU Linz Informatik Schulstufe 8 Handlungsdimensi on Relevante(r) Deskriptor(en) Zeitbedarf

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache Assembler Programmierung Motivation Informatik II SS 2004 Teil 4: Assembler Programmierung Was ist ein Programm? Eine Reihe von Befehlen, die der Ausführung einer Aufgabe dient Dazu wird das Programm sequentiell

Mehr

1 EINFÜHRUNG PROGRAMMIERSPRACHEN

1 EINFÜHRUNG PROGRAMMIERSPRACHEN 1 EINFÜHRUNG PROGRAMMIERSPRACHEN Leitidee: Von der Maschinensprache zur höheren Programmiersprache und zurück Von-Neumann-Maschine als abstraktes Computermodell Maschinensprache des hypothetischen Rechners

Mehr

Flussdiagramm / Programmablaufplan (PAP)

Flussdiagramm / Programmablaufplan (PAP) Flussdiagramm / Programmablaufplan (PAP) Basissysmbole Grenzstelle (Anfang, Zwischenhalt oder Ende des Programms/Algorithmus) Verbindung Zur Verdeutlichung der Ablaufrichtung werden Linien mit einer Pfeilspitze

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Das Java-Hamster-Modell

Das Java-Hamster-Modell Das Java-Hamster-Modell Programmieren lernen mit dem Hamster Informatikunterricht in der Jahrgansstufe 11 der Ursulaschule Osnabrück Das Java-Hamster-Modell Übersicht 1. Was ist ein Programm? 2. Wodurch

Mehr

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 3 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Für eine

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer

Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer Die Geschichte der Rechenmaschinen 1100 v. Chr. Abakus Ein Abakus ist ein mehr als 3000 Jahre altes einfaches mechanisches Rechenhilfsmittel. Der Abakus enthält

Mehr

Computer-Architektur Ein Überblick

Computer-Architektur Ein Überblick Computer-Architektur Ein Überblick Johann Blieberger Institut für Rechnergestützte Automation Computer-Architektur Ein Überblick p.1/27 Computer-Aufbau: Motherboard Computer-Architektur Ein Überblick p.2/27

Mehr