Einführung in das Programmieren für Technische Mathematiker
|
|
- Bärbel Bergmann
- vor 8 Jahren
- Abrufe
Transkript
1 Einführung in das Programmieren für Technische Mathematiker Einführung in C++ C++ Marcus Page, MSc. Prof. Dr. Dirk Praetorius I Was ist C++ I Programmierparadigmen I C++ im Vergleich mit C Fr. :15-11:5, Freihaus HS 8 Institut für Analysis und Scientific Computing 1 Programmierparadigmen I fundamentaler Programmierstil I Sprachen unterscheiden sich im Aufbau Klassifizierung von Programmiersprachen I Es geht nicht um das was sondern um das wie I bestimmen Entwurf und Design von PS I Imperativ, Deklarativ, Objektorientiert Imperative Programmierparadigmen I (Assemblersprachen) I Strukturierte Programmierung I Prozedurale Programmierung I Modulare Programmierung 2 3
2 Assemblersprachen I sehr maschinennahe Programmierung I abhängig von der aktuellen Architektur I keine Schleifen / Strukturen wie etwa in C I Kenntnis des Prozessors wichtig I manueller Zugriff auf einzelne Register I Beispiel "Hello World" 1.data 2 out:.asciiz "Hallo Welt" 3 # die Zeichenkette zum Ausgeben (als Label) 5.text 6 main: li $v0, 7 # Befehl ( print_string ) in Register schreiben 8 9 la $a0, out # Argument für den Systemaufruf in das 11 # Argumentregister schreiben syscall 1 # Ausführung der Systemfunktion (Ausgabe) li $v0, 17 # Befehl ( exit ) in Register schreiben syscall 20 # Ausführung der Systemfunktion (Programmende) Strukturierte Programmierung I Im Laufe der Zeit wurden Programme größer I mehr Leute mussten programmieren I manuelle Registerzuweisung zu aufwändig I leicht verständliche Sprachen nötig Programmierer konzentriert sich auf Problem nicht auf technischen Hintergrund I Strukturen wurden wichtig Programme müssen lesbarer werden einfache Schleifen / Verzweigungen I Beispiel: BASIC 5 Strukturierte Programmierung I Beispiel in BASIC 1 INPUT "What is your name: ", U$ 2 20 PRINT "Hello "; U$ 3 30 INPUT "How many stars do you want: ", N 0 S$ = "" 5 50 FOR I = 1 TO N 6 60 S$ = S$ + "*" 7 70 NEXT I 8 80 PRINT S$ 9 90 INPUT "Do you want more stars? ", A$ 0 IF LEN(A$) = 0 THEN GOTO A$ = LEFT$(A$, 1) IF A$ = "Y" OR A$ = "y" THEN GOTO PRINT "Goodbye "; U$ 1 END I Ausgabe: What is your name: Mike Hello Mike How many stars do you want: 7 ******* Do you want more stars? yes How many stars do you want: 3 *** Do you want more stars? no Goodbye Mike Prozedurale Programmierung I Probleme werden komplexer Programme werden länger I Ideen: Wartebarkeit, Wiederverwendbarkeit einzelne Komponenten auslagern einzeln testen später zusammenfügen verwende Blöcke I Beispiele: Fortran, COBOL, C, Pascal 6 7
3 Prozuderale Programmierung I Beispiel in PASCAL 1 program stars; 2 3 procedure plotstars(amount : integer); var 5 i : integer; 6 begin 7 for i := 1 to amount do write( * ); 8 writeln( ); 9 end; 11 var 12 amount : integer; 13 answer : char; 1 begin 15 repeat 16 writeln( how many stars do you want? ); 17 readln(amount); 18 plotstars(amount); 19 writeln( do you want more stars? (y/n) ); 20 readln(answer); 21 until answer <> y ; 22 end. I Ausgabe: how many stars do you want? 12 ************ do you want more stars? (n) n Modulare Programmierung I verbinde kleinere Programmteile zu Modulen Daten werden gebündelt weitere Erhöhung der Übersichtlichkeit I Erhöhung der Wiederverwendbarkeit benutze alles wieder soweit es geht verringert Fehlerquellen spart Arbeit I Beispiele: Modula-2, Oberon, Ada, (C) I Beispiel: Struktur Shape 1 #include <stdio.h> 2 3 typedef struct _Shape_ { 5 // type 1 = line, type 2 = square 6 int type; 7 int size; 8 } Shape; 8 9 Modulare Programmierung 1 void plotshape(shape s) 2 { 3 int i, j; if (s.type == 1) 5 { 6 for (i = 1; i <= s.size; i++) 7 {printf("*");} 8 printf("\n"); 9 } else 11 { 12 for (i = 1; i <= s.size; i++) 13 { 1 for (j = 1; j <= s.size; j++) 15 {printf("*");} 16 printf("\n"); 17 }}} int main (int argc, const char * argv[]) 20 { 21 Shape myshape, myshape2; 22 myshape.type = 1; 23 myshape.size = 3; 2 myshape2.type = 2; 25 myshape2.size = ; plotshape(myshape); 28 plotshape(myshape2); 29 } Objektorientierte Programmierung I Problem: einfache Module zu unflexibel lässt sich nicht auf beliebige Formen anwenden was passiert bei Rechtecken (zwei Größen)? I Daten lassen sich schlecht mit Funktionen kapseln Software schlecht zu warten I Idee: Gemeinsamkeiten nur einmal programmieren nur Unterschiede abwandeln I Vererbung I Klassenhierarchie I Kapsle Daten mit Funktionen I Beispiele: C++, Java I Ausgabe: *** **** **** **** **** 11
4 Objektorientierte Programmierung Generische Programmierung I stellen eine Weiterentwicklung der OO dar I Algorithmen für allgemeine Datentypen parametrische Polymorphie I Code möglichst allgemein generieren I im Anwendungsfall konkretisieren I z.b.: Sortieralgorithmen nicht nur für Zahlen, Strings I Beispiele: C++, Java I alle Typen können auf plot zugreifen Rechteck sind nur mehrere Linien Deklarative Programmierung Klassifikation von Programmiersprachen I Beschreibung des Problems steht im Vordergrund I Lösungsweg wir automatisch ermittelt I es geht darum was gelöst werden soll I das wie ist nicht so relevant I verwendet hauptsächlich Rekursion funktionale Sprachen I keine Anweisungen, nur Ausdrücke I Beispiele: LISP, ProLog, SQL, Haskell quicksort [] = [] quicksort (x:xs) = quicksort [n n<-xs, n<x] ++ [x] ++ quicksort [n n<-xs, n>=x] 1 15
5 sonstige Unterschiede zwischen Programmiersprachen I Compiler / Interpreter wann wird Code übersetzt / ausgeführt auch Mischung möglich I Plattformunabhängigkeit Internetanwendungen I Verbreitung der Sprache gibt es Bibliotheken / support / Foren I Ziele der Sprache warum wurde die Sprache entwickelt? (universell / speziell / Lernzwecke) I jede Sprache hat Vor- und Nachteile I es gibt für jede Sprache sinnvolle Probleme I beliebige Programme immer möglich aber: Starcraft II, Photoshop in Assembler? Treiber in Java? Hello World in Brainfuck I Ziel: Turing-vollständige PS mit kleinem Compiler I kompletter Befehlssatz enthält 8 Befehle I 9 Compiler mit 98 Bytes (MS-DOS) [ Vorbereitende Schleife 3 > > >+++>+<<<<- ] 5 >++. Ausgabe von H 6 >+. Ausgabe von e l 8. l o >++. Leerzeichen 11 << W 12 >. o r l d 16 >+.! 17 >. Zeilenvorschub Wagenrücklauf Good to know Was ist C++ I Eine Weiterentwicklung von C I Verwendung neuer Programmierparadigmen I Erlaubt völlig neue Lösungswege I Erlaubt problemnahe Programmierung I Ziele beim Entwickeln der Sprache Kompatibilität ) keine Änderung der Syntax Vielseitige Einsetzbarkeit (Eigene Datentypen können entworfen werden) Verwaltungsaufwand minimieren Strukturierung erleichtern Strenge Typisierung (erleichtert Fehlerfindung) Stärkere Zugriffskontrolle I C++ ist eine höhere Programmiersprache I Entwicklung ab 1979 bei AT&T Entwickler: Bjarne Stroustrup I Erweiterung von C Einführung eines Klassenkonzeptes (C with classes) bessere Wiederverwendbarkeit bessere Wartbarkeit Abwärtskompatibel (zu C) ) keine Syntaxkorrektur I Heute: voll objektorientiert ISO genormt I Inspiration für andere Sprachen C#, Java I Compiler: g++, gpp frei verfügbar Microsoft Visual C++ Compiler Borland C++ Compiler 18 19
6 Was kann mir helfen? I Endlose Anzahl an Büchern Die C++ Programmiersprache Jetzt lerne ich C++ C++ in 21 Tagen C++ für C Programmierer I Online Tutorien einfach googlen I C++ API C++ Befehlsreferenz I Entwicklungsumgebungen I engl. Integrated Development Environment (IDE) Erleichtern das Programmieren selbst farbliches Hervorheben automatisches Einrücken automatische Codeergänzung code folding debugger Einige C++ IDEs I Netbeans (frei verfügbar) I Eclipse (frei verfügbar) I Microsoft Visual Studio (sauteuer) I Microsoft Visual Studio Express (frei) I Xcode (frei für Mac OS) App Store ;) I können mehr als nur C++ I werden in der Übung angeschaut Hello World 1 # include <iostream> 2 3 int main() { 5 std::cout << "Hello World!\n"; 6 return 0; 7 } Standardbibliothek I Ausgaben I Eingaben I Strings I Container I Speichern unter helloworld.cpp I Standardbibliothek für Ein- und Ausgabe in C++ heißt iostream I cout ist der Standard-Ausgabestream kann unterschiedliche Datentypen übernehmen I Notation :: deklariert den Namensbereich I Operator «übergibt sein zweites Argument an den Ausgabestream I main hat Rückgabewert int 1 # include <iostream> 2 using namespace std; 3 int main() 5 { 6 cout << "Hello World!\n"; 7 } I Ausgabe: Hello World! I mehr zu namespaces später 22 23
7 Datentyp string 1/2 3 using namespace std; 5 int main() { 6 string str1 = "Hallo"; 7 string str2 = "Welt"; 8 string str3 = str1 + " " + str2; 9 cout << str3 + "!\n"; 11 str3.replace(6,, "Peter"); 12 cout << str3 + "!\n"; 13 } I Ausgabe: Hallo Welt! Hallo Peter! I Strings sind mächtiger als char* I liefert eine Reihe nützlicher Operationen + zur Konkatenation replace zum ersetzen von Teilstrings substr zum auslesen von Teilstrings length zum auslesen der Länge u.v.m. I Datentypen können Methoden haben Prinzip der Datenkapselung Sie enthalten mehr als nur die Zeichen (Unterschied zu C) Datentyp string 2/2 3 #include <stdio.h> using namespace std; 5 6 int main() { 7 string str1 = "Hallo"; 8 string str2 = "Welt"; 9 string str3 = str1 + " " + str2; 11 printf("%s\n", str3.c_str()); 12 cout << str3 + "\n"; 13 } I Ausgabe: Hallo Welt Hallo Welt I Inhalt mittels c str() erreichbar Das sind die bekannten char-arrays aus C Zugriff über name.c str() können mittels printf ausgegeben werden I Wichtig: string 6= char-array 2 25 Eingaben Datentyp bool I in C gibt es keinen logischen Datentyp I Abhilfe schafft Interpretation 0 = false 1 = true I das könnte so aussehen: #define false 0 #define true 1 typedef int bool; I könnte aber auch mit Abfragen gelöst werden I C++ enthält logischen Datentyp bool Werte true und false I implizite Konversion arithmetischer Typen 0 entspricht false alles andere entspricht true 3 using namespace std; 5 int main() 6 { 7 string str; 8 cout << "Geben Sie Ihren Namen ein\n"; 9 cin >> str; cout << "Hallo " << str << "!\n"; 11 } I Eingabe: Praetorius Ausgabe: Hallo Praetorius! I Eingabe: Dirk Praetorius Ausgabe: Hallo Dirk! I Verwende getline für ganze Zeile 3 using namespace std; 5 int main() 6 { 7 string str; 8 cout << "Geben Sie Ihren Namen ein\n"; 9 getline(cin, str); cout << "Hallo, " << str << "!\n"; 11 } I Eingabe: Dirk Praetorius Ausgabe: Hallo, Dirk Praetorius! 26 27
8 Vektoren 1/3 Vektoren I Verwendung als dynamische Arrays I ohne alloc, malloc I sind Container für beliebige Datentypen (mehr dazu später) 3 using namespace std; 5 struct Eintrag { 6 string name; 7 int nummer; 8 }; 9 int main() 11 { 12 Eintrag telbuch[3]; 13 telbuch[0].name = "Peter Pan"; 1 telbuch[1].name = "Wolverine"; 15 telbuch[2].name = "Angela Merkel"; 16 cout << telbuch[2].name + "\n"; 17 } I Ausgabe: Angela Merkel I Verwendung sinnvoll falls Größe bekannt I Problem: Speicher nicht dynamisch erweiterbar Lösung in C: Pointer, malloc, realloc sehr mühsam und unübersichtlich I Lösung in C++: Vektoren Vektoren 2/3 3 #include <vector> using namespace std; 5 6 struct Eintrag { 7 string name; 8 int nummer; 9 }; 11 int main() 12 { 13 vector<eintrag> telbuch(3); 1 telbuch[0].name = "Peter Pan"; 15 telbuch[1].name = "Wolverine"; 16 telbuch[2].name = "Angela Merkel"; 17 cout << telbuch[2].name + "\n"; 18 } I Ausgabe: Angela Merkel I Vektoren sind C++ Standardcontainer können beliebige Datentypen übernehmen dienen zum Verwalten von Datenmengen I Verwendung: vector<type> name(size); Achtung, nicht verwechseln: vector<eintrag> buch(00); 00 Elemente vector<eintrag> buecher[00]; 00 Vektoren Vektoren 3/3 3 #include <vector> using namespace std; 5 6 struct Eintrag { 7 string name; 8 int nummer; 9 }; 11 int main() 12 { 13 vector<eintrag> telbuch(3); 1 telbuch[0].name = "Peter Pan"; 15 cout << "size: " << telbuch.size() << endl; 16 telbuch.resize(telbuch.size()+); 17 cout << "size: " << telbuch.size() << endl; 18 } I Ausgabe: size: 3 size: 7 I Speicher dynamisch veränderbar mittels resize I Viele hilfreiche Funktionen: size push back, pop back insert front, back uvm. I endl bewerkstelligt Zeilenumbruch 30 31
9 weitere Standardcontainer I list I queue I stack I deque I set I priority queue I set I multiset I map Ratschläge und Unterschiede zu C I Bibliotheken verwenden API verwenden I Standardbibliothek eher als andere I string anstelle von char* I vector<t> anstelle von T[] I cout anstelle von printf I Std. Bibliothek verwendet den Namensbereich std I multimap 32 33
Standardbibliotheken. Datentyp bool. Eingaben 2/2. Eingaben 1/2. In C gibt es keinen logischen Datentyp
Datentyp bool Standardbibliotheken Ein- und Ausgabe Vektoren Container In C gibt es keinen logischen Datentyp Abhilfe schafft Interpretation 0 == false 1 == true Das könnte so aussehen: #define false 0
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrListen. Arrays. Deklaration. Einfach verkettete Listen
Arrays Bisher Listen von Daten in Arrays gespeichert type* array = malloc(n*sizeof(type)); dyn. Verlängern und Kürzen am Ende möglich array = realloc(array,nnew); Zugriff auf j-ten Eintrag (Lesen/Schreiben)
MehrAlgorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
MehrAllgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>
Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen
MehrGrundlagen. 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
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrInstallation und Inbetriebnahme von Microsoft Visual C++ 2010 Express
Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation
MehrProgrammieren Lernen mit BYOB. Gerald Futschek 5. November 2012
Programmieren Lernen mit BYOB Informatiktag 2012 Gerald Futschek 5. November 2012 Erste Programmier Schritte in der Schule Sehr viele verschiedene Dinge zu lernen: Syntax und Semantik der Befehle, Algorithmen,
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen This semester s menu... Imperative Programmierung
MehrInformatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach
Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler Joliot-Curie-Gymnasium GR 2010 Nico Steinbach 0. Organisatorisches Warum habt Ihr euch für den Kurs eingeschrieben?
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
MehrÜ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
MehrBrainfuck. 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
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrAlgorithmen und Programmieren II Einführung in Python
Algorithmen und Programmieren II Einführung in Python SS 2012 Prof. Dr. Margarita Esponda 1 Was ist Python? eine Skript-Sprache Anfang der 90er Jahre entwickelt. Erfinder: Guido van Rossum an der Universität
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrProgrammierkurs 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
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrDLLs (dynamic loaded libraries) mit MingW erstellen
DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrEinfü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
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrProgrammieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
MehrZiel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind
Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt
MehrVorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und
MehrTutorium 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
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrC++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16
Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier
MehrUnterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
MehrObjektorientierte 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
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrHello 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
MehrKlassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrKontrollstrukturen - Universität Köln
Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,
MehrCGI Programmierung mit Ha. Markus Schwarz
CGI Programmierung mit Ha Markus Schwarz Überblick Was ist funktionale Programmierung Einführung in Haskell CGI-Programmierung mit Haskell Ein etwas größeres Beispiel Was ist funktionale Programm Ein Programm
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrProgrammierkurs: Delphi: Einstieg
Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache
MehrInformatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692
Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b
MehrZum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...
Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau
MehrE-PRIME TUTORIUM Die Programmiersprache BASIC
E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete
MehrInformatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-
Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Winter 2009/2010, 18. Februar 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name:
MehrProgrammieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff
Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;
MehrPragmatik von Programmiersprachen
Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrPHP Kurs Online Kurs Analysten Programmierer Web PHP
PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione
MehrPass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
MehrI.1 Die Parrot Assemblersprache
I.1 Die Parrot Assemblersprache Die virtuelle CPU Parrot ermöglicht die Verarbeitung der Parrot Assemblersprache (PASM). Zum Einstieg soll ein erstes Beispiel die Ausführung einer PASM-Datei zeigen. Legen
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
MehrProgrammierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit
MehrWas ist Logische Programmierung?
Was ist Logische Programmierung? Die Bedeutung eines Computer-Programms kann durch Logik erklärt werden. Die Idee der logischen Programmierung besteht darin, die Logik eines Programms selber als Programm
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrObjektorientiertes 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
MehrProgrammiersprachen und Programmierkonzepte
Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare
MehrFragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))?
Fragen f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Wozu evaluiert [f [ ], f [ ]]? Weiteres Beispiel: f [ ] y = [
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
Mehr1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20
Inhaltsverzeichnis Liebe Leserin, lieber Leser!...13 1Schnelleinstieg 14 Welche Vorkenntnisse benötigen Sie für dieses Buch?...16 An wen richtet sich dieses Buch?...16 Was benötigen Sie, um die Programmiersprache
MehrÜbersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
MehrM. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrDatentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache
Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert
MehrKapitel 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
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrProgrammieren 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
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
MehrC++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang
Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige
MehrEinführung in Eclipse und Java
Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik
MehrObjektorientierte Programmierung mit C++ Vector und List
Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
Mehr2.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,
MehrAutor: 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
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrLehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup
Universität Dortmund Lehrstuhl Informatik VI Grundzüge der Informatik * WS 28/29 Prof. Dr. Joachim Biskup Leitung der Übungen: Arno Pasternak Lösungs-Ideen Übungsblatt 6 A: Grammatiken, Syntaxdiagramme
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrProgrammierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.
Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm
MehrHochschule München, FK 03 FA SS 2012. Ingenieurinformatik
Hochschule München, FK 03 FA SS 2012 Ingenieurinformatik Zulassung geprüft vom Aufgabensteller: Teil 1/Aufgabe 1: 30 Minuten ohne Unterlagen, Teil 2/Aufgaben 2-4: 60 Minuten, beliebige eigene Unterlagen
MehrMPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven
MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop
MehrC++ mit. Microsoft Visual C++ 2008. Richard Kaiser. Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.
Richard Kaiser C++ mit Microsoft Visual C++ 2008 Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.NET-Programmierung Mit CD-ROM Geleitwort Wenn man heute nach Literatur über Programmiersprachen
MehrProzedurale Datenbank- Anwendungsprogrammierung
Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.
MehrJava 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
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrEinführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
Mehr