Programmierung für Mathematiker

Größe: px
Ab Seite anzeigen:

Download "Programmierung für Mathematiker"

Transkript

1 Programmierung für Mathematiker Prof. Dr. Thomas Schuster M.Sc. Dipl.-Phys. Anne Wald

2 Funktionen Funktion Zusammenfassung eines Anweisungsblocks zu einer aufrufbaren Einheit Gehört zu den wichtigsten Konzepten fast aller Programmiersprachen Aufgaben von Funktionen: 1 Wiederverwendbarkeit von einmal geschriebenem Code 2 Strukturierung und Vereinfachung von Code bessere Übersicht und Lesbarkeit 3 einfachere Fehlersuche, separates Testen möglich 4 leichteres Hinzufügen weiterer Funktionalitäten Die sinnvolle Strukturierung eines Programms in Unterprogramme ist einer der wichtigsten Schritte bei der Programmierung!

3 Charakterisierung von Funktionen Eine Funktion besitzt einen sinnvollen (=sprechenden) Namen, mit dem sie aufgerufen wird. nimmt eine (möglicherweise leere) Liste von Parametern mit festgelegten Datentypen als Eingabe. hat einen Anweisungsblock, der bei ihrem Aufruf ausgeführt wird. liefert nichts oder einen Wert eines festgelegten Datentyps als Ausgabe Mathematische Schreibweise: Funktion : {int, float,...} N {int, float,...} oder {}, N 0 (Parameter1,..., ParameterN) Anweisungen Ausgabewert Im Gegensatz zu mathematischen Funktionen kann der Anweisungsblock auch Befehle enthalten, die nicht direkt etwas mit der Ausgabe zu tun haben (auch Funktion: {} {} kann in C sinnvoll sein).

4 Syntax Deklaration Rückgabetyp Funktionsname(ParTyp1 [Par1],..., ParTypN [ParN]); Definition Rückgabetyp Funktionsname(ParTyp1 Par1,..., ParTypN ParN) { Anweisungsblock } Unterschied zwischen Deklaration und Definition: verschiedene Abstraktionsebenen! Deklaration (= Signatur) legt fest, was eine Funktion tut. muss vor dem erstmaligen Aufruf und außerhalb von main im Code stehen. endet mit einem Semikolon. Parameter-Datentypen genügen. Definition legt fest, wie eine Funktion etwas tut. kann an einer beliebigen Stelle außerhalb von main im Code stehen. hat kein Semikolon am Ende. Parameter sind mit Typ und Name anzugeben.

5 Beispiel 1 /** Praeprozessordirektive ****/ 2 #include <stdio.h> /** Funktionsdeklarationen ****/ 6 float summe(float a, float b); // auch moeglich: 7 // float summe(float, float); /** Hauptprogramm ****/ 11 int main(void) 12 { 13 float sum; 14 sum = summe(3.5, 1); // Funktionsaufruf 15 } /** Funktionsdefinitionen ****/ 19 float summe(float a, float b) 20 { 21 float sum = a + b; // Funktionsrumpf 22 return sum; // Funktionsrumpf 23 }

6 Der Datentyp void Funktionen ohne Rückgabe: Deklaration: void Funktion(Parameterliste); Beispiel: void srand48(long seed); Verwendung: z. B. Bildschirmausgabe, Statusänderung eines externen Mechanismus In anderen Programmiersprachen (z.b. Pascal) oft als Prozedur bezeichnet. In C gibt es keine Differenzierung zwischen Funktion und Prozedur. Funktionen ohne Parameter: Deklaration: Rückgabetyp Funktion(void); Beispiel: double drand48 (void); Verwendung: z. B. Ausführung von externen Mechanismen Kombination: z. B. void abort(void); (Gewaltsames Ende des Programms)

7 return und main return Mit der Ausführung der return-anweisung wird die aktuelle Funktion sofort beendet. Enthält der Funktionsrumpf keine return-anweisung, so endet die Ausführung des Rumpfes bei Erreichen der letzten schließenden geschweiften Klammer. schlechter Stil! Beachte: Es kann immer nur ein (skalarer) Wert zurückgegeben werden. main main ist in Wirklichkeit eine Funktion (mit Rückgabetyp int). Quelltext innerhalb von main wird als Hauptprogramm bezeichnet. Es sind äquivalent: main() int main() int main(void) main liefert standardmäßig den Rückgabewert 0 wenn keine Fehler aufgetreten sind. Mit return...; können andere Werte zurückgeliefert werden. Fehlerbehandlung

8 Beispiel 1: Funktion mit Rückgabewert Die charakteristische Funktion eines Intervalls [a, b] mit a < b ist definiert als { 1, x [a, b] χ [a,b] (x) := 0, sonst. Implementierung: je nach Wert von x wird 1.0 oder 0.0 zurückgegeben. Definition im Code: // Charakteristische Funktion des Intervalls [a,b] // (1 innerhalb, 0 ausserhalb) float charfunkintervall(const float a, const float b, float x) { if(a >= b) // Hier muss eine Fehlerbehandlung hin if ((x >= a) && (x <= b)) return 1.0; else return 0.0; }

9 Beispiel 2: Funktion ohne Rückgabewert void geplapper(int zahl1, double zahl2, char c) { printf("diese Funktion erzeugt eine Menge (sinnloser) Ausgaben "); printf("am Bildschirm.\n\n"); printf("jetzt noch eine horizontale Linie, dann geht's los!\n"); printf(" \n"); printf("zahl1 = %d, Zahl2 = %f\n", zahl1, zahl2); if(c == '+') printf("die Summe der beiden Zahlen ist %f\n\n", zahl1+zahl2); printf("so, jetzt bin ich fertig!\n"); return; }

10 Mathematische Funktionen Nutzung erfordert Präprozessordirektive Compilierung gcc ProgrammName.c -o ProgrammName -lm #include <math.h> Signatur int abs(int a) float fabsf(float a) double fabs(double a) double sqrt(double x) double pow(double b, double e) double exp(double x) double log(double x) double log10(double x) Bedeutung a a a x b e e x ln(x) log 10 (x)

11 Mathematische Funktionen Signatur Bedeutung double sin(double x) sin(x) double cos(double x) cos(x) double tan(double x) tan(x) double asin(double x) arcsin(x) double acos(double x) arccos(x) double atan(double q) arctan(q) ( π 2, π 2 ) double atan2(double x, double y) arctan(y/x) ( π, π] double sinh(double x) sinh(x) double cosh(double x) cosh(x) double floor(double x) x double ceil(double x) x

12 Konstanten in math.h Name Bedeutung M_E e M_LOG2E log 2 (e) M_LOG10E log 10 (e) M_LN2 ln(2) M_LN10 ln(10) M_PI π M_PI_2 π/2 M_PI_4 π/4 M_1_PI 1/π M_SQRT2 2 M_SQRT1_2 1/ 2 Bemerkung: Die Namen der Konstanten werden vom Präprozessor im Code textuell durch die entsprechenden Werte ersetzt, z. B. M_PI durch (Gleitkommazahlen werden automatisch als double interpretiert.)

13 Call by Value Beispiel: Vertauschen zweier Werte (?) 1 #include <stdio.h> 2 3 // Funktionsdeklaration 4 void vertausche(int p, int q); // oder (int, int) // Hauptprogramm 8 int main(void) 9 { 10 int a = 1, b = 3; 11 vertausche(a, b); 12 printf("a = %d, b = %d\n", a, b); 13 return 0; // guter Stil 14 } // Funktionsdefinition 17 void vertausche(int p, int q) 18 { 19 int hilf = p; 20 p = q; 21 q = hilf; 22 return; 23 } Ausgabe: a = 1, b = 3 Die Werte wurden gar nicht vertauscht! Warum?

14 Call by value Definition Bei einem Funktionsaufruf werden nicht die Variablen als solche, sondern lediglich ihre Werte, d.h. Kopien der Variableninhalte übergeben. + Funktionsaufrufe können direkt als Parameter für eine andere Funktion verwendet werden, da der Wert und nicht die Funktion selbst übergeben wird. Beispiel: printf("wurzel von 2 = %f\n", sqrt(2.0)); + Unbeabsichtigte Manipulation der Variablen durch Funktionen wird vermieden. Der Manipulation von Variablen sind Grenzen gesetzt, da immer nur ein (skalarer) Wert zurückgeliefert werden kann. (Ausweg: Zeiger und Call by reference, später) Häufige Fehlerquelle: Annahme, dass Funktionsparameter durch die Funktion verändert werden können. Dem ist nicht so! Beispiel: float a = 2.0; sqrt(a); Hier wird der Rückgabewert von sqrt mit Parameter 2.0 nicht wieder in a gespeichert, sondern verworfen!

15 Scope und Lifetime Definition (Scope) Der Scope (Sichtbarkeit) eines deklarierten Objekts (Variable oder Funktion) ist der Bereich im Quelltext, in dem es bekannt, d. h. mit seinem Namen aufrufbar ist. Generell gilt: Variablen sind innerhalb des textuellen Codeblocks sichtbar, in dem sie deklariert wurden. Funktionen sind ab ihrer Deklaration in der gesamten Datei sichtbar. Definition (Lifetime) Die Lifetime (Lebenszeit) einer Variablen beschreibt den Zeitraum, in dem der Speicherbereich der Variablen für sie reserviert ist. Grundregel: Eine Variable existiert vom Moment ihrer Deklaration bis zu dem Zeitpunkt, an dem der Block, welcher die Deklaration umschließt, verlassen wird.

16 Lokale und globale Variablen Lokale Variablen Lokale Variablen werden zu Beginn eines Anweisungsblocks deklariert. Lifetime: Bis zum Ende des Anweisungsblocks, also auch in inneren Blöcken Scope: Innerhalb des Blocks, sofern sie nicht durch Variablen gleichen Namens in untergeordneten Blöcken überdeckt werden Funktionen liegen textuell außerhalb jedes anderen Blocks lokale Variablen sind dort generell nicht sichtbar. Globale Variablen Globale Variablen werden außerhalb aller Funktionen (einschl. main) deklariert. Namenskonvention: Unterstrich am Ende des Namens, z. B. int var_ = 42; Lifetime: Gesamte Dauer der Programmausführung (auch über Dateigrenzen hinweg später) Scope: Überall (auch in Funktionen) Gefahren: Namenskonflikte, unkontrollierte Manipulation, Chaos Nutzung globaler Variablen auf ein Minimum reduzieren!

17 Sichtbarkeit: Beispiel 1 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int a = 4; 6 { 7 int a = 5; 8 printf("innen: a = %d\n", a); 9 } 10 printf("aussen: a = %d\n", a); return 0; 13 } Ausgabe: Innen: a = 5 Aussen: a = 4

18 Sichtbarkeit: Beispiel 2 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int i; 6 7 for (i=5; i<10; i++) 8 { 9 int i=0; 10 i++; 11 printf("in Schleife: i = %2d\n", i); 12 } printf("nach Schleife: i = %2d\n", i); 15 return 0; 16 } Ausgabe: In Schleife: i = 1 In Schleife: i = 1 In Schleife: i = 1 In Schleife: i = 1 In Schleife: i = 1 Nach Schleife: i = 10

19 Lokale und globale Variablen 1 #include <stdio.h> 2 3 int a_ = 10; // globale Variable 4 5 int funktion(int); 6 void prozedur(void); 7 8 int main(void) 9 { 10 prozedur(); 11 prozedur(); 12 funktion(a_); 13 printf("a_ = %d\n", a_); 14 return 0; 15 } void prozedur(void) 18 { 19 a_ *= a_; 20 return; 21 } int funktion(int a_) // schlechter Stil: nur globale Variablen 24 { // sollten mit "_" enden! 25 return(--a_); 26 } Ausgabe: a_ = 10000

20 Automatische und statische Variablen Bisher waren alle Variablen automatische Variablen, d.h. sie existieren bis zu dem Zeitpunkt, an dem der Block, welcher die Deklaration umschließt, verlassen wird. Statische Variablen Möglichkeit, dass eine Funktion beim nächsten Durchlauf die Information, die in der Variablen gespeichert wurde, verwenden kann (wie in einem Gedächtnis) Sichtbarkeit: Innerhalb des Blocks, sofern sie nicht durch Variablen gleichen Namens in untergeordneten Blöcken überdeckt werden Deklaration: static Datentyp Name=Wert; Beispiel: 1 void zaehle() { 2 static int i = 1; // i wird (nur) beim ersten Aufruf von zaehle initialisiert 3 printf("%d\n", i); 4 i = i + 1; 5 }

21 Rekursive Programmierung Rekursion Aufruf einer Funktion durch sich selbst. Iteration Wiederholung eines Anweisungsblocks. Bemerkungen zur rekursiven Programmierung: Man muss die Schachtelungstiefe der Rekursion selbst überwachen, sonst kann es zum sog. Stapelüberlauf (engl. stack overflow) kommen. Meist sind Iteration und Rekursion äquivalent, aber häufig ist die Überführung in die jeweils andere Variante nicht offensichtlich. Je nach Fragestellung (Laufzeit-, Speicher-, Lesbarkeitsoptimierung) entscheidet man sich für eine der beiden Methoden. Viele effiziente Sortieralgorithmen oder Divide-and-Conquer-Techniken basieren auf dem Prinzip der Rekursion.

22 Rekursive Programmierung Einfaches Beispiel: Fakultät n! = n(n 1) 1 = fac(n) Es gilt: fac(n) = { n * fac(n-1), n > 1 1, n {0, 1} Interessanteres Beispiel: Quersumme einer natürlichen Zahl Algorithmus 1 Die Quersumme einer einstelligen Zahl ist die Zahl selbst. 2 Die Quersumme einer mehrstelligen Zahl ist die Summe der letzten Ziffer und der Quersumme der Zahl ohne ihre letzte Ziffer. Beispiel: Quersumme(5) = 5 Quersumme (31415) = Quersumme (3141) + 5

23 Quersumme iterativ 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int zahl, qsumme = 0; 6 7 printf("zahl = "); 8 scanf("%d", &zahl); 9 10 printf("quersumme(%d) = ", zahl); while (zahl) 13 { 14 qsumme += zahl % 10; 15 zahl /= 10; 16 } printf("%d\n", qsumme); return 0; 21 }

24 Quersumme rekursiv 1 #include <stdio.h> 2 3 int qsumme(int); 4 5 int main(void) 6 { 7 int zahl; 8 printf("zahl = "); 9 scanf("%d", &zahl); printf("\nquersumme(%d) = %d\n",zahl, qsumme(zahl)); return 0; 14 } int qsumme(int zahl) 18 { 19 if (zahl / 10) 20 return zahl % 10 + qsumme(zahl / 10); return zahl; 23 }

25 Funktionen elementare Merkregeln Deklaration und Definition Die Funktionsdeklaration steht im Code vor main. Die Funktionsdefinition kommt ans Ende der Datei (unauffällig versteckt ). Anzahl und Datentypen der Parameter sowie Rückgabetyp müssen übereinstimmen. Guter Stil: Deklaration mit Kommentar versehen, der Parameter und Rückgabewert erläutert Der Name soll die Tätigkeit (Rückgabetyp void) bzw. den zurückgegebenen Wert (nichtleerer Rückgabetyp) widerspiegeln. Jede Funktion sollte durch ein return [Wert]; beendet werden. Aufruf Die Anzahl der Parameter muss konsistent mit der Deklaration sein. Es findet Call by value statt, d. h. die Funktion hat nicht die Parameter selbst, sondern nur die darin gespeicherten Werte zur Verfügung. Daher können diese auch nicht permanent verändert werden! Die übergebenen Werte werden automatisch in die Datentypen laut Deklaration umgewandelt ( gecastet ). Bei inkompatiblen Typen warnt der Compiler lediglich. Funktionen sehen nur globale Variablen, übergebene Parameter sowie lokale Variablen im Funktionsrumpf.

26 Statische Felder Definition Ein Feld (engl. array) ist die Zusammenfassung von Elementen gleichen Typs zu einer aufrufbaren Einheit. Deklaration: Datentyp Feldname[Anzahl]; Legt ein Feld von Anzahl Elementen des Typs Datentyp an. Achtung: Anzahl muss ein positiver ganzzahliger Wert sein. Wie bei primitiven Datentypen ist eine Initialisierung bei der Deklaration möglich: int N[4] = {1, 3, -5, 42}; double x[] = {1.9, , 5.73e+21}; // Die Groesse (3) wird hier vom Compiler automatisch bestimmt int p = 23; unsigned j[p] = {1, 0, 3}; float y[2] = {1.0, 3, -7.2}; // Wichtig: p initialisieren! // Rest bleibt uninitialisiert // Fehler: zu viele Elemente!

27 Statische Felder Die Deklaration float x[5]; legt ein Feld der Länge 5 an. Die Komponenten (Feldeinträge, Feldelemente) sind dabei alle vom Typ float. Folgerung: Das Feld mit Bezeichner x belegt im Arbeitsspeicher 5 4 = 20 Byte. Auf die Komponenten kann mittels x[0], x[1], x[2], x[3] und x[4] zugegriffen werden. Beispiel: x[0] = 11.0; x[1] = 12.0; x[2] = 13.0; x[3] = 14.0; x[4] = 15.0; Merke: Die Indizierung von Feldeinträgen beginnt in C stets mit 0! 1. Komp. 2. Komp. 3. Komp. 4. Komp. 5. Komp. 4 Byte 4 Byte 4 Byte 4 Byte 4 Byte Größe x[0] x[1] x[2] x[3] x[4] "Name" Inhalt Merke: Alle Komponenten eines Feldes werden vom Compiler direkt hintereinander im Arbeitsspeicher abgelegt.

28 Einschränkungen und Stolperfallen Einmal festgelegt, kann die Größe eines statischen Feldes nicht mehr verändert werden. Der maximalen Größe eines Feldes sind enge Grenzen gesetzt (Gefahr eines stack overflow = Stapelüberlauf). Die Rückgabe eines Feldes durch eine Funktion oder die Übergabe eines Feldes als Parameter einer Funktion ist nicht möglich, da es sich nicht um einen primitiven, sondern einen zusammengesetzten Datentyp handelt. Beim Zugriff auf ein Feldelement außerhalb des zulässigen Indexbereichs erfolgt im allgemeinen keine Fehlermeldung! Auch der Compiler warnt nicht! Die Zuweisung x[7] = schreibt in den Bereich, der (zufällig) von alpha belegt wird. Mögliche Folge: Das Programm wird völlig unberechenbar! Häufigste Fehlerquelle: int x[n];... x[n] = 1; Tritt zumeist dann auf, wenn x[1] statt x[0] als erster Eintrag interpretiert wird.

29 Beispiel: Euklidische Norm eines Vektors im R 3 1 #include <stdio.h> 2 #include <math.h> 3 4 int main(void) 5 { 6 double x[3], norm2 = 0.0, norm; 7 int i; 8 9 // Vektor einlesen 10 for (i=0; i<3; i++) // Vorsicht: Indices beginnen bei 0! 11 { 12 printf("geben Sie die %d-te Komponente ein: ", i+1); 13 scanf("%lf", &x[i]); 14 } // Vektor ausgeben 17 printf("\nder Vektor hat folgende Eintraege:\n"); 18 for (i=0; i<3; i++) 19 printf("x[%d] = % 7.4lf\n", i, x[i]); // Berechnung der Summe der Komponentenquadrate 22 for (i=0; i<3; i++) 23 norm2 += x[i]*x[i]; norm = sqrt(norm2); // euklidische Norm printf("\ndie Norm des Vektors ist %.4lf.\n\n", norm); 28 return 0; 29 }

30 Beispiel: Euklidische Norm eines Vektors im R 3 Ausgabe: Geben Sie die 1-te Komponente ein: 1 Geben Sie die 2-te Komponente ein: -2 Geben Sie die 3-te Komponente ein: 2 Der Vektor hat folgende Eintraege: x[0] = x[1] = x[2] = Die Norm des Vektors ist

31 Mehrdimensionale Felder Deklaration: Datentyp Feldname[dim1][dim2]...[dimN]; Beachte: A[4][3] wird (unabhängig vom Typ) im Speicher zeilenweise abgelegt: A[0][0], A[0][1], A[0][2], A[1][0],..., A[1][2], A[2][0],..., A[3][2] Mathematische Interpretation: A = (a ij ) 1 i 4 R j 3 A[0][0] A[0][1] A[0][2] a 11 a 12 a 13 A[1][0] A[1][1] A[1][2] a 21 a 22 a 23 A[2][0] A[2][1] A[2][2] a 31 a 32 a 33 A[3][0] A[3][1] A[3][2] a 41 a 42 a 43

32 2D-Felder als Matrizen Beispiel: Zeilenweises Einlesen der Komponenten einer 2 3-Matrix vom Typ int 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int i, j; 6 int A[2][3]; 7 8 for(i=0; i<2; i++) 9 { 10 for(j=0; j<3; j++) 11 { 12 printf("a[%d][%d] = ", i, j); 13 scanf("%d", &A[i][j]); 14 } // for j 15 } // for i return 0; 18 }

33 2D-Felder als Matrizen Auch bei mehrdimensionalen Feldern ist eine direkte Initialisierung möglich, bspw. int A[3][2] = {{11,12},{21,22},{31,32}}; Da die Komponenten im Speicher in einer Reihe angeordnet sind, ist obige Zeile äquivalent zu int A[3][2] = {11,12,21,22,31,32}; Erfolgt bei der Deklaration eine partielle Initialisierung, so wird mit Nullen aufgefüllt: int A[3][3] = {{1,2},{3},{4,5}}; generiert die Matrix A = [ 1 ]

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 21.11.2012 IAM Institut für Angewandte Mathematik Funktionen elementare Merkregeln Deklaration und Definition Die Funktionsdeklaration steht im Code

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointer, Parameterbergabe Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vectoren) 2 Arrays: Motivation Gegeben:

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Praxis der Programmierung

Praxis der Programmierung Funktionen, Header-Dateien, Pointer Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Organisatorische Bemerkungen 2 Modul Programmierung Pflichtmodul für BSc INF

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

Programmierung für Mathematiker

Programmierung für Mathematiker Programmierung für Mathematiker Prof. Dr. Thomas Schuster M.Sc. Dipl.-Phys. Anne Wald 19.04.2017 Mathematik und ihre Anwendung am Lehrstuhl Prof. Thomas Schuster www.num.uni-sb.de/schuster Forschungsschwerpunkte

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

Systemnahe Programmierung in C (SPiC)

Systemnahe Programmierung in C (SPiC) Systemnahe Programmierung in C (SPiC) 9 Funktionen Jürgen Kleinöder, Daniel Lohmann, Volkmar Sieh Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Mehr

2. Programmierung in C

2. 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)

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

Mehr

C-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi

C-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi 1. Datentypen C-Grundlagen zur Programmierung des MicroControllersystems MiCoWi Die Grafiken und Beispiele wurden dem Buch C von A bis z von Jürgen Wolf entnommen. Es werden hier die ANSI-Festlegungen

Mehr

Kapitel 8. Adressen und Zeiger

Kapitel 8. Adressen und Zeiger Kapitel 8 Adressen und Zeiger 1 Gliederung Kapitel 8 Adressen und Zeiger 8.1 Definition 8.2 Einfache Beispiele 8.3 Zeigerarithmetik und Vektoren 8.4 Vektoren als Funktionsparameter 8.5 Messwertprogramm,

Mehr

Globale Variablen Diverses. Globale Variablen. Globale Variablen

Globale Variablen Diverses. Globale Variablen. Globale Variablen lokale Variablen Variablen bisher nur am Anfang von Funktionen auch erlaubt: am Anfang innerer Codeblöcke (innerhalb geschweifter Klammern) in C99 und als gcc-erweiterung: an beliebiger Stelle innerhalb

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 31.10.2012 IAM Institut für Angewandte Mathematik Eingabe durch den Benutzer: scanf dient u.a. zum Einlesen von Zahlen erfordert Präprozessordirektive:

Mehr

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen Funktionen Funktionen erlauben, dem Programmcode hierarchisch zu strukturieren ein Hauptprogramm steuert dabei die Abfolge von Schritten, die einzelnen Schritte können durch Funktionen realisiert werden

Mehr

3.2 Datentypen und Methoden

3.2 Datentypen und Methoden Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte

Mehr

Speicherklassen (1) Lokale Variablen

Speicherklassen (1) Lokale Variablen Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden

Mehr

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

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

Mehr

Kapitel 6. Funktionen

Kapitel 6. Funktionen Kapitel 6 Funktionen 1 Gliederung Kapitel 6 Funktionen 6.1 Einleitung 6.2 Übergabeparameter beim Funktionsaufruf 6.3 Aufbau einer Funktion 6.4 Einfache Beispiele 6.5 Beispiel: Taschenrechner 6.6 Standardfunktionen

Mehr

2 Beispiel Sinusberechnung

2 Beispiel Sinusberechnung 2 Beispiel Sinusberechnung #include #include double sinus (double x) { double summe; double x_quadrat; double rest; int k; main() { double wert; D.8 Funktionen printf("berechnung des

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

6. Unterprogramme 6-1

6. Unterprogramme 6-1 6. Unterprogramme 6.1 Prozeduren und Funktionen 6.2 Deklaration und Aufruf 6.3 Call-by-Value / Call-by-Reference 6.4 Standardfunktionen in C 6.5 Gültigkeitsbereich von Namen 6.6 Rekursion 6. Unterprogramme

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 4 SS 2016

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Methoden / Funktionen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick 2 Zweck von Methoden 3 Methodendefinition

Mehr

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Kontrollstrukturen (1)

Kontrollstrukturen (1) Kontrollstrukturen (1) Selektionen, if ermöglicht das alternative Ausführen von Programteilen in Abhängigkeit einer Bedingung if (Bedingung) Block 1 else Block 2 Ist die Bedingung wahr, also ungleich 0,

Mehr

Herzlich willkommen!

Herzlich willkommen! Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)

Mehr

Teil II. Literatur zur C-Programmierung:

Teil II. Literatur zur C-Programmierung: Teil II 2Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan, Ritchie. The C Programming Language.

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen

Mehr

4.2 Programmiersprache C

4.2 Programmiersprache C 4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.

Mehr

Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn

Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn C: Funktionen Philip Gawehn Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Do., 22.05.2014 1 / 23 Gliederung

Mehr

Felder (1) Allgemeines

Felder (1) Allgemeines Felder (1) Allgemeines Gleichartige Daten, wie Tabelle von Zahlen, Datumswerten, Namen etc. Felder (engl. Array) stellen einen Verbundtyp dar, in dem mehrere Daten desselben Typs gespeichert werden Oft

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Lokale und globale Variablen Namensräume Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Viel Erfolg bei der Bearbeitung der Aufgaben!

Viel Erfolg bei der Bearbeitung der Aufgaben! Musterlösung Name:... 1 2 3 4 5 Gesamt Note 12 8 10 15 11 56 Bitte tragen Sie auf dem Deckblatt Ihr Namen und Ihre Matrikelnummer ein und auf allen weiteren Seiten nur noch Ihre Matrikelnummer. Lösungen

Mehr

C++ - Funktionen und mehr -

C++ - Funktionen und mehr - C++ - Funktionen und mehr - Friedrich-Schiller-Universität Jena Kerstin Gößner und Ralf Wondratschek Prof. Dr. habil. Wolfram Amme Dipl.-Inf. Thomas Heinze Inhaltsverzeichnis 1 Einleitung 3 2 Deklaration,

Mehr

Java Referenzdatentypen genauer betrachtet

Java Referenzdatentypen genauer betrachtet Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen

Mehr

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung Wintersemester 2016/17 Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Gültigkeitsbereiche Inhalt Lokale und globale

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 11. Vorlesung 14.06.2017 1 Schleifen 2 do...while do block while ( bedingung ); block: eine Anweisung oder Anweisungen in { block bed JA NEIN 3 while while ( bedingung ) block

Mehr

1 pulsierender Speicher

1 pulsierender Speicher 1 pulsierender Speicher 1.1 Aufgabentyp Gegeben sei das folgende C-Programm: [...] (a) Geben Sie den Gültigkeitsbereich jedes Objektes des Programms an. (b) Stellen Sie die Rechnung des Programms für die

Mehr

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 5: Funktionen, Gültigkeitsbereiche und Rekursion Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Strukturierte Programmierung und Funktionen

Strukturierte Programmierung und Funktionen Strukturierte Programmierung und Funktionen Um ein Programm übersichtlicher zu gestalten, zerlegt man seine Funktionalität meist in mehrere (oder auch ganz viele) Teile. Dadurch lässt sich das Programm

Mehr

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

Mehr

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit

Mehr

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

Zeiger vom Typ void* benötigen weniger Speicher als andere Zeiger, da bei anderen Zeigertypen zusätzlich die Größe gespeichert werden muss.

Zeiger vom Typ void* benötigen weniger Speicher als andere Zeiger, da bei anderen Zeigertypen zusätzlich die Größe gespeichert werden muss. EZS-Test Fragen zur Programmiersprache C Fragen entnommen aus SPiC 1 1. Ein Hauptprogramm und eine Interruptbehandlung greifen nebenläufig auf die Variable uint16_t foo zu. Das Hauptprogramm verwendet

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Systemprogrammierung

Systemprogrammierung IEinführung I in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: Software Engineering pproach. Springer 1991 Kernighan, Ritchie. The C Programming Language. Prentice-Hall

Mehr

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

Programmieren für Wirtschaftswissenschaftler SS 2015

Programmieren für Wirtschaftswissenschaftler SS 2015 DEPARTMENT WIRTSCHAFTSINFORMATIK FACHBEREICH WIRTSCHAFTSWISSENSCHAFT Programmieren für Wirtschaftswissenschaftler SS 2015 Lucian Ionescu Blockveranstaltung 16.03 27.3.2015 4. Methoden Agenda Methoden Motivation

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

Mehr

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer Block 1 1. Welcher Wert hat w? int w = 034; 28 (Dezimal) 034 wird als Octal interpretiert 34oct = 28dec 2. Wie lauten die Ergebnisse? unsigned int a = 3, b = 5, c = 7; unsigned int x, y, z; x = a == 3;

Mehr

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

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16 C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Einführung in die Programmiersprache C

Einfü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

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 8, 22.4.2009 simonmayer@student.ethz.ch ETH Zürich Aufgabe 1: Pointer & Structs Schauen wir s uns an! Aufgabe 2: Grossteils gut gemacht! Dynamische Arrays! Sortieren:

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07 Übersicht 1 Was sind? 2 Vereinbarung von n 3 Erzeugen von n 4 Zugriff auf Feldkomponenten 5 Mehrdimensionale 6 als Objekte, Referenzen Kopieren

Mehr

Zeiger (engl. Pointer)

Zeiger (engl. Pointer) Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner. Grundlegende Deklarationen Seite 1 von 6 Jedes Programm benötigt Objekte. Ein Objekt ist ein reservierter Bereich im Systemspeicher in welchem Informationen abgelegt werden. Informationen sind z.b. Zahlen,

Mehr

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich

Mehr

10 Die Programmiersprache C99: Zusammenfassung

10 Die Programmiersprache C99: Zusammenfassung 10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html

Mehr

Rechenzentrum. Programmieren in C. Simone Knief Rechenzentrum der CAU

Rechenzentrum. Programmieren in C. Simone Knief Rechenzentrum der CAU Programmieren in C Simone Knief der CAU Gliederung Einleitung Komponenten eines C-Programms Daten speichern: Variablen und Konstanten Anweisungen und Ausdrücke Operatoren Kontrollstrukturen Felder und

Mehr