Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Größe: px
Ab Seite anzeigen:

Download "Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff"

Transkript

1 Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff

2 Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet wird? Welchen Wert haben x und y nach der Ausführung? ++x: Der Wert von x wird um 1 erhöht => x=3 *: Multipliziere x mit sich selbst => 9 y= Weise das Ergebnis y zu => y=9 x++: Der Wert von x wird um 1 erhöht =>x=4 Der Ausdruck liefert also x=4, y=9 Prof. Dr. Nikolaus Wulff Programmieren in C 2

3 Operator Rangfolge Das Beispiel führt zur Fragestellung in welcher Reihenfolge die C Operatoren ausgeführt werden. Dies darf nicht dem Zufall überlassen sein, sondern muss in der Sprachsyntax festgelegt sein, damit der Compiler eindeutigen Maschinencode generiert. C definiert hierzu eine Rangfolge für alle Operatoren, die regelt welche Operatoren und Ausdrücke in welcher Reihenfolge ausgewertet werden. Prof. Dr. Nikolaus Wulff Programmieren in C 3

4 Typen von Operatoren C kennt unäre, binäre und einen trinären Operator, diese benötigen 1, 2 oder 3 Argumente. Unär: <op> <expr 1 > z.b.: -3,!x, ~y Binär: <expr 1 > <op> <expr 2 > z.b.: 3 + 5, x & y, i (j %2) Trinär: <expr 1 >? <expr 2 > : <expr 3 > z.b.: x<0? -x : x <expr> kann selber ein Ausdruck sein, der vor der Ausführung der Operation bewertet werden muss. Prof. Dr. Nikolaus Wulff Programmieren in C 4

5 Rangfolge der Operatoren unär binär () [] ->. pointer! ~ * & (type) sizeof * / % arithmetic + - arithmetic << >> bit-shift < <= >= boolean ==!= boolean & bit-operation ^ bit-operation bit-operation && boolean boolean?: ternär = += -= *= /= %= &= ^= = <<= >>=, Wie zu erwarten gilt Punkt- vor Strichrechnung. Höchster Rang Niedrigster Rang Die Vergleiche == und!= haben jedoch einen höheren Rang als die Bit Operatoren &, und ^. Deshalb immer klammern!... Prof. Dr. Nikolaus Wulff Programmieren in C 5

6 Rangeleien Bei Ausdrücken mit gleichem Rang schreibt C die Reihenfolge der Bewertung nicht vor. y = f(x) + g(x) In diesem Fall ist nicht klar, ob zuerst f(x) und dann g(x) oder umgekehrt ausgewertet wird. Dies sollte im Allgemeinen auch keine Rolle spielen. Anders sieht es aus bei y = f(&x) + g(&x) sollten hier f oder g den Wert der Variablen x verändern, so ist das Ergebnis y vermutlich falsch... Prof. Dr. Nikolaus Wulff Programmieren in C 6

7 Pathologische Fälle... double two(double *x) { *x *=2; return *x; double half(double *x) { *x /=2; return *x; double two(double *x) { double tmp = *x; return 2*tmp; double half(double *x) { double tmp = *x; return tmp/2; Die Implementierung der linken Seite verändert die Variable x, so dass die Berechnung y = two(&x) + half(&x) nicht den richtigen Wert y = 2*x + x/2 = 2.5*x sondern statt dessen y = 3*x bzw. y = 1.5*x liefert. Prof. Dr. Nikolaus Wulff Programmieren in C 7

8 C's Systemnähe C ermöglicht sehr effizienten, schnellen Code. Zeiger und Referenzen sowie die Bit Operatoren erlauben eine maschinennahe Programmierung mit der sich auf jede Speicherzelle des Rechners zugreifen lässt. Assembler wird seit C immer seltener. Sinnvoll eingesetzt ist dies eine der Stärken von C. Die meisten Hardwaretreiber und Betriebsysteme werden daher in C realisiert. Zugleich ist dies jedoch auch in den Händen des ungeübten Programmierers eine Gefahr... Prof. Dr. Nikolaus Wulff Programmieren in C 8

9 Noch einmal Stringcopy Unter Ausnutzung der Operatoren Rangfolge kann unsere stringcopy Implementierung void stringcopy(char* src, char* dest) { while(*src) { *dest++ = *src++; verkürzt werden zu: void stringcopy(char* src, char* dest) { while( (*dest++ = *src++) ); //nop Zuerst wird die rechte Seite *src ausgewertet, das Ergebnis wird der linken Seite *dest zugewiesen, dann wird überprüft ob das Ergebnis ungleich 0 ist, falls ja werden die Zeiger dest und src inkrementiert... Prof. Dr. Nikolaus Wulff Programmieren in C 9

10 Zeichenketten verschlüsseln Einfach lassen sich Zeichenketten mit der XOR Operation verschlüsseln: #define MASK 0x1F void encode(char *s) { do { *s ^= MASK; while(*++s); Der XOR Operator ^ sorgt für die Verschlüsselung. *++s == '\0' ist die Abbruchbedingung. Testlauf: Hallo World coded: W~ssp?Hpms{ Frage wie lässt sich die resultierende Zeichenkette wieder dekodieren? Prof. Dr. Nikolaus Wulff Programmieren in C 10

11 Zeichenfelder vergleichen Effizient lässt sich das alphabetische Vergleichen zweier Zeichenketten implementieren: int stringcompare(char s[], char d[]) { int i; for(i=0; s[i] == d[i]; i++) { if(s[i] == '\0') return 0; return s[i] - d[i] ; Die Funktion liefert 0 wenn die Felder s und d identisch sind, ansonsten einen negativen oder positiven Wert, je nach dem ob s alphabetisch kleiner ist als d oder nicht. Prof. Dr. Nikolaus Wulff Programmieren in C 11

12 Zeichenketten Differenz char* stringdiff(char *s, char *d) { while((*s++ == *d++)) { if(*s == '\0') return s; return (--s); Die Methode stringdiff liefert die Differenz der Zeichenketten s und d. D.h. sucht das Vorkommen der ersten Abweichung von s in d. Als Resultat liefert sie einen Zeiger char* auf die restliche Zeichenkette aus s zurück. Prof. Dr. Nikolaus Wulff Programmieren in C 12

13 Falsche StringDiff Variante Sehr leicht lässt sich mit Zeigern Chaos anrichten, wie das folgende Beispiel zeigt: char* stupiddiff(char *s, char *d) { char c; for(; *s; s++, d++) { c = *s; if (c!= *d) { return &c; return '\0'; Achtung Bug! Der Compiler generiert eine Warnung. Das Programm enthält einen schweren Fehler: Der Aufrufende erwartet eine Zeichenkette erhält jedoch eine Referenz auf eine lokale Variable &c. Prof. Dr. Nikolaus Wulff Programmieren in C 13

14 Lebensdauer von Variablen Diese letzte Beispiel wirft eine Reihe von Frage auf: Welche Zeiger dürfen eigentlich sinnvoller Weise von Methoden zurückgegeben werden? Wie lange sind die Variablen gültig? Wann und von wem wird der von den Variablen belegte Speicherplatz wieder frei gegeben? Wie lange sind Zeiger auf Variablen gültig? Prof. Dr. Nikolaus Wulff Programmieren in C 14

15 Variablen Ein Programm besteht im Prinzip nur aus Funktionen und Variablen. Die Funktionen kapseln das Verhalten. Die Variablen den Status des Programms. Variablen besitzen eine bestimmte Lebensdauer und eine bestimmte Sichtbarkeit. Diese subtileren Eigenschaften kommen erst dann zum Tragen, wenn das Programm aus verschiedenen Funktionen und möglicherweise unterschiedlichen Quelldateien besteht, die zusammen gebunden werden. Prof. Dr. Nikolaus Wulff Programmieren in C 15

16 Interne & lokale Variablen Eine Variable kann als Parameter an eine Funktion übergeben werden oder lokal innerhalb einer Methode definiert werden: int factorial(int n){ int i, f; f = 1; for(i=2; i<=n; i++) { f *= i; return f; n: Variable als Parameter i, f: lokale Variablen, gültig und sichtbar innerhalb der Funktion factorial. es wird nicht f, sondern der Wert von f per return zurückgegeben Ausserhalb der Funktion factorial besitzen i und f keine Gültigkeit und sind dem Compiler unbekannt. Prof. Dr. Nikolaus Wulff Programmieren in C 16

17 Sichtbarkeit von Variablen Variablen sind i. A. nur lokal innerhalb ihrer sie definierenden Funktion gültig und sichtbar. Der selbe Bezeichner kann eine unterschiedliche Bedeutung in verschieden Funktionen haben: void foo(int x){ int sum;... void bar(double sum) { int x; Beide Funktionen foo und bar verwenden zwei Bezeichner: x und sum. Diese haben jedoch nichts miteinander gemeinsam, außer (zufällig per Konstruktion) den selben Namen. Jede der Variablen ist nur lokal innerhalb der jeweiligen Funktion foo oder bar sichtbar. Prof. Dr. Nikolaus Wulff Programmieren in C 17

18 Block scope Lokale Variablen sind immer innerhalb eines durch die Klammern { und markierten Blocks gültig und sichtbar. Dies kann auch bedeuten, dass eine Variable innerhalb einer Methode zweimal deklariert wird: void local() { int i = 1; printf("local i=%d \n", i); { /* block begin */ int j = 2; int i = 4; printf("block i=%d, j=%d \n", i,j); /* block end */ printf("after block local i=%d \n", i); printf("after block local j=%d \n", j); > i=1 > i=4, j=2 > i=1 Compile Error Prof. Dr. Nikolaus Wulff Programmieren in C 18

19 Lokale Variablen Lokale Variablen sind nur innerhalb der sie definierenden Funktion und Blöcke gültig. Sobald der sie einschließende Block verlassen wird verschwindet die Variable, d.h. der Speicherplatz wird automatisch freigegeben. Automatische Variablen behalten ihren Wert zwischen zwei Funktionsaufrufen nicht. Sie müssen daher immer wieder neu initialisiert werden. Einzige Ausnahme ist, die Variable innerhalb der Methode als static zu definieren, dann bleibt der Wert zwischen zwei Aufrufen erhalten. Prof. Dr. Nikolaus Wulff Programmieren in C 19

20 Statische lokale Variablen Die Variable count behält ihren Wert zwischen zwei Aufrufen der Funktion remember: int remember(int n) { static int count; if(n==0) { count=0; else { count+=n; return count; count ist statisch definiert Im Gegensatz zu den automatischen besitzen die lokalen statischen Variablen ein Gedächtnis. Prof. Dr. Nikolaus Wulff Programmieren in C 20

21 Globale Variablen Anstatt eine lokale Variable zu verwenden, hätte count auch als eine globale Variable außerhalb der Funktion definiert werden können: int count=0; int remember(int n) { if(n==0) { count=0; else { count+=n; return count; count ist global definiert Auch diese Variable besitzt ein Gedächtnis, das für die gesamte Dauer des Programms gültig ist. Prof. Dr. Nikolaus Wulff Programmieren in C 21

22 Funktionsübergreifende Variablen Eine globale Variable ist nicht nur innerhalb einer Funktion sichtbar, sondern ist für die gesamte Programmlaufzeit definiert. Somit kann der Wert dieser Variablen von verschiedenen Funktionen gemeinsam genutzt werden. Alle Funktionen innerhalb einer *.c Datei teilen sich die globalen Variablen. Achtung: Die Funktionen können sich die Werte unter Umständen gegenseitig überschreiben. Dies kann erwünscht oder unerwünscht sein... Prof. Dr. Nikolaus Wulff Programmieren in C 22

23 Externe Variablen Eine in einer Datei global definierte Variable kann aus einer anderen Quelldatei aus angesprochen und verwendet werden, wenn sie dort als extern definiert ist (geschieht meist in einer *.h Datei): int count=0; int remember(int n) { if(n==0) { count=0; else { count+=n; return count; remember.c extern int count; void dosomething() { if(count==10) { count=-5; else {... something.c Prof. Dr. Nikolaus Wulff Programmieren in C 23

24 Sichtbarkeit globaler Variablen Globale Variablen können im Programm nur einmal definiert werden. Dies kann zu Problemen führen, wenn solch allgemeine Bezeichner wie i, j, count oder ähnliches verwendet werden, die in vielen Kontexten vorkommen. Soll vermieden werden, dass eine globale Variable außerhalb der Quelldatei sichtbar ist, so muss sie als static deklariert werden. Sie ist dann global, behält ihr Gedächtnis ist jedoch nur von Funktionen innerhalb der selben Quelldatei aus erreichbar. Prof. Dr. Nikolaus Wulff Programmieren in C 24

25 Statische globale Variablen Sowohl remember.c als auch something.c besitzen ihre eigene globale count Variable, diese sind jedoch verschieden und nur innerhalb ihrer jeweiligen Quelldatei sichtbar: static int count=0; int remember(int n) { if(n==0) { count=0; else { count+=n; return count; remember.c static int count=4; void dosomething() { if(count==10)... void somethingelse() { if(count==3) {... something.c Prof. Dr. Nikolaus Wulff Programmieren in C 25

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren 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

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

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

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

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

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren 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;

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Einführung in die Programmierung

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

Mehr

Java Einführung Operatoren Kapitel 2 und 3

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

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff Die Java Stream API Funktionale Programmierung mit der Stream API des JDK 1.8 Prof. Dr. Nikolaus Wulff Funktionale Programmierung Neben der Collection API mit default Methoden ist als weitere Neuerung

Mehr

Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu

Mehr

Einführung in die C-Programmierung

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

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der 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.

Mehr

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C:

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C: Übersicht Einführung in die Programmierung Bachelor of Science die -Funktion Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein WS 009/0 Einführung in die Programmierung

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultä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 **

Mehr

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

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

Mehr

Die Programmiersprache C

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

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

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

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

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

Präzedenz von Operatoren

Präzedenz von Operatoren Präzedenz von Operatoren SWE-30 Die Präzedenz von Operatoren bestimmt die Struktur von Ausdrücken. Ein Operator höherer Präzedenz bindet die Operanden stärker als ein Operator geringerer Präzedenz. Mit

Mehr

Funktionen 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: 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

Mehr

Kurzeinführung in C. Johannes J. Schneider 27.10.2004

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

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte

Mehr

Kurzeinführung in C++

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

Mehr

Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14

Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Aufgabe 33: Felder Felder (oder auch Arrays ) werden dazu benutzt,

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

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

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

Mehr

Programmieren 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 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

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Objektorientierte Programmierung

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

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. 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

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

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

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Modellierung und Programmierung

Modellierung 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

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass 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

Mehr

Objektbasierte Entwicklung

Objektbasierte 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

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

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

Mehr

Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff

Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff Programmieren in C Die C-Standardbibliothek Prof. Dr. Nikolaus Wulff Die C-Standard Bibliothek Mit dem C Compiler werden viel fertige Bibliotheksfunktionen ausgeliefert. Eine genaue Kenntnis dieser Funktionen

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen

Mehr

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

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

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

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

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

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. 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

Mehr

Probeklausur: Programmierung WS04/05

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

Mehr

Hello world. Sebastian Dyroff. 21. September 2009

Hello 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

Mehr

C-Vorrangregeln. Version 1.3 6.7.2009. email: tb@ostc.de Web: www.ostc.de

C-Vorrangregeln. Version 1.3 6.7.2009. email: tb@ostc.de Web: www.ostc.de C-Vorrangregeln Version 1.3 6.7.2009 email: tb@ostc.de Web: www.ostc.de Die Informationen in diesem Skript wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen

Mehr

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

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Dr. Monika Meiler. Inhalt

Dr. 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

Mehr

Typdeklarationen. Es gibt in Haskell bereits primitive Typen:

Typdeklarationen. Es gibt in Haskell bereits primitive Typen: Typdeklarationen Es gibt in bereits primitive Typen: Integer: ganze Zahlen, z.b. 1289736781236 Int: ganze Zahlen mit Computerarithmetik, z.b. 123 Double: Fließkommazahlen, z.b. 3.14159 String: Zeichenketten,

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. 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

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!

Mehr

Angewandte Mathematik und Programmierung

Angewandte 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

Mehr

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

C++ - 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

Mehr

Programmierkurs Java

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

Mehr

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN 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

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Modulare Programmierung und Bibliotheken

Modulare Programmierung und Bibliotheken Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung

Mehr

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

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

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik 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

Mehr

Grundlagen der Informatik - 6. Praktikum

Grundlagen der Informatik - 6. Praktikum Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt

Mehr

Programmiersprachen 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. 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

Mehr

Inhalt. 4.7 Funktionen

Inhalt. 4.7 Funktionen 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 Pointern

Mehr

Einführung in die Programmierung 1

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

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. 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

Mehr

Probeklausur: Programmierung WS04/05

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

Mehr

Tutorium Rechnerorganisation

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

Mehr

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch

In 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

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung 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.

Mehr

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

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

Mehr

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

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

5.4 Klassen und Objekte

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

Mehr

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

C 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

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Ü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:

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C Interrupts Funktionsprinzip Interrupts bei ATmega128 Beispiel in C Funktionsprinzip 1 Was ist ein Interrupt? C muss auf Ereignisse reagieren können, z.b.: - jemand drückt eine Taste - USART hat Daten empfangen

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

620.900 Propädeutikum zur Programmierung

620.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 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

ModProg 15-16, Vorl. 5

ModProg 15-16, Vorl. 5 ModProg 15-16, Vorl. 5 Richard Grzibovski Nov. 18, 2015 1 / 29 Übersicht Übersicht 1 Logische Operationen 2 Priorität 3 Verzweigungen 4 Schleifen 2 / 29 Logische Werte Hauptkonzept: Besitzt ein C-Ausdruck

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Neue Features in C# 2.0

Neue Features in C# 2.0 Neue Features in C# 2.0 (gekürzt) Generische Typen Iteratoren Vereinfachte Delegate-Erzeugung Anonyme Methoden Partielle Klassen Sonstiges University of Linz, Institute for System Software, 2004 published

Mehr

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte

Mehr

Effizientes Memory Debugging in C/C++

Effizientes Memory Debugging in C/C++ Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten

Mehr