Einführung in C. Kammerer. Einführung in C. Roland Kammerer. Institut für Technische Informatik Technische Universität Wien. 3. & 4.

Größe: px
Ab Seite anzeigen:

Download "Einführung in C. Kammerer. Einführung in C. Roland Kammerer. Institut für Technische Informatik Technische Universität Wien. 3. & 4."

Transkript

1 Einführung in C Roland Institut für Technische Informatik Technische Universität Wien 3. & 4. Oktober 2011

2 Einleitung Historisches Warum C? Standards Erste Schritte Teil I Einleitung

3 Historisches Einleitung Historisches Warum C? Standards Erste Schritte 1964: MIT, General Electrics, Bell Labs und AT&T wollten neues Betriebssystem entwickeln (Multics) 1969: Zu teuer eingestellt Gruppe um Ken Thompson sucht Alternativen zu Multics und will das System in Assembler/Assembly entwickeln nicht portabel zeitaufwändig fehleranfällig Alternativen zu Assembler wurden gesucht. C entwickelte sich als Nachfolger der Sprache B

4 Historisches Einleitung Historisches Warum C? Standards Erste Schritte 1964: MIT, General Electrics, Bell Labs und AT&T wollten neues Betriebssystem entwickeln (Multics) 1969: Zu teuer eingestellt Gruppe um Ken Thompson sucht Alternativen zu Multics und will das System in Assembler/Assembly entwickeln nicht portabel zeitaufwändig fehleranfällig Alternativen zu Assembler wurden gesucht. C entwickelte sich als Nachfolger der Sprache B

5 Historisches Einleitung Historisches Warum C? Standards Erste Schritte 1964: MIT, General Electrics, Bell Labs und AT&T wollten neues Betriebssystem entwickeln (Multics) 1969: Zu teuer eingestellt Gruppe um Ken Thompson sucht Alternativen zu Multics und will das System in Assembler/Assembly entwickeln nicht portabel zeitaufwändig fehleranfällig Alternativen zu Assembler wurden gesucht. C entwickelte sich als Nachfolger der Sprache B

6 Warum C? Einleitung Historisches Warum C? Standards Erste Schritte Früher: Heute: Portabilität Erweiterbarkeit durch Libraries Performance (vgl. Betriebssystem-Kernel: Windows, Linux, BSDs,... ) Viele Libraries vorhanden Hardwarenahe Programmierung Computergraphik, Spiele Auch moderne Interpreter in C geschrieben (Python, Perl, Ruby,... ) Viele Generatoren erzeugen C-Code (z.b. Matlab/Simulink)

7 Warum C? Einleitung Historisches Warum C? Standards Erste Schritte Früher: Heute: Portabilität Erweiterbarkeit durch Libraries Performance (vgl. Betriebssystem-Kernel: Windows, Linux, BSDs,... ) Viele Libraries vorhanden Hardwarenahe Programmierung Computergraphik, Spiele Auch moderne Interpreter in C geschrieben (Python, Perl, Ruby,... ) Viele Generatoren erzeugen C-Code (z.b. Matlab/Simulink)

8 Standards Einleitung Historisches Warum C? Standards Erste Schritte 1978: Quasistandard durch Ritchie und Kernighan im Buch C Programming Language 1988: ANSI-C bzw. C : C-99 (nicht von allen Compiliern implementiert) heute: Neuer Quasistandard (zumindest in der Free/OpenSource Welt) durch gcc 1 und gnu extensions Wobei selbst gnu-extionsions teilweise nur informell spezifiziert sind 1

9 Hello, C World Einleitung Historisches Warum C? Standards Erste Schritte #include <stdio.h> int main() { printf("hallo, C World\n"); } return 0;

10 Kompiliervorgang Einleitung Historisches Warum C? Standards Erste Schritte Source Code muss in Maschinensprache übersetzt werden Code Präprozessor Compiler Linker $ gcc -o prog prog.c # alles in einem Schritt $./prog # Programm starten

11 Kommentare Einleitung Historisches Warum C? Standards Erste Schritte /* Ich bin ein Kommentar in ANSI-C */ // Ich einer aus dem C-99-Standard // Ich ende immer am Zeilenende /* ich darf mehrere Zeilen brauchen */

12 Variablen & Definition Initialisierung Typen Scope static & co Operatoren Teil II Variablen &

13 Variablen & Definition Initialisierung Typen Scope static & co Operatoren Variablen haben einen Typ Dieser Typ muss dem Compiler bekannt gemacht werden Bekanntgabe bei der darf mehrmals vorkommen Nicht jede ist eine Definition

14 Definition Variablen & Definition Initialisierung Typen Scope static & co Operatoren Für Variablen muss Speicherplatz reserviert werden Das passiert bei der Definition Definition darf nur einmal im Code vorkommen Oft wird zwischen und Definition nicht unterschieden Es wird für beides der Begriff verwendet Jede Definition ist eine

15 Initialisierung Variablen & Definition Initialisierung Typen Scope static & co Operatoren Nachdem eine Variable einen Speicherplatz hat, ist der anfängliche Inhalt noch undefiniert (oder wurde schon zur Compilezeit in einen vorinitialisierten Speicherbereich gelegt) Initialisierung weist der Variablen einen Wert zu

16 Variablen & Definition Initialisierung Typen Scope static & co Operatoren int i; /* Integer Variable i, + Definition */ extern int j; /*, Definition wo anders */ int k = 23; /* hier mit Initialisierung */

17 Definition//Initialisierung von Variablen Variablen & Definition Initialisierung Typen Scope static & co Operatoren int i; int i, j, k; int i, j = 23, k = 42; /* Korrekt, schlechter Stil */ int i, char b; /* Fehler */ int i; char b; /* Korrekt */ Zuweisung erfolgt mit =

18 Variablen & Definition Initialisierung Typen Scope static & co Operatoren Ganze Zahlen char: 1 Byte (Byte muss laut Standard nicht 8 Bit lang sein). Wird oft zum Speichern von Zeichen und Strings verwendet short int: Mindestens 16 Bit int: natürliche Größe, meist 32 oder 64 Bit long int: Mindestens 32 Bit long long int: Mindestens 64 Bit. Erst ab C-99. Tatsächliche Größe in <limits.h> ersichtlich Mit C-99 wurden standardisierte Typen eingeführt (<stdint.h>) Es gibt vorzeichenlose und vorzeichenbehaftete Varianten (zb. signed int, unsigned int) Literale können hexadezimal (0x als präfix) und oktal (0 als präfix) angegeben werden (zb: 0x8, 024)

19 Fließkommazahlen Variablen & Definition Initialisierung Typen Scope static & co Operatoren float: einfache Genauigkeit double: doppelte Genauigkeit long double: erweiterte Genauigkeit Über die interne Darstellung wird im Standard keine Aussage getroffen Kein Unterschied zwischen vorzeichenbehaftet und vorzeichenlos immer vorzeichenbehaftet

20 Wertebereich Variablen & Definition Initialisierung Typen Scope static & co Operatoren Ob eine Variable vorzeichenbehaftet oder vorzeichenlos verwendet wird, entscheidet über ihren Wertebereich. Die gezeigten Wertebereiche sind nicht im Standard spezifiziert, sie dienen der Veranschaulichung. Type signed unsigned char -128 bis bis 255 short int bis bis long int bis 0 bis

21 sizeof Variablen & Definition Initialisierung Typen Scope static & co Operatoren Der Operator sizeof wird zur Ermittelung des Speicherbedarfs verwendet int i; printf("%i Byte(s)\n", sizeof i); printf("%i Byte(s)\n", sizeof (int));

22 Variablen & Definition Initialisierung Typen Scope static & co Operatoren #define MYCONST (23) /* oder */ const int i = 23; MYCONST wird vom Präprozessor ersetzt. Erklärung des Präprozessors folgt später const definiert eine typisierte Konstante im Code. Darf/Kann nicht geändert werden const gibt dem Compiler im Normalfall bessere Optimierungsmöglichkeiten

23 Variablen & Definition Initialisierung Typen Scope static & co Operatoren Scope Vor C-99 mussten Variablen am Anfang eines Blocks deklariert werden Variablen sind innerhalb ihres Blocks sichtbar #include <stdio.h> int main() { int i = 23, j = 42; { int i; i = 2323; printf("%d, ", i); printf("%d, ", j); } printf("%d\n", i); return 0; } $ 2323, 42, 23

24 Variablen & Definition Initialisierung Typen Scope static & co Operatoren static static weist einer Variablen einen festen Speicherplatz zu. Sie merkt sich dadurch ihren Zustand #include <stdio.h> void foo() { static int i = 23; printf("%d, ", i); i = i + 1; } int main() { foo(); foo(); foo(); printf("\n"); return 0; } $ 23, 24, 25

25 volatile Variablen & Definition Initialisierung Typen Scope static & co Operatoren Variable kann sich außerhalb des Programmkontexts ändern Wichtig für hardwarenahe Programmierung (z.b. Interrupts die Inhalt einer Variablen ändern) volatile char keypressed = ; long count = 0; while (keypressed!= x ) { count++; } Ohne volatile würde der Compiler die while-schleife zu while(1) optimieren, da sich aus seiner Sicht keypressed nicht ändern kann.

26 register Variablen & Definition Initialisierung Typen Scope static & co Operatoren Hinweis für den Compiler dass er den Inhalt in ein Register legen soll Wird in der Praxis kaum verwendet

27 Beispiel Variablen & Definition Initialisierung Typen Scope static & co Operatoren extern const volatile unsigned long int rt_clk; Eine long int Variable ohne Vorzeichen, deren Inhalt man nicht zuweisen kann (von der man aber lesen kann), deren Inhalt sich außerhalb des Programmkontexts ändern kann, die an einer anderen Stelle definiert wird

28 Increment/Decrement Variablen & Definition Initialisierung Typen Scope static & co Operatoren Mit ++ und -- können Variablen um eins erhöht bzw. vermindert werden Präfix (++i) und postfix (i++) sind möglich Nach Möglichkeit präfix verwenden (auch im Hinblick auf C++)

29 Rangfolge/Assoziativität 2 Variablen & Definition Initialisierung Typen Scope static & co Operatoren c = sizeof (x) + ++a / 3; c = (sizeof (x) + ((++a) / 3)); a = ; a = (7-6) + 8; /* links nach rechts */ i = 3; a = i + i++; /* i == 4, a ==? (laut Standard implementierungsabhaengig!) */ man operator 2

30 Logische Operatoren Variablen & Definition Initialisierung Typen Scope static & co Operatoren Operator Bedeutung < kleiner als > größer als <= kleiner oder gleich >= größer oder gleich!= ungleich == gleich && logisches und logisches oder! Negation und && werden short circuit ausgewertet

31 Bitweise Operatoren Variablen & Definition Initialisierung Typen Scope static & co Operatoren Operator Bedeutung & und oder exklusives oder (xor) Einerkomplement >> Rechs-Shift << Links-Shift Für alle Operatoren (bitweise und logisch) existieren die Versionen Op= (z.b. i += 5) Bei obigem Beispiel gilt: i = i + 5; hat den gleichen Effekt wie i += 5;

32 Shift Variablen & Definition Initialisierung Typen Scope static & co Operatoren << und >> zum bitweisen shiften unsigned char i = 7; /* */ i <<= 1; /* */ printf("%d\n", i); /* 14 */ printf("%d\n", 1 << 7); /* 128 == 2 hoch 7 */ Bei vorzeichenbehafteten Variablen bleibt das Vorzeichen erhalten int i = -7; i <<= 1; printf("%d\n", i); /* -14 */

33 Variablen & Definition Initialisierung Typen Scope static & co Operatoren unsigned char a, b, c; a = 4; b = 2; /* binär: a = 100, b = 010 */ c = a b; /* c == 6 */ b = a & c; /* b == 4 */ a += 3; /* a = a + 3 */ b %= 3; /* b = b % 3 (% == modulo div) */ b = 0; if ( (b > 0) && ( (a / b) > 5) ) /*... */

34 Strukturen zur Kontrolle if switch for while/do-while continue/break Teil III Strukturen zur Kontrolle

35 if Strukturen zur Kontrolle if switch for while/do-while continue/break if (expression) statement else if (expression) statement else if (expression) statement /*... */ else statement In C gilt: 0 ist false, alles andere ist true (z.b. auch -1) Ratschlag: Nie auf die Klammerung von statement-blöcken vergessen/verzichten. Am besten auch einzeilige Statements in {} einschließen

36 switch Strukturen zur Kontrolle if switch for while/do-while continue/break switch (expression) { case const-expr: statements case const-expr: statements /*... */ default: statements } Es dürfen nur als Vergleichswert verwendet werden Man sollte einen case immer mit break abschließen, sonst rutscht man in den nächsten case (siehe am Ende) Es sollte immer ein default case vorhanden sein

37 for Strukturen zur Kontrolle if switch for while/do-while continue/break for (expression1; expression2; expression3) statement Alle drei Expressions sind optional. Normalfall: expression1: Initialisierung des Zählers expression2: Überprüfung ob die Schleife fortgesetzt werden soll expression3: Den Zähler erhöhen

38 while/do-while Strukturen zur Kontrolle if switch for while/do-while continue/break while (expression) statement do statement while (expression); Bei do-while wird statement zumindest einmal ausgeführt

39 continue/break Strukturen zur Kontrolle if switch for while/do-while continue/break continue setzt beim nächsten Schleifendurchlauf der innersten Schleife fort. expression3 wird ausgeführt, expression2 wird überprüft (siehe for-schleife) break verläßt die innerste Schleife und setzt nach ihr fort. expression3 wird nicht mehr ausgeführt

40 Strukturen zur Kontrolle if switch for while/do-while continue/break int i; for (i = 0; i < 10; ++i) { printf("hallo\n"); } switch (input) { case a : case A : printf("a oder A\n"); break; default: printf("fehler"); break; } i = 23; if (i == 42) { printf("i ist 42\n"); }

41 Arrays Eindimensional Mehrdimensional Initialisierung Strings Teil IV Arrays

42 Eindimensional Arrays Eindimensional Mehrdimensional Initialisierung Strings Arrays werden zum Zusammenfassen von verwandten Werten gleichen Typs verwendet Typ Name[Größe]; int myarray[8]; myarray bietet Platz für 8 Integer Variablen Index von 0 bis 7 myarray[8] out-of-bounds

43 Mehrdimensional Arrays Eindimensional Mehrdimensional Initialisierung Strings Arrays können mehrere Dimensionen haben In C eigentlich syntactic sugar int myarray[2][3]; int myarray2[2][3][4];

44 Initialisierung Arrays Eindimensional Mehrdimensional Initialisierung Strings int myarr[2][3]= { {1,2,3}, {4,5,6}, }; int myarr2[2][3] = {1,2,3,4,5,6}; /* erste Version ist vorzuziehen */ int myarr3[] = {1, 2, 3, 4}; /* bei vollständiger Initialisierung kann die Größe weggelassen werden */

45 Strings Arrays Eindimensional Mehrdimensional Initialisierung Strings Strings sind in C Arrays von Zeichen (chars) Strings sind per Definition immer \0 terminiert. Essentiell für Funktionen die mit Strings arbeiten. Sie erkennen so das Ende eines Strings char string[] = "hallo, welt"; /* string is auto \0 terminated */ char s[6]; s[0] = h ; s[1] = a ; s[2] = l ; s[3] = l ; s[4] = o ; s[5] = \0 ; char str[] = { f, o, o, b, a, r, \0 }; printf("%s\n", s); /* prints "hallo" */ s[3] = \0 ; printf("%s\n", s); /* prints "hal" */

46 Funktionen Definition Globale und lokale Variablen Teil V Funktionen

47 Funktionen Definition Globale und lokale Variablen Definition von Funktionen Rückgabetyp Funktionsname(Parameterliste) { Anweisungen } Dienen der Lesbarkeit, Wiederverwendbarkeit und Wartbarkeit Müssen vor ihrer Verwendung bekannt gemacht werden int add(int a, int b) { return a + b; } int main() { int i; i = add(2, 3); /* i == 5 */ return 0; }

48 Funktionen Definition Globale und lokale Variablen Prototypen Wie bei Variablen wird zwischen Definition und unterschieden Ein Prototyp stellt eine dar und wird mit ; abgeschlossen /* Prototyp */ int add(int a, int b); /* int add(int x, int v); genau so gültig */ /* int add(int, int); ebenfalls OK */ /* int add(double, int); Falsch, später anderer Typ */ int main() { int i; i = add(2, 3); /* i == 5 */ return 0; } /* jetzt darf add nach dem Aufruf definiert werden */ int add(int a, int b) { return a + b; }

49 Global vs. lokal Funktionen Definition Globale und lokale Variablen Lokale Variablen sind nach dem Verlassen ihrer Funktion/ihres Blocks nicht mehr sichtbar Globale Variablen (außerhalb von Funktionen deklariert, meist am Anfang des Sourcecodes) behalten ihre Gültigkeit bis zum Ende des Programms Lokale Variablen überdecken globale Variablen Lokale Variablen beinhalten beim Deklarieren einen zufälligen Wert Globale Variablen werden in einen Speicherbereich abgelegt der mit 0 initialisiert ist

50 Funktionen Definition Globale und lokale Variablen int i; int j = 23; void foo() { int j = 42; printf("%d\n", j); /* 42 */ } int main() { int k; printf("%d\n", j); /* 23 */ foo(); printf("%d\n", i); /* 0 */ printf("%d\n", k); /* 1863 (zufällig) */ return 0; }

51 Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren Teil VI Pointer

52 Allgemeines Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren In C müssen Variableninhalte nicht über ihren Namen angesprochen werden Dies kann auch mit Pointern geschehen Pointer sind keine black magic, sie sind Variablen wie andere Variablen auch Unterschied: In ihnen ist eine Adresse gespeichert Wichtig für hardwarenahe Programmierung (Geschwindigkeitsvorteil) Leider auch extrem fehleranfällig Aber die coolen neuen Sprachen haben gar keine Pointer!!11 : Falsch, sie verstecken sie nur vor dem Programmierer/der Programmiererin

53 Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren Pointer werden mit Typ *name deklariert Es wird nicht Speicher für eine Variable des Typs Typ alloziert, sondern ein Speicherbereich für den Typ Typ *, in dem eine Adresse gespeichert werden kann. Auf den Inhalt auf den ein Pointer zeigt, greift man mit dem Dereferenzierungsoperator * zu Auf die Adresse einer Variable greift man mit dem Adressoperator & zu int *p; /* ich bin ein pointer */ int* q; /* ich auch */ int* a, b; /* a ist ein pointer b aber _nicht_ */ int *a, b; /* a ja, b nein, aber besserer Stil */ int *a, *b; /* a und b sind Pointer */

54 Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren Speicherlayout int *a; int b = 17; a = &b; printf("inhalt b: %d\n", b); /* 17 */ printf("adresse b: %p\n", &b); /* 1462 */ printf("inhalt a: %p\n", a); /* 1462 */ printf("inhalt auf den a zeigt: %d\n", *a); /* 17 */ printf("adresse von a: %p\n", &a); /* 874 */

55 Einfache Pointerarithmetik Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren int ar[5] = {1, 2, 3, 4, 5}; int *p; p = &ar[0]; /* auch p = ar; wäre möglich, aber IMHO schlechter Stil */ printf("%d\n", *p); /* 1 */ *p += 22; printf("%d\n", ar[0]); /* 23 */ p += 1; /* Pointer zeigt auf das naechste Element */ printf("%d\n", *p); /* 2 */

56 Pointer und man Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren $ man strcpy /* Ausgabe von "man strcpy" */ char *strcpy(char *dest, const char *src); /* mein C Code */ char *mysrc = "mystring"; char *mydest = /* momentan egal. Annahme: es ist genug Speicher vorhanden*/ strcpy(mydest, mysrc); /*? */ /* oder doch eher */ strcpy(*mydest, *mysrc); /*? */ man-page liest man so: strcpy will Variablen in denen Adressen stehen (*dest, *src). Wo seht die Adresse? In den Pointern, also muss man sie nicht dereferenzieren. strcpy(mydest, mysrc)

57 Gefahren von Pointern Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren Pointerarithmetik kann gefährlich werden wenn man nicht mit der nötigen Sorgfalt arbeitet Achtung: Null-Pointer-Dereferencing war 2009 das häufigste Sicherheitsproblem bei Red Hat 3 int ar[5] = {1, 2, 3, 4, 5}; int *p = &ar[0]; /* so sicher nicht! */ p += 23; /* möglicherweise ein Problem */ printf("%d\n", *p); /* FAIL */ p = NULL; printf("%d\n", *p); /* FAIL */ 3

58 Material Teil VII Material

59 Material Material C Programming Language - Kernighan & Ritchie Ausblick Präprozessor, Makros typedefs, structs, unions, casts, inline, void Speicherlayout, Alignment modulare Programmierung (extern, Header Dateien,... ) Funktionen und Pointer (als Argumente und return-wert), Funktionspointer

OSUE Einführung in C. Denise Ratasich. März /60. basierend auf Slides von Roland Kammerer, Bernhard Frömel

OSUE Einführung in C. Denise Ratasich. März /60. basierend auf Slides von Roland Kammerer, Bernhard Frömel 1/60 Denise Ratasich basierend auf Slides von Roland Kammerer, Bernhard Frömel Institut für Technische Informatik Technische Universität Wien - 182.709 Betriebssysteme UE SS16 März 2016 2/60 Einleitung

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

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

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

Mehr

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

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

Mehr

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

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

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

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

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

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

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

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und

Mehr

Einführung in die Programmierung (EPR)

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

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

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

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

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

Einführung in die Programmierung

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

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

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

Moderne C-Programmierung

Moderne 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

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

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

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

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung 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/

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

2 Einfache Rechnungen

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

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar 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

Mehr

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die

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

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

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

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

Numerische Datentypen. Simon Weidmann

Numerische 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

Mehr

DLLs (dynamic loaded libraries) mit MingW erstellen

DLLs (dynamic loaded libraries) mit MingW erstellen DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Datentypen: Enum, Array, Struct, Union

Datentypen: Enum, Array, Struct, Union Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

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

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

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

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

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Fallunterscheidung: if-statement

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

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Grundlagen. Kapitel 1

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

Mehr

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern Dateiname: ecdl_p2_02_03_documentation.doc Speicherdatum: 08.12.2004 ECDL 2003 Professional Modul 2 Tabellenkalkulation

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

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

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

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

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

Mehr

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003

Mehr

Modul 122 VBA Scribt.docx

Modul 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

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

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

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Programmierung mit NQC: Kommunikation zwischen zwei RCX Programmierung mit NQC: Kommunikation zwischen zwei RCX Teil : Grundlagen Martin Schmidt 7. Februar 24 Teil : Grundlagen Zahlensysteme : Binärsystem Ziffern: und Bit = binary digit (Binärziffer) Einfach

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

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

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Hochschule München, FK 03 SS 2014 Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Zulassung geprüft: (Grundlagenteil) Die Prüfung ist nur dann gültig, wenn Sie die erforderliche Zulassungsvoraussetzung

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

Wirtschaftsinformatik I

Wirtschaftsinformatik I Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

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

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

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

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

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 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

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

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

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

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

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

I.1 Die Parrot Assemblersprache

I.1 Die Parrot Assemblersprache I.1 Die Parrot Assemblersprache Die virtuelle CPU Parrot ermöglicht die Verarbeitung der Parrot Assemblersprache (PASM). Zum Einstieg soll ein erstes Beispiel die Ausführung einer PASM-Datei zeigen. Legen

Mehr

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Frau Dr. Eva Douma ist Organisations-Beraterin in Frankfurt am Main Das ist eine Zusammen-Fassung des Vortrages: Busines

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

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

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

Mehr

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule 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

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16

Wintersemester 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

Mehr

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Vorname: Nachname: Matrikelnummer: Legen Sie zu Beginn Ihren Studentenausweis

Mehr