Physik auf dem Computer
|
|
- Hennie Busch
- vor 6 Jahren
- Abrufe
Transkript
1 Physik auf dem Computer Johannes Roth Institut für Theoretische und Angewandte Physik, Universität Stuttgart Sommersemester 2011
2 Hauptprogramm Notwendige Elemente: #include <iostream> using std::cout; int main() { cout << "Hello World\n" ; } return 0; // Zeichenkette auf Bildschirm // ausdrucken
3 Präprozessoranweisungen werden vor Programmübersetzung vorverarbeitet #ifndef HEADER_H #define HEADER_H // Deklarationen #endif Variable extern setzen: g++ -DHEADER_H myprog.cc
4 1. Sprachkonstrukte Kommentare: // Kommentar Daten: Variablen und Konstanten, Felder (Vereinbarungen mittels Deklarationen) Operatoren und Funktionen I/O-Sprachelemente (Ein-, Ausgabe) 2. Kommentare C++: Kommentare werden durch // eingeleitet. C: /* Kommentar */ Kommentare lassen sich nicht schachteln!
5 Datentypen 3. Datentypen, Variablen, Konstanten Grundlegende Datentypen in C++: int, float, double, bool, char (i) Datentyp int: ganzzahlige (integer) Variablen Deklaration von Variablen: int i, j=5; Im weiteren Verlauf des Programms werden die Variablen über den in der Deklaration vereinbarten Variablennamen angesprochen. Interne Darstellung von int-variablen im Speicher: Folge von {0, 1}-bits, 8bit ˆ= 1 byte ( ˆ= 1 character) int i // 32-bit Variable (Zahlenbereich von 2 31 bis = ) Größere oder kleinere Zahlen führen zu overflow. Beispiel: i = : overflow
6 Datentypen Weitere Datentypen für ganzzahlige Variablen: short s; // 16-bit Variable long l; // 64-bit Variable Datentyp beeinflußt Speicherbedarf und Rechenzeit! (ii) Datentyp float und double: Typen für Gleitkommazahlen float f = 1./3.; // f= (einfache Genauigkeit) float f; // 32-bit Variable (ca. 7 Dezimalstellen + Exponent) double d; // 64-bit Variable (ca. 15 Dezimalstellen + Exponent) Empfehlung: Verwende double! Ein- und Ausgabe als Gleitkommazahlen oder in Exponentialdarstellung: Mantisse, Exponent e+6 = Interne Zahlendarstellung: Compiler- und Maschinenabhängig! Datentypen int, float, double: wichtig zum Rechnen
7 Datentypen (iii) Datentyp char: Variablen für einzelne Textzeichen char c= x ; // ein Zeichen: x (1 byte ^= 8 bit) Aneinanderreihung von characters liefert string (Text). (iv) Datentyp bool: Boolsche Variable, kann nur den Wert true oder false annehmen. bool test; // Deklaration einer Boolschen Variable test = (0 < 5) // test hat den Wert true if test {Anweisung 1} else {Anweisung 2} // Anweisung 1 wird // ausgefuehrt (Logische Verknüpfungen: && (and), (or),! (not)) (Vergleichsoperatoren: ==,!=, <, <=, >, >=)
8 Datentypen Bemerkungen zu den Datentypen: Deklarationen können an fast beliebiger Stelle im Programm stehen. Soll der Wert nach einer Initialisierung nicht mehr geändert werden, so empfiehlt sich die Deklaration von Konstanten. Beispiel: const double pi = ; Die Variablen existieren innerhalb des Blocks {... } in welchem sie deklariert sind. sizeof(variable) liefert die aktuelle Größe der Variablen variable (in bytes).
9 Datentypen Felder: Zusammenfassung mehrerer Variablen gleichen Typs in einem zusammenhängenden Speicherbereich. Beispiele: const int size = 20; int a[size]; // array von 20 int Variablen Zugriff auf einzelne Elemente erfolgt durch Indizes: a[0] = 3; a[1] = 5; a[19] = a[0] + a[1]; // a[19] = 8 Wichtig: Index läuft von 0 bis size 1!!! double matrix [20] [30]; // Deklaration einer Matrix // mit 20*30=600 Elementen char text[] = "hello"; // Text array mit 5 Zeichen // (Achtung: sizeof(string) = 6)
10 Datentypen Beispiel: Matrix-Vektor-Multiplikation v 2 = M v 1 double matrix [20] [30]; double vector1[30]; double vector2[20];... Initialisierung von matrix und vector1... for (int i=0; i<20; i++){ double tmp = 0; for (int j=0; j<30; j++) tmp = tmp + matrix[i][j] * vector1[j]; vector2[i] = tmp; }
11 Kontrollstrukturen 4. Kontrollstrukturen Bedingte und wiederholte Ausführung von Programmteilen: if, switch-anweisung und do, while, for-schleifen If-Anweisung: if (Boolscher Ausdruck/Variable) {Anweisungsblock 1} else if (...) // optional {Anweisungsblock 2} else // optional {Anweisungsblock 3};
12 Kontrollstrukturen Switch-Anweisung: switch( c) { // Anfang des case blocks case a : cout << "hello world!"; break; case b : cout << "HELLO "; // Weitergehen beabsichtigt, // break fehlt case c : cout << "WORLD!"; break; default: cout << "unknown input"; break; // Nicht noetig, aber guter Stil } // Ende des case blocks
13 Kontrollstrukturen While-Schleifen: while (Boolscher Ausdruck/Variable) {Anweisungsblock}; Do-Schleifen: do {Anweisungsblock} while (Boolscher Ausdruck/Variable); For-Schleifen: for (int i=0; i<20; i++) {Anweisungsblock}; // Zaehlschleife fuer i=0,...,19
14 Kontrollstrukturen Goto-Anweisung, Labels Vorzeitiges Verlassen tiefer verschachtelter Schleifen Beispiel: Durchsuchen einer Liste int a[20][30],i,j; for (i=0; i<20; i++) for (j=0; j<20; j++) if (a[i][j] == 42) goto element_gefunden;. element_gefunden: // label... // Ausgabe von i,j...
15 Funktionen und Operatoren 5. Funktionen und Operatoren Sinn und Zweck von Funktionen: Einmaliges Schreiben von Programmteilen, die sich im Programm mehrfach wiederholen Bessere Strukturierung und Lesbarkeit von Programmen Beispiel: Berechnung von Potenzen y = x n = power(x, n) mit x reell, n ganze Zahl. Vereinbarung (Deklaration) der Funktion (vor dem Hauptprogramm): double power (double base, int exponent) Aufruf der Funktion im Programm:. y = power(x,n);.
16 Funktionen und Operatoren Definition der Funktion in separatem Programmtext: double power (double base, int exponent); { double result; // weitere Deklarationen, Rechenoperationen return result // Datentyp double }
17 Funktionen und Operatoren Viele Standardfunktionen brauchen nicht selbst geschrieben zu werden, sondern sind in Bibliotheken vorhanden. Beispiel: Benutzung von Funktionen aus der Mathematik-Bibliothek #include <cmath> double x, y;... y = sqrt(x); Übersetzen des Programms und Linken der Programmbibliothek ( library ) libm.a: g++ programm.cc power.cc -lm Programmteile in anderen Dateien müssen angegeben werden!
18 Funktionen und Operatoren Häufig einfacher zu lesen als Funktionen sind: Operatoren Beispiel: Statt z = plus(x,y) (Funktion mit 2 Argumenten) schreibt man einfacher z = x + y Arithmetische binäre Operatoren: + - * / % (Beachte: Division ist abhängig vom Datentyp!) Kurzschreibweisen durch Kombination mit Gleichheitszeichen: i += j; // i = i + j; i -= j; // i = i - j; i *= j; // i = i * j; i /= j; // i = i / j;
19 Funktionen und Operatoren Unäre Operatoren: x = feld[i++]; // x = feld[i]; i = i + 1; // (postfix-form) x = feld[++i]; // i = i + 1; x = feld[i]; // (prefix-form) Analog: i-- und --i Vergleichsoperatoren: == // gleich!= // ungleich > // groesser >= // groesser oder gleich < // kleiner <= // kleiner oder gleich
20 Funktionen und Operatoren Logische Operatoren (zwischen Boolschen Variablen oder Ausdrücken): && // and // or! // not Der Wert eines logischen Ausdrucks und das Resultat eines Vergleichsoperators sind vom Typ bool, also entweder true oder false. Beispiel: (1 < 2) && (2 < 3) (3 < 4) }{{}}{{}}{{} true true true }{{} true && (5 < 5) }{{} false } {{ } false } {{ } true
21 Funktionen und Operatoren Bindungsstärke (Priorität) von Operatoren: * / % + - < <= > >= ==!= && = *= /= %= += -=
22 Funktionen und Operatoren Ternärer Operator: (Boolscher Ausdruck/Variable)? (Ausdruck 1) : (Ausdruck 2) Beispiel: int i; cout << (i>0)? i : 0; ist Alternative zu int i; if (i>0) cout << i else cout << 0;
23 Funktionen und Operatoren Übergabe von Argumenten an eine Funktion: by value Vor dem Aufruf der Funktion erfolgt eine Kopie der Argumente (auf dem Stack). Die Funktion arbeitet mit den Kopien. (Ausnahme: Felder.) Dies eröffnet die Möglichkeit, Funktionen rekursiv aufzurufen. { 1, n = 0 Rekursive Funktionen, Beispiel Fakultät: n! n (n 1)!, n > 0 int fak(int n){ if (n==0) return 1; else return n*fak(n-1); } ist Alternative zu int fak(int n){ int result=1; for (int i=2; i<=n; i++) result *= i; return result; }
24 Funktionen und Operatoren Beispiel quicksort: void quicksort(int left, int right){ int i; if (left < right){ i = partition(left,right); quicksort(left,i-1); quicksort(i+1,right) } } Parameterübergabe per Referenz (Adresse): Voranstellen von & vor den Variablennamen Beispiel: void swap(int &a, int &b){ int tmp = a; a = b; b = tmp }
25 #include <iostream> #include <fstream> using namespace std; void quicksort(int l, int r, double x[]); int main(){ int n = 0; double x[1000]; ifstream ins("data", ios::in); // Oeffnen der Eingabedatei while (ins >> x[n]) n++; // Lesen der Daten quicksort(0,n-1,x); ofstream outs("sort", ios::out); // Oeffnen der Ausgabedatei for (int i=0; i<n; i++) outs << x[i] << \n ; // Schreiben der Daten return 0; } void quicksort(int l, int r, double x[]){ if (r > l){ int i = l; double xpivot = x[l]; for (int j=l+1; j<=r; j++) if (x[j] < xpivot){ x[i++] = x[j]; // Kurzform fuer: x[i] = x[j]; i = i+1; x[j] = x[i]; } x[i] = xpivot; quicksort(l, i-1, x); quicksort(i+1, r, x); } }
26 Zeiger 6. Zeiger Zu jeder Variablen gehört eine Adresse im Speicher. Zeiger = Speicheradresse C++ bietet (fortgeschrittenen Programmierern) die Möglichkeit, diese Adressen der Speicherstellen für Programmierzwecke nutzbar zu machen. & vor Variable: liefert Adresse ( pointer ) einer Variable * vor pointer: value of Operator liefer den Wert der Variable Beispiel: int i = 5; // Variable i hat den Wert i=5 int *p_i = &i; // p_i ist Zeiger (pointer) // auf die Variable i cout << *p_i; // liefert 5 (den Wert von i) // als Ausgabe
27 Ein- und Ausgabe 7. Ein- und Ausgabe (i/o) Kanaltypen: istream und ostream Dekalaration im header durch #include <iostream> Zugriff auf z.b. cin >>... >>...; // Standardeingabe cout <<... <<...; // Standardausgabe Die Auswertung erfolgt von links nach rechts. Alternative Schreibweise mit Funktionsaufrufen (put, get): char c1= x ; cout << c1 << \n ; cout.put(c1); cout.put( \n ); Entsprechend für die Eingabe mit cin.get.
28 Ein- und Ausgabe Formatierung der Datenausgabe Ausgabe von Text gemäß ASCII-Tabelle ( \n = newline ). Ausgabe von int, float, double erfordert Konversion, d.h. Umwandlung der internen (binären) Zahlendarstellung in Text. Die Konversion läßt sich durch Formatierungsanweisungen steuern, z.b. zur Rundung von Daten oder für die gleichmäßige Ausgabe von Tabellen. Beispiel: #include <iomanip> double x=1234.5; cout << setfill( * ) << setw(10) << setprecision(5); cout << x << \n ; // Ausgabe: **** setfill( * ): Angabe eines Füllzeichens setw(10): Minimale Größe der direkt folgenden Ausgabe setprecision(5): Zahl der Stellen für Festkomma, bzw. Zahl der Stellen hinter dem Komma bei Gleitkommadarstellung
29 Ein- und Ausgabe Dateien (Files) Beim Arbeiten mit Dateien gibt es viele Parallelen zur Standard Ein- und Ausgabe, aber einige spezifische Besonderheiten: Bekanntmachung bereits existierender Dateien im Programm (zum Lesen) Einrichten neuer Dateien über das Betriebssystem (zum Schreiben) Erkennen von z.b. Größe und Ende von Dateien beim Lesen Kanaltypen ifstream und ofstream. Beispiel: #include <fstream> int variable; ifstream ins("eingabedatei", ios::in); // Oeffnen zum Lesen ins >> variable; // Einlesen von Daten aus der Eingabedatei ofstream outs("ausgabedatei", ios::out); // Oeffnen zum Schreiben outs << variable; // Ausgabe von variable in die Ausgabedatei
30 Ein- und Ausgabe Schließen der Dateien: ins.close(); outs.close(); Statusinformationen (beim Lesen): Typ bool ins.good(); ins.eof(); ins.bad(); ins.fail(); ins.clear(); // true, falls kein Fehler // true bei "end of file" // true bei hardware error // true bei logical error // setzt ins.good auf true Lesen einer Datei bis Dateiende (eof): int n; while (ins >> n){... }
31 Verschiedenes Macros vs. inline Macros in C und C++ (keine Typprüfung!): #define SQR(a) ((a)*(a)) int b=2,c; c = SQR(b++); // c = ((a++) * (a++)); // c ist nun 2*3 = 6, b ist 4 nach 2(!)-maligem // Inkrement besser in C++: inline-funktionen verwenden: inline int sqr (int a){ return a*a; } int b=2, c; c = sqr(b++); // b++ wird einmal ausgewertet, deshalb ist c // nun 4, b ist 3
32 Verschiedenes Definition neuer Datentypen typedef int Int32; // neuer Name für alte Typen typedef struct { int lower, upper } TwoInt; // komplexer // neuer Type TwoInt interval; interval.lower=-1; interval.upper=2; // Variable definieren // Teile initialisieren
33 Verschiedenes Dynamischer Speicher Belegen int *p_i = new int; // eine Variable int n = 40; int *pa_i = new int[n]; // ein Feld Freigeben delete p_p; delete[] pa_i;
34 Verschiedenes Namespaces enthalten Klassen von Befehlen, bspw. für Ein-/Ausgabe: #include <iostream> using namespace std; cout << " Gehalt: " << Personal.mGehalt; kollektiv statt einzeln: #include <iostream> using std::cout; using std::cin; cin >> Personal.mGehalt; cout << " Gehalt: " << Personal.mGehalt;
35 Verschiedenes Makefile enthält Anweisungen zum Kompilieren Übersetzen der einzelnen Dateien Zusammenbau der.o-dateien und Bibliotheken Verwendung: make oder make programm
36 Verschiedenes Objektorientierte Programmierung Klassen: Unterprogramme mit Datenstrukturen Templates: selber Name für verschiedene Fälle, bspw. power(int(base),int(exponent)) und power(double(base),double(exponent)) Bibliotheken: enthalten fertige Programmpakete, benutzen mit #include <math> C++-Standardbibliothek enthält bspw. vector list set
Hochschule 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
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
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
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
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).
MehrGrundlegende Anweisungen in C++
Grundlegende in C++ Peter Bastian Dieses Dokument basiert auf einer ursprünglich englischen Fassung von Katharina Vollmayr-Lee (http: // www. eg. bucknell. edu/ ~ kvollmay/ caps_ s2010/ C+ +_ summary.
MehrKurzeinführung in C++
Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber
MehrKontrollstrukturen, 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
MehrInhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling
Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:
MehrGrundlagen 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
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
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
MehrGliederung. 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.
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
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)
MehrZusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
MehrJava 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
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
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
MehrInhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler
Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale
MehrC++ 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,
MehrProgrammieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer
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:
MehrC allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.
C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von
MehrKurzeinführung in C. Johannes J. Schneider 27.10.2004
Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrGrundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
MehrDeklarationen 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.
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrGrundlagen der Programmiersprache C++
/ TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
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 Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
MehrEinfü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)
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/
MehrPrinzipieller Grundaufbau eines einfachen C-Programmes
Prinzipieller Grundaufbau eines einfachen C-Programmes C unterscheidet zwischen Groß- und Kleinschreibung! Siehe zu den folgenden Erklärungen auch das Programm am Ende der nächsten Seite. Am Anfang aller
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
MehrC++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany
C++ Programmierung Uwe Naumann LuFG Informatik 12, RWTH Aachen University, Germany Leave me alone world... Hauptprogramm int main(); return 0; Ausgabe auf Bildschrim #include std :: cout
MehrPROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
MehrInformationsverarbeitung
1/19 Informationsverarbeitung Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2011/2012 Vorlesung 13 (Download Quelldateien)
MehrEs 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
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrHello world. Sebastian Dyroff. 21. September 2009
Hello world Sebastian Dyroff 21. September 2009 1 / 35 Inhaltsverzeichnis Organisatorisches Hello World Typen und Operatoren Programmfluss Weitere Konstrukte Nützliche Tipps 2 / 35 Inhalte dieser Veranstaltung
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
MehrDr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
MehrC++ - 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,
MehrModellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 19.12.2012 IAM Institut für Angewandte Mathematik Funktionszeiger: Vorüberlegungen Funktionsaufrufe sind bis jetzt im Code mit Name explizit angegeben
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
MehrC++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek
C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage
MehrC Überlebenstraining
C Überlebenstraining Dies ist nur ein Schnellkurs in C, der genug Einstiegswissen vermitteln soll, daß weiterführende Literatur schnell benutzt werden kann. Dies ist kein vollständiger Programmier oder
MehrProseminar C-Programmierung. Strukturen. Von Marcel Lebek
Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11
MehrNumerische Datentypen. Simon Weidmann
Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
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
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.
MehrEin 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
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
MehrSelber 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
MehrZ:\Informatik 3\Labor_GINF3\Labor_01-Sonstiges.txt
Z:\Informatik 3\Labor_GINF3\Labor_0-Sonstiges.txt Laborbericht Nils Gemba Informatik 3 - OOP Labor 0 Vorbereitungszeit: ca. 4 Stunden Durchführungszeit: ca. 3 Stunden z:\informatik 3\Labor_GINF3\Labor_0\Labor_0.0\main.cpp
MehrEinführung in die Programmiersprache C und in den C166-Compiler
Einführung in die Programmiersprache C und in den C166-Compiler Die vorliegenden Unterlagen sollen einen kurzen Überblick über die Software-Entwicklung in C geben. Diese Unterlagen erheben keinen Anspruch
MehrProgrammiertechnik 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,
MehrC++ für Spieleprogrammierer
C++ für Spieleprogrammierer Heiko Kalista 2., erweiterte Auflage ISBN 3-446-40332-9 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40332-9 sowie im Buchhandel
MehrDie 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,
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen
MehrEinführung in C++ mit Microsoft VS
Einführung in C++ mit Microsoft VS Gliederung Allgemeines zu C++ und Unterschiede zu Java Header-Files Zeiger/Strukturen Namespaces Programmierstil Einführung in Microsoft VS Projekte und Solutions Debugger
MehrÜbung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
Mehr620.900 Propädeutikum zur Programmierung
620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe
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
MehrSebastian Houben Intensivkurs C++ 1. Intensivkurs C++ 21. September 2015
Sebastian Houben Intensivkurs C++ 1 Intensivkurs C++ 21. September 2015 Themen Sebastian Houben Intensivkurs C++ 2 Warum C++? Ziel dieses Kurses Voraussetzungen Verwandschaft zu C, Java und anderen Sprachen
MehrSteueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32
Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrComputergrundlagen Programmieren in C
Computergrundlagen Programmieren in C Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2013/14 Die Sprache C D. M. Ritchie, 1941 2011 Entwickelt 1971-1973 aktueller Standard:
MehrIn der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch
Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe
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.
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrModerne C-Programmierung
Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete
MehrDer C++ Crashkurs v1.0
Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der
MehrProgrammieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.
PROGRAMMIEREN IN C - EIN KURZÜBERBLICK 1 Programmieren in C -- ALLE Programmiersprachen sind HÄSSLICH -- Die einfachste Programmstruktur: main () -- was zu tun ist --- Vorgeordnete Definitionen: # include
MehrTeil 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
MehrProgrammieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik
Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen
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.:
MehrZusammengesetzte Datentypen -- Arrays und Strukturen
Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14
MehrL6. Operatoren und Ausdrücke
L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.
MehrProgrammieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff
Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet
MehrProgrammieren 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
Mehr5.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
MehrObjective-C CheatSheet
App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController
MehrEinführung in C++ Operatoren überladen (Klassen)
Einführung in C++ Operatoren überladen (Klassen) Operatoren überladen Die Überladung von Operatoren ermöglicht es, vorhandene Operatoren (+,-,...) auch auf Objekte von Klassen anzuwenden. Die meisten der
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 14. Modularisierung und Automatisierung Was heißt Modularisierung? Seite 2 bisher Programm komplett in einer Datei längere
MehrMIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr. 439.026 SS2007 1 INSTITUT FÜR ELEKTRONIK BIT
MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG BIT LV-Nr. 439.026 SS2007 1 Datendefinitionen b) Unterteilung nach Typen: (Teil 2) void leer Pointer 2/4 Bytes Adresse von Objekten Arrays bei allen Datentypen
MehrFallunterscheidung: if-statement
Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0
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
MehrProgrammieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.
Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter
MehrDatenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
MehrGrundlagen von C. Ausarbeitung von Jonas Gresens
Grundlagen von C Ausarbeitung von Jonas Gresens 1 Allgemein Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und
MehrCodingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008
I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium
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
Mehr