systematischen Verarbeitung von Informationen Was ist Informatik?

Größe: px
Ab Seite anzeigen:

Download "systematischen Verarbeitung von Informationen Was ist Informatik?"

Transkript

1 14 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen Bestandteile

2 Was ist Informatik? 15

3 Was ist Informatik? 15 Die Wissenschaft der systematischen Verarbeitung von Informationen,...

4 Was ist Informatik? 15 Die Wissenschaft der systematischen Verarbeitung von Informationen, insbesondere der automatischen Verarbeitung mit Hilfe von Digitalrechnern. (Wikipedia, nach dem Duden Informatik )

5 Informatik Computer Science 16 Computer science is not about machines, in the same way that astronomy is not about telescopes. Mike Fellows, US-Informatiker (1991)

6 Computer Science Informatik 17 Die Informatik beschäftigt sich heute auch mit dem Entwurf von schnellen Computern und Netzwerken...

7 Computer Science Informatik 17 Die Informatik beschäftigt sich heute auch mit dem Entwurf von schnellen Computern und Netzwerken aber nicht als Selbstzweck, sondern zur effizienteren systematischen Verarbeitung von Informationen.

8 Algorithmus: Kernbegriff der Informatik 18 Algorithmus: Rezept zur systematischen Verarbeitung von Informationen

9 Algorithmus: Kernbegriff der Informatik Algorithmus: Rezept zur systematischen Verarbeitung von Informationen nach Muhammed al-chwarizmi, Autor eines arabischen Rechen-Lehrbuchs (um 825) Dixit algorizmi... (lateinische Übersetzung) 18

10 Der älteste überlieferte Algorithmus... 19

11 Der älteste überlieferte Algorithmus ist der Euklidische Algorithmus (aus Euklids Elementen, 3. Jh. v. Chr.)

12 Der älteste überlieferte Algorithmus ist der Euklidische Algorithmus (aus Euklids Elementen, 3. Jh. v. Chr.) Eingabe: zwei natürliche Zahlen a > b Ausgabe: grösster gemeinsamer Teiler ggt(a, b)

13 Der älteste überlieferte Algorithmus Algorithmus am Beispiel: a b a div b a mod b

14 Der älteste überlieferte Algorithmus Algorithmus am Beispiel: a b a div b a mod b

15 Der älteste überlieferte Algorithmus Algorithmus am Beispiel: a b a div b a mod b

16 Der älteste überlieferte Algorithmus Algorithmus am Beispiel: a b a div b a mod b

17 Der älteste überlieferte Algorithmus Algorithmus am Beispiel: a b a div b a mod b

18 Der älteste überlieferte Algorithmus Algorithmus am Beispiel: a b a div b a mod b

19 Der älteste überlieferte Algorithmus Algorithmus am Beispiel: a b a div b a mod b ggt = 21

20 Informatik EDV-Kenntnisse 20 EDV-Kenntnisse: Anwenderwissen Umgang mit dem Computer Bedienung von Computerprogrammen (für Texterfassung, , Präsentationen,... )

21 Informatik EDV-Kenntnisse 20 Informatik: Grundlagenwissen Wie funktioniert ein Computer? Wie schreibt man ein Computerprogramm?

22 ETH: Pionierin der modernen Informatik 1950: ETH mietet Konrad Zuses Z4, den damals einzigen funktionierenden Computer in Europa. 21

23 22 ETH: Pionierin der modernen Informatik 1956: Inbetriebnahme der ERMETH, entwickelt und gebaut an der ETH von Eduard Stiefel.

24 ETH: Pionierin der modernen Informatik : Entwicklung von ALGOL 60 (der ersten formal definierte Programmiersprache), unter anderem durch Heinz Rutishauer, ETH 23

25 ETH: Pionierin der modernen Informatik 1964: Erstmals können ETH-Studierende selbst einen Computer programmieren (die CDC 1604, gebaut von Seymour Cray). Die Klasse 1964 heute (mit einigen Gästen) 24

26 ETH: Pionierin der modernen Informatik 1964: Erstmals können ETH-Studierende selbst einen Computer programmieren (die CDC 1604, gebaut von Seymour Cray). Niklaus Wirth (* 1934) 24

27 ETH: Pionierin der modernen Informatik : Niklaus Wirth entwickelt an der ETH die Programmiersprachen Pascal, Modula-2 und Oberon und 1980 die Lilith, einen der ersten Computer mit grafischer Benutzeroberfläche.

28 Computer Konzept Eine geniale Idee: Universelle Turingmaschine (Alan Turing, 1936) Alan Turing 26

29 Computer Umsetzung Z1 Konrad Zuse (1938) ENIAC John Von Neumann (1945) Konrad Zuse John von Neumann 27

30 Speicher für Daten und Programm 28 Folge von Bits aus {0, 1}. Programmzustand: Werte aller Bits. Zusammenfassung von Bits zu Speicherzellen (oft: 8 Bits = 1 Byte).

31 Speicher für Daten und Programm 28 Jede Speicherzelle hat eine Adresse. Random Access: Zugriffszeit auf Speicherzelle (nahezu) unabhängig von ihrer Adresse.

32 Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist... 3 Uniprozessor Computer bei 1GHz 29

33 Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist m arbeitet ein heutiger Desktop-PC mehr als Uniprozessor Computer bei 1GHz 29

34 Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist m = mehr als Instruktionen arbeitet ein heutiger Desktop-PC mehr als 100 Millionen Instruktionen ab. 3 3 Uniprozessor Computer bei 1GHz 29

35 Inhalt dieser Vorlesung 30 Systematisches Problemlösen mit Algorithmen und der Programmiersprache C++. Also: nicht nur, aber auch Programmierkurs.

36 Programmieren Mit Hilfe einer Programmiersprache wird dem Computer eine Folge von Befehlen erteilt, damit er genau das macht, was wir wollen. Die Folge von Befehlen ist das (Computer)-Programm. The Harvard Computers, Menschliche Berufsrechner, ca

37 Warum Programmieren? 34 Da hätte ich ja gleich Informatik studieren können...

38 Warum Programmieren? 34 Es gibt doch schon für alles Programme...

39 Warum Programmieren? 34 Programmieren interessiert mich nicht...

40 Warum Programmieren? 34 Weil Informatik hier leider ein Pflichtfach ist...

41 Warum Programmieren? 34...

42 Darum Programmieren! 35 Jedes Verständnis moderner Technologie erfordert Wissen über die grundlegende Funktionsweise eines Computers.

43 Darum Programmieren! 35 Programmieren (mit dem Werkzeug Computer) wird zu einer Kulturtechnik wie Lesen und Schreiben (mit den Werkzeugen Papier und Bleistift)

44 Darum Programmieren! 35 Programmieren ist die Schnittstelle zwischen Elektrotechnik und Informatik der interdisziplinäre Grenzbereich wächst zusehends.

45 Darum Programmieren! 35 Programmieren macht Spass!

46 Programmiersprachen 36 Sprache, die der Computer "versteht", ist sehr primitiv (Maschinensprache). Einfache Operationen müssen in viele Einzelschritte aufgeteilt werden. Sprache variiert von Computer zu Computer.

47 Höhere Programmiersprachen 36 darstellbar als Programmtext, der von Menschen verstanden werden kann vom Computermodell unabhängig ist Abstraktion!

48 Warum C++? 37 Andere populäre höhere Programmiersprachen: Java, C#, Objective-C, Modula, Oberon,...

49 Warum C++? 37 Andere populäre höhere Programmiersprachen: Java, C#, Objective-C, Modula, Oberon,... Allgemeiner Konsens Die Programmiersprache für Systemprogrammierung: C C hat erhebliche Schwächen. Grösste Schwäche: fehlende Typsicherheit.

50 Warum C++? 38 Over the years, C++ s greatest strength and its greatest weakness has been its C-Compatibility B. Stroustrup

51 Deutsch vs. C++ 39 Deutsch Es ist nicht genug zu wissen, man muss auch anwenden. (Johann Wolfgang von Goethe) C++ // computation int b = a a; // b = a^2 b = b b; // b = a^4

52 Syntax und Semantik 40 Programme müssen, wie unsere Sprache, nach gewissen Regeln geformt werden. Syntax: Zusammenfügungsregeln für elementare Zeichen (Buchstaben). Semantik: Interpretationsregeln für zusammengefügte Zeichen.

53 Syntax und Semantik 40 Entsprechende Regeln für ein Computerprogramm sind einfacher, aber auch strenger, denn Computer sind vergleichsweise dumm.

54 41 C++: Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell.

55 41 C++: Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. Syntaktisch und semantisch korrekt.

56 41 C++: Fehlerarten illustriert an deutscher Sprache DasAuto fuh r zu sxhnell.

57 41 C++: Fehlerarten illustriert an deutscher Sprache DasAuto fuh r zu sxhnell. Syntaxfehler: Wortbildung.

58 41 C++: Fehlerarten illustriert an deutscher Sprache Rot das Auto ist.

59 41 C++: Fehlerarten illustriert an deutscher Sprache Rot das Auto ist. Syntaxfehler: Satzstellung.

60 41 C++: Fehlerarten illustriert an deutscher Sprache Man empfiehlt dem Dozenten nicht zu widersprechen

61 41 C++: Fehlerarten illustriert an deutscher Sprache Man empfiehlt dem Dozenten, nicht zu widersprechen. Syntaxfehler: Satzzeichen fehlen.

62 41 C++: Fehlerarten illustriert an deutscher Sprache Sie ist nicht gross und rothaarig.

63 41 C++: Fehlerarten illustriert an deutscher Sprache Sie ist nicht gross und rothaarig. Syntaktisch korrekt aber mehrdeutig. [kein Analogon]

64 41 C++: Fehlerarten illustriert an deutscher Sprache Die Auto ist rot.

65 41 C++: Fehlerarten illustriert an deutscher Sprache Die Auto ist rot. Syntaktisch korrekt, doch semantisch fehlerhaft: Falscher Artikel. [Typfehler]

66 41 C++: Fehlerarten illustriert an deutscher Sprache Das Fahrrad gallopiert schnell.

67 41 C++: Fehlerarten illustriert an deutscher Sprache Das Fahrrad gallopiert schnell. Syntaktisch und grammatikalisch korrekt! Semantisch fehlerhaft. [Laufzeitfehler]

68 41 C++: Fehlerarten illustriert an deutscher Sprache Manche Tiere riechen gut.

69 41 C++: Fehlerarten illustriert an deutscher Sprache Manche Tiere riechen gut. Syntaktisch und semantisch korrekt. Semantisch mehrdeutig. [kein Analogon]

70 Syntax und Semantik von C++ 42 Syntax Was ist ein C++ Programm? Ist es grammatikalisch korrekt? Semantik Was bedeutet ein Programm? Welchen Algorithmus realisiert ein Programm?

71 Was braucht es zum Programmieren? 44 Editor: Programm zum Äandern, Erfassen und Speichern von C++-Programmtext Compiler: Programm zum Übersetzen des Programmtexts in Maschinensprache

72 Was braucht es zum Programmieren? 44 Computer: Gerät zum Ausführen von Programmen in Maschinensprache Betriebssystem: Programm zur Organsiation all dieser Abläufe (Dateiverwaltung, Editor-, Compiler- und Programmaufruf)

73 Das erste C++ Programm 45 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

74 Programmstruktur 46 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Kommentare // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

75 Programmstruktur 46 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> Include Directive int main() Funktionsdeklaration der main-funktion { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

76 Kommentare und Layout Kommentare hat jedes gute Programm, dokumentieren, was das Programm wie macht und wie man es verwendet und werden vom Compiler ignoriert. Syntax: Doppelslash // bis Zeilenende. Ignoriert werden vom Compiler ausserdem Leerzeilen, Leerzeichen, Einrückungen, die die Programmlogik widerspiegeln (sollten) 47

77 Kommentare und Layout 48 Dem Compiler ist s egal... #include <iostream> int main(){std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; int b = a * a; b = b * b; std::cout << a << "^8 = " << b*b << ".\n";return 0;}

78 Kommentare und Layout 48 Dem Compiler ist s egal... #include <iostream> int main(){std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; int b = a * a; b = b * b; std::cout << a << "^8 = " << b*b << ".\n";return 0;}... uns aber nicht!

79 Anweisungen (Statements) 49 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

80 Anweisungen 49 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Ausdrucksanweisungen // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

81 Anweisungen Werte und Effekte 49 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input Effekt: Ausgabe des Strings Compute... std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Effekt: Eingabe einer Zahl und Speichern in a } // computation Effekt: Speichern des berechneten Wertes von a*a in b int b = a a; // b = a^2 b = b b; // b = a^4 Effekt: Speichern des berechneten Wertes von b*b in b // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0; Effekt: Rückgabe des Wertes 0 Effekt: Ausgabe des Wertes von a und des berechneten Wertes von b*b

82 Anweisungen 49 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0; Rückgabeanweisung

83 49 Anweisungen (Variablen)deklarationen // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; Typnamen std::cin >> a; Deklarationsanweisungen // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

84 Verhalten eines Programmes 50 Zur Compilationszeit: vom Compiler akzeptiertes Programm (syntaktisch korrektes C++) Compiler-Fehler

85 Verhalten eines Programmes 50 Zur Laufzeit: korrektes Resultat inkorrektes Resultat Programmabsturz Programm terminiert nicht (Endlosschleife)

86 Variablen 57 repräsentieren (wechselnde) Werte, haben Name Typ Wert Adresse sind im Programmtext "sichtbar".

87 Variablen 57 repräsentieren (wechselnde) Werte, haben Name Typ Wert Adresse sind im Programmtext "sichtbar". Beispiel int a; definiert Variable mit Name: a Typ: int Wert: (vorerst) undefiniert Addresse: durch Compiler (und Linker, Laufzeit) bestimmt

88 Operatoren und Operanden 59 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b * b << ".\n"; return 0;

89 Operatoren und Operanden 59 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() Linker Operand (Ausgabestrom) Rechter Operand (String) { Ausgabe-Operator // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b * b << ".\n"; return 0;

90 Operatoren und Operanden 59 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Rechter Operand (Variablenname) Eingabe-Operator // computation int b = a Linker a; // Operand b = a^2(eingabetrom) b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b * b << ".\n"; return 0;

91 Operatoren und Operanden 59 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; } // computation int b = a a; // b = a^2 b = b b; // b = a^4 Zuweisungsoperator // output b b, i.e., a^8 std::cout << a << "^8 = " << b * b << ".\n"; return 0; Multiplikationsoperator

92 Ausdrücke (Expressions) 60 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b * b; // b = a^4 } // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0;

93 Ausdrücke (Expressions) 60 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Variablenname, primärer Ausdruck } // computation int b = a a; // b = a^2 b = b * b; // b = a^4 Variablenname, primärer Ausdruck // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0; Literal, primärer Ausdruck

94 Ausdrücke (Expressions) 60 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> Zusammengesetzer Ausdruck int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; } // computation int b = a a; // b = a^2 b = b * b; // b = a^4 Zusammengesetzer Ausdruck // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0;

95 Ausdrücke (Expressions) 60 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; Zweifach // b = a^2 zusammengesetzter Ausdruck b = b * b; // b = a^4 } // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0; Vierfach zusammengesetzter Ausdruck

96 L-Werte und R-Werte 63 L-Wert ( Links vom Zuweisungsoperator ) Ausdruck mit Adresse Wert ist der Inhalt an der Speicheradresse entsprechend dem Typ des Ausdrucks.

97 L-Werte und R-Werte 63 L-Wert ( Links vom Zuweisungsoperator ) Ausdruck mit Adresse Wert ist der Inhalt an der Speicheradresse entsprechend dem Typ des Ausdrucks. L-Wert kann seinen Wert ändern (z.b. per Zuweisung). Beispiel: Variablenname, weitere Beispiele etwas später...

98 L-Werte und R-Werte 64 R-Wert ( Rechts vom Zuweisungsoperator ) Jeder L-Wert kann als R-Wert benutzt werden (aber nicht umgekehrt).

99 L-Werte und R-Werte 64 R-Wert ( Rechts vom Zuweisungsoperator ) Jeder L-Wert kann als R-Wert benutzt werden (aber nicht umgekehrt). Jedes e-bike kann als normales Fahrrad benutzt werden, aber nicht umgekehrt.

100 L-Werte und R-Werte 64 R-Wert ( Rechts vom Zuweisungsoperator ) Jeder L-Wert kann als R-Wert benutzt werden (aber nicht umgekehrt). Darüber hinaus: Ausdruck der kein L-Wert ist Beispiel: Literal 0 R-Wert kann seinen Wert nicht ändern.

101 L-Werte und R-Werte 65

102 L-Werte und R-Werte 66 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b * b; // b = a^4 } // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0;

103 L-Werte und R-Werte 66 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; L-Wert } // computation int b = a a; // b = a^2 b = b * b; // b = a^4 L-Wert // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0; R-Wert

104 L-Werte und R-Werte 66 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> L-Wert int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; } // computation int b = a a; // b = a^2 b = b * b; // b = a^4 R-Wert // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0;

105 L-Werte und R-Werte 66 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; L-Wert // b = a^2 b = b * b; // b = a^4 } // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0; L-Wert

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Infovorkurs, Teil III: Maschinenabstraktion & Ausblick

Infovorkurs, Teil III: Maschinenabstraktion & Ausblick Infovorkurs, Teil 09.10.2015 Webseite Die neuen Folien, die Übungen und Umfrageergebnisse stehen online; außerdem die Turingmaschinen-Quelltexte. www.geile-hirnbude.de/vorkurs Algorithmen Laufzeitabschätzung

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

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum als Programmiersprache verwenden? Ein einfaches -Programm erstellen, übersetzen

Mehr

Willkommen... Agenda für heute, 25. Februar, 2010. ... Studentinnen und Studenten der Studiengänge

Willkommen... Agenda für heute, 25. Februar, 2010. ... Studentinnen und Studenten der Studiengänge Willkommen...... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur Vorlesung Agenda für heute, 25. Februar, 2010 g P http://www.pup.ethz.ch/

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

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

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

Informatik I. Übung 01. Olga Diamanti

Informatik I. Übung 01. Olga Diamanti Informatik I Übung 01 Olga Diamanti 1 Über mich PhD Studentin in D-INFK Aus Griechenland Habe Elektrotechnik studiert Email: olga.diamanti@inf.ethz.ch http://www.inf.ethz.ch/ personal/dolga/ Mein Büro:

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache

Mehr

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Informatik - Lehrgang 2000/2001 GRUNDLAGEN Informatik - Lehrgang 2000/2001 GRUNDLAGEN Ein Überblick! Das Werden der Informatik! Daten! Technische Informatik Der von Neumann Computer Versuch einer Entmystifizierung 2 Grundlagen Micheuz Peter Das

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

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen,

Mehr

SWE1 / Übung 2 (19.10.2011)

SWE1 / Übung 2 (19.10.2011) SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn

Mehr

5. Programmieren mit Pascal

5. Programmieren mit Pascal 5. Programmieren mit Pascal 5.0. Einführung 5.0.1. Die Datenorganisation Das Betriebssystem auf unserer vernetzten Rechneranlage heißt Windows XP. Ein Betriebssystem versetzt als Basisprogramm den Rechner

Mehr

Organisatorisches. Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg

Organisatorisches. Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg Organisatorisches Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Wenn Sie kommen...... kommen Sie pünktlich

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

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

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Selber Programmieren

Selber Programmieren Selber Programmieren Wenn es für ein Problem keine fertige Lösung gibt, oder wenn man keine fertige Lösung finden kann, dann muss man sich das benötigte Werkzeug selbst herstellen: Ein eigenes Programm

Mehr

Einführung in die Programmierung WS 2014/15. 2. Algorithmus, Berechenbarkeit und Programmiersprachen 2-1

Einführung in die Programmierung WS 2014/15. 2. Algorithmus, Berechenbarkeit und Programmiersprachen 2-1 Einführung in die Programmierung WS 2014/15 2. Algorithmus, Berechenbarkeit und Programmiersprachen 2-1 2. Alg., Ber. & PS Inhalt 1. Algorithmen 2. Programmiersprachen Algorithmus und Programm(iersprache)

Mehr

Informatik I Debugging

Informatik I Debugging Der erste Computer-Bug Informatik I G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Grace Hopper Admiral, US Navy 2 4 Folgen von Programmfehlern 1962 führte ein fehlender Bindestrich

Mehr

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes

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

Kapitel 11: Wiederholung und Zusammenfassung

Kapitel 11: Wiederholung und Zusammenfassung Wiederholung und Zusammenfassung 1: Begriff und Grundprobleme der Informatik Begriff Informatik Computer als universelle Rechenmaschine Grenzen der Berechenbarkeit Digitalisierung Problem der Komplexität

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

Programmiersprachen gestern, heute, morgen

Programmiersprachen gestern, heute, morgen Programmiersprachen gestern, heute, morgen Einleitung Sie kennen sicher die heute gängigen Sprachen wie C, Java oder Pascal. Doch wie kam es dazu? Wer hat diese Programmiersprachen erfunden? Und - noch

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

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

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

Geschichte der Informatik

Geschichte der Informatik Entwicklung von Informationstechnik und Durchdringung des Alltags seit der 2. Hälfte des 20 Jahrhunderts explosionsartig Informationsgesellschaft Zunehmende Bedeutung und Wert von Informationen Schnelle

Mehr

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

Mehr

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R.

Mehr

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig schwer verständlich nicht portabel, d.h. nicht auf Rechner

Mehr

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...?

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...? Kapitel 1 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Einführung Hallo, Computer...? Aufbau eines Computers Was ist eine Programmiersprache? Der Programmierprozess Warum Java?

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

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

1 Syntax von Programmiersprachen

1 Syntax von Programmiersprachen 1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

2 Der Schnelleinstieg *

2 Der Schnelleinstieg * 7 2 Der Schnelleinstieg * Eine Programmiersprache können Sie auf verschiedene Art und Weise lernen. Sie können sich zuerst mit den Konzepten befassen und anschließend mit der Praxis oder umgekehrt. Damit

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2 02.10.2015 + 07.10.2015 Seite 1 02.10.2015 + 07.10.2015 Seite 2 1 Anzahl der Klassenarbeiten: Mindestens zwei Klassenarbeiten pro Halbjahr (= 4 KA pro Jahr) Im ersten Ausbildungsjahr gibt es jedoch kein

Mehr

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

Programmieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer

Programmieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer Programmieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer Was Sie erwartet: Modernes C++ anwenden o ISO 14882 ist Norm für C++! o kein schlechteres Java, sondern mächtiger Moderne Standardbibliotheken anwenden

Mehr

2.4 Das erste C++-Programm *

2.4 Das erste C++-Programm * 2.4 Das erste C++-Programm * 11 2.4 Das erste C++-Programm * Den besten Lernerfolg erzielen Sie, wenn Sie alle Beispiele dieses Buchs selbst nachvollziehen. Sie können hierzu einen Compiler verwenden,

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Geschichte und Einteilung der Informatik 01101101 01011001 11010011 10011000 00000011 00011100 01111111 11111111 00110100 00101110 11101110 01110010 10011101 00111010 2 Der

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

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

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri 2009-10-30 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater, der für diese Vorlesung auf Alexander Kollers Java-Kurs basierte) Organisatorisches Wöchentliche

Mehr

Logik und diskrete Strukturen

Logik und diskrete Strukturen Prof. Dr. Institut für Informatik Abteilung I Wintersemester 2012/13 Organisatorisches Vorlesung Dienstag und Donnerstag 10:15 11:45 Uhr (HS 1) und 12:30 14:00 Uhr (HS 2) Vorlesung am Vormittag = Vorlesung

Mehr

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,

Mehr

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Übersicht In den ersten Wochen: Einführung in objektorientierte Programmierung mit C++ Anschließend: Einführung in die programmierbare

Mehr

Die Programmiersprache Scheme... DrRacket: Die Programmierumgebung http://www.racket-lang.org/ Sprache: Semantik. Sprache: Syntax

Die Programmiersprache Scheme... DrRacket: Die Programmierumgebung http://www.racket-lang.org/ Sprache: Semantik. Sprache: Syntax Informatik I 21. Oktober 2010 2. Informatik I 2. Jan-Georg Smaus 2.1 2.2 Albert-Ludwigs-Universität Freiburg 21. Oktober 2010 Jan-Georg Smaus (Universität Freiburg) Informatik I 21. Oktober 2010 1 / 40

Mehr

Definition: Algorithmus

Definition: Algorithmus Definition: Algorithmus Ein Algorithmus ist eine allgemeine Rechenvorschrift, die aus mehreren elementaren Instruktionen (Anweisungen bei Programmiersprachen, Befehlen bei Maschinensprachen) besteht, die

Mehr

Programmieren für Physiker: C++

Programmieren für Physiker: C++ Programmieren für Physiker: C++ Termine: Vorlesung: Di. 8:00-9:30 Uhr, Lehmann-HS (M. Steinhauser) Hörsaalübungen: Fr. 8:00-9:30 Uhr, Lehmann-HS (A. Mildenberger) Computerübungen: (voraussichtlich) (Fragen

Mehr

JAVA als erste Programmiersprache Semesterkurs

JAVA als erste Programmiersprache Semesterkurs JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik

Mehr

Informatik und Informationstechnik (IT)

Informatik und Informationstechnik (IT) Informatik und Informationstechnik (IT) Abgrenzung Zusammenspiel Übersicht Informatik als akademische Disziplin Informations- und Softwaretechnik Das Berufsbild des Informatikers in der Bibliothekswelt

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

3. Ziel der Vorlesung

3. Ziel der Vorlesung 3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf

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 zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Teil IV. Grundlagen der Programmierung

Teil IV. Grundlagen der Programmierung Teil IV Grundlagen der Programmierung Überblick 1 Einleitung zu C und C++ Aufbau von Programmen/Dateien Steueranweisungen Funktionen Mehr zu Datentypen: Felder, Zeiger und Strukturen Arbeit mit Dateien

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,

Mehr

Prinzipielle Ausführungsvarianten I

Prinzipielle Ausführungsvarianten I Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Unser erstes Java Programm AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!

Mehr

2 Grundlagen der Programmierung

2 Grundlagen der Programmierung 2 Grundlagen der Programmierung In diesem Kapitel bereiten wir die Grundlagen für ein systematisches Programmieren. Wichtigstes Ziel ist dabei die Herausarbeitung der fundamentalen Konzepte von Programmiersprache.

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

Mehr

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte 4. Datentypen Einleitung Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Konversion / Type-Cast Datentyp von Literalen Operatoren Ausdrücke Allgemeine Informatik 2 SS09

Mehr

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1 Programmiertechnik Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150 Oliver Haase Hochschule Konstanz 1 Organisatorisches Vorlesung: montags, 8:00 9:30h, Raum C-109 freitags, 8:00

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 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

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Kapitel 3 Programmierung Lernen mit Scheme. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 3 Programmierung Lernen mit Scheme. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 3 Programmierung Lernen mit Scheme 1 3.1 Wie lehrt man Programmierung? Klassischer Ansatz: Es wird die Syntax einer (modischen) Programmiersprache beigebracht Es wird eine komplexe, kommerzielle

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Java-Vorkurs 2015. Wintersemester 15/16

Java-Vorkurs 2015. Wintersemester 15/16 Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich

Mehr

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF ITS Teil 2: Rechnerarchitektur 1. Grundschaltungen der Digitaltechnik a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF b. Zähler (Bsp. 4-Bit Zähler) - Eingang count wird zum Aktivieren

Mehr

Algorithmen und Programmierung

Algorithmen und Programmierung Algorithmen und Programmierung Kapitel 5 Formale Algorithmenmodelle A&P (WS 14/15): 05 Formale Algorithmenmodelle 1 Überblick Motivation Formale Algorithmenmodelle Registermaschine Abstrakte Maschinen

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Programmierausbildung mehrsprachig von Anfang an eine erste Bilanz

Programmierausbildung mehrsprachig von Anfang an eine erste Bilanz Programmierausbildung mehrsprachig von Anfang an eine erste Bilanz Roland Rüdiger r.ruediger@fh-wolfenbuettel.de 6. Norddeutsches Kolloquium über Informatik an Fachhochschulen, FH Brandenburg 11./12. Mai

Mehr

Programmieren. Wie entsteht ein Programm

Programmieren. Wie entsteht ein Programm Wie entsteht ein Programm 1/9 1. Schritt: Programmentwurf Der wichtigste Teil beim Erstellen eines Programms ist der Programmentwurf. Dabei wird das vorgegebene Problem analysiert, es wird ermittelt, welche

Mehr

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

Mehr

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

3. Grundregeln für die Java-Programmierung

3. Grundregeln für die Java-Programmierung 3. Grundregeln für die Java-Programmierung Sprachaufbau von Java Programmen Stilistische Konventionen JavaDoc Allgemeine Informatik 2 SS09 Folie 2.1 Allgemeine Vorbemerkung Bei Programmiersprachen sind

Mehr

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press Andre Willms Spielend C++ lernen oder wie man Käfern Beine macht Galileo Press Vorwort 11 1 Das Abenteuer beginnt 13 1.1 Die Programmierumgebung installieren 15 1.2 Der erste Start 20 1.2.1 Visual C++registrieren

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

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

Programmieren in C Einführung

Programmieren in C Einführung Programmieren in C Einführung Aufbau eines Programms Einfache Programme Datentypen und Vereinbarungen Das Entwicklungswerkzeug Seite Einfache Programme Kugeltank-Berechnung #include void main

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 13. Aufgabe (13 Punkte) Schreiben Sie eine neue Klasse Zahlenanalyse, mit der Integer-Objekte genauer betrachtet werden können. Bei den zu entwickelnden Methoden kann es immer sinnvoll sein, sich den Ablauf

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung 1. Einführung 1.1. Ziele der Vorlesung Einblicke und Überblicke zu den Mitteln (Hardware, Software) und Methoden (Analysieren, Entwerfen, Algorithmieren, Programmieren,

Mehr

Python Programmieren. Variablen, Ausdrücke und Anweisungen

Python Programmieren. Variablen, Ausdrücke und Anweisungen Python Programmieren Funktionen Module und Namensräume Datentypen in Python Was noch zu sagen bleibt... richard rascher-friesenhausen Programmierung SS 12 Daten: Wert und Typ Variablen Variablennamen und

Mehr