OSUE Einführung in C. Denise Ratasich. März /60. basierend auf Slides von Roland Kammerer, Bernhard Frömel
|
|
- Dörte Kerner
- vor 6 Jahren
- Abrufe
Transkript
1 1/60 Denise Ratasich basierend auf Slides von Roland Kammerer, Bernhard Frömel Institut für Technische Informatik Technische Universität Wien Betriebssysteme UE SS16 März 2016
2 2/60 Einleitung Historisches Warum C? Standards Erste Schritte Teil I Einleitung
3 3/60 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 Bell Labs steigt aus Gruppe um Ken Thompson (Bell Labs) sucht Alternativen zu Multics und will das System in Assemblersprache entwickeln nicht portabel zeitaufwändig fehleranfällig ldi r16, 0xFF out DDRC, r16 ldi r16, 0x00 out PORTC, r16 Alternativen zur Assemblersprache wurden gesucht. C entwickelte sich als Nachfolger der Sprache B, ALGOL (ALGOrithmic Language)
4 4/60 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)
5 Einleitung Historisches Warum C? Standards Erste Schritte Standards 1978: Quasistandard durch Ritchie und Kernighan im Buch The C Programming Language 1989: ANSI-C bzw. C : C-99 Nicht von allen Compilern implementiert Nicht einmal gcc unterstützt ihn vollständig Der für verwendete Standard 2011: C-11 $ gcc std=c99 pedantic Wall D_XOPEN_SOURCE=500 \ D_BSD_SOURCE g c filename. c heute: Neuer Quasistandard (zumindest in der Free/OpenSource Welt) durch gcc 1 und gnu extensions Wobei selbst gnu-extensions teilweise nur informell spezifiziert sind LLVM/clang 1 5/60
6 6/60 Hello, C World Einleitung Historisches Warum C? Standards Erste Schritte #include <stdio.h> int main(void) { (void) printf("hello, C World\n"); } return 0;
7 7/60 Einleitung Historisches Warum C? Standards Erste Schritte Kompiliervorgang Source Code muss in Maschinensprache übersetzt werden Code Präprozessor Compiler Linker $ gcc o prog prog. c # a l l e s in einem S c h r i t t $. / prog # Programm starten Einzelschritte (fyi only): Präprozessor: $ gcc E prog. c [.. ] extern i n t p r i n t f ( const char r e s t r i c t format,... ) ; [.. ] Compiler, Linker: $ gcc v o prog prog. c [.. ] <.. >/ cc1 [.. ] prog. c [.. ] o /tmp/ccpmj9ab. s [.. ] as V Qy o /tmp/ccdr6ueb. o /tmp/ccpmj9ab. s [.. ] <.. >/ c ollect2 [.. ] o prog [.. ] crtn. o
8 8/60 Kommentare Einleitung Historisches Warum C? Standards Erste Schritte /* Ich bin ein Kommentar in C-89 */ // Ich einer aus dem C-99-Standard // Ich ende immer am Zeilenende /* mehrere Zeilen sind okay */ Code kommentieren (Funktionen, etc.) strukturieren (einrücken, Zeilenumbrüche, etc.)
9 9/60 Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren Teil II Variablen &
10 10/60 Definition Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren Für Variablen muss Speicherplatz reserviert werden (je nach Datentyp) Name wird festgelegt Das passiert bei der Definition Definition darf nur einmal im Code vorkommen int i; /* Integer Variable i, + Definition */
11 11/60 Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren Variablen haben einen Typ Dieser Typ muss dem Compiler bekannt gemacht werden Bekanntgabe bei der extern int j; /*, Definition wo anders */ darf mehrmals vorkommen Nicht jede ist eine Definition Jede Definition ist eine Oft wird zwischen und Definition nicht unterschieden Es wird für beides der Begriff verwendet
12 12/60 Initialisierung Variablen & Definition Initialisierung Typen Scope Modifikatoren 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 Zuweisung erfolgt mit = int k = 23; /* hier mit Initialisierung */
13 13/60 Variablen & Definition Initialisierung Typen Scope Modifikatoren 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 */
14 14/60 Byte im C99 Standard Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren A byte is composed of a contiguous sequence of bits, the number of which is implementation-defined. ISO/IEC 9899:TC3, Committee Draft September 7, 2007
15 15/60 Variablen & Definition Initialisierung Typen Scope Modifikatoren 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>): z.b., uint32_t, int8_t,... 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)
16 16/60 Fließkommazahlen Variablen & Definition Initialisierung Typen Scope Modifikatoren 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
17 17/60 Wertebereich Variablen & Definition Initialisierung Typen Scope Modifikatoren 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
18 18/60 sizeof Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren Der Operator sizeof wird zur Ermittelung des Speicherbedarfs verwendet int i; (void) printf("%lu Byte(s)\n", sizeof i); (void) printf("%lu Byte(s)\n", sizeof (int));
19 19/60 Variablen & Definition Initialisierung Typen Scope Modifikatoren 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
20 20/60 Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren Scope Vor C-99 mussten Variablen am Anfang eines Blocks deklariert werden Variablen sind innerhalb ihres Blocks sichtbar #include <stdio.h> int main(void) { int i = 23, j = 42; { int i; i = 2323; (void) printf("%d, ", i); (void) printf("%d, ", j); } (void) printf("%d\n", i); return 0; } $ 2323, 42, 23
21 21/60 C99 Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren #include <stdio.h> int main(void) { /* i, j nicht am anfang eines blocks */ for (int i = 0; i < 10; ++i) { (void) printf("%d\n", i); int j = 23; (void) printf("%d\n", j); } return 0; }
22 22/60 static Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren static weist einer Variablen einen festen Speicherplatz zu. Sie behält dadurch ihren Zustand Auf eine statische Variable kann von außen (Block oder Datei) nicht zugegriffen werden #include <stdio.h> void foo() { static int i = 23; (void) printf("%d, ", i); i = i + 1; } int main(void) { foo(); foo(); foo(); return 0; } $ 23, 24, 25,
23 23/60 extern Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren Deklariert Variablen, die in einer anderen Datei definiert inc.c sind int g_variable = 1; [..] g_variable++; [..] dec.c extern int g_variable; [..] g_variable--; [..]
24 Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren volatile Variable kann sich außerhalb des Programmkontexts ändern Wichtig für hardwarenahe Programmierung (z.b. Interrupthandler, die Inhalt einer Variablen ändern) (fyi only:) Umsetzung von volatile leider Compiler-abhängig, saubere Lösungen verwenden Memory Barriers 2 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 /60
25 25/60 Beispiel Variablen & Definition Initialisierung Typen Scope Modifikatoren 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
26 26/60 Increment/Decrement Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren Mit ++ und -- können Variablen um eins erhöht bzw. vermindert werden Präfix (++i) und postfix (i++) sind möglich: Präfix Operator in/dekrementiert, gibt neuen Wert zurück Postfix Operator in/dekrementiert, gibt alten Wert zurück Nach Möglichkeit präfix verwenden (auch im Hinblick auf C++) int n; int m = 0; n = ++m; $ n = 1, m = 1 int n; int m = 0; n = m++; $ n = 0, m = 1
27 Rangfolge/Assoziativität 3 Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren c = sizeof (x) + ++a / 3; c = (sizeof (x) + ((++a) / 3)); a = 5 / 2 * 3; a = (5 / 2) * 3; /* links nach rechts */ i = 3; a = i + i++; /* i == 4, a ==? (laut Standard implementierungsabhaengig!) */ i = 2; a = i i; /*??? */ 3 man operator 27/60
28 28/60 Vergleichsoperatoren & Logische Operatoren Variablen & Definition Initialisierung Typen Scope Modifikatoren 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
29 29/60 Variablen & Definition Initialisierung Typen Scope Modifikatoren Operatoren Bitweise Operatoren Operator Bedeutung & und oder exklusives oder (xor) Einerkomplement >> Rechs-Shift << Links-Shift x: y: x & y: Für bitweise und arithmetische Operatoren existieren die Versionen Op= (z.b. i += 5 gleichbedeutend mit i = i + 5;)
30 30/60 Shift Variablen & Definition Initialisierung Typen Scope Modifikatoren 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 mit negativem Wert ist das Verhalten undefiniert. int i = -7; i <<= 1; printf("%d\n", i); /* -14??? undefiniert */
31 31/60 Variablen & Definition Initialisierung Typen Scope Modifikatoren 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 = 7 */ b %= 3; /* b = b % 3 = 1 (%.. modulo div) */ b = 0; if ( (b > 0) && ( (a / b) > 5) ) /*... */
32 32/60 Strukturen zur Kontrolle if switch for while/do-while continue/break Teil III Strukturen zur Kontrolle
33 33/60 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
34 Strukturen zur Kontrolle if switch for while/do-while continue/break goto fail; goto fail; Apple s libsecurity_ssl, sslkeyexchange.c: SSLVerifySignedServerKeyExchange (.. ).. i f ( ( err = SSLHashSHA1. update(&hashctx, &signedparams ) )!= 0) goto f a i l ; goto f a i l ; i f ( ( err = SSLHashSHA1. f i n a l (&hashctx, &hashout ) )!= 0) goto f a i l ;.. f a i l : SSLFreeBuffer(&signedHashes ) ; SSLFreeBuffer(&hashCtx ) ; return err ; Quellen: Security-55471/libsecurity_ssl/lib/sslKeyExchange.c 10_9_2_ssl/ Dank an Roland Kammerer für dieses Fall-Beispiel! 34/60
35 35/60 goto fail; goto fail; Strukturen zur Kontrolle if switch for while/do-while continue/break
36 Strukturen zur Kontrolle if switch for while/do-while continue/break goto fail; goto fail; Bitte auf Verwendung von goto in den regulären n verzichten. Negativbeispiel: #include <stdio.h> int main(void) { int i = 0; loopstart: ++i; if(i >= 5) goto printnum; contloop: if (i < 9) goto loopstart; goto end; printnum: (void) printf("i is %d\n", i); goto contloop; end: return 0; } 36/60
37 37/60 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
38 38/60 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
39 39/60 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
40 40/60 continue/break Strukturen zur Kontrolle if switch for while/do-while continue/break continue setzt beim nächsten Schleifendurchlauf der innersten Schleife fort for-schleife: expression3 wird ausgeführt, expression2 wird überprüft break verläßt die innerste Schleife und setzt nach ihr fort for-schleife: expression3 wird nicht mehr ausgeführt
41 41/60 Strukturen zur Kontrolle if switch for while/do-while continue/break int i; for (i = 0; i < 10; ++i) { (void) printf("hallo\n"); } switch (input) { case a : case A : (void) printf("a oder A\n"); break; default: (void) printf("fehler"); break; } i = 23; if (i == 42) { (void) printf("i ist 42\n"); }
42 42/60 Arrays Eindimensional Mehrdimensional Initialisierung Strings Teil IV Arrays
43 43/60 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
44 44/60 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];
45 45/60 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 */
46 46/60 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 }; (void) printf("%s\n", s); /* prints "hallo" */ s[3] = \0 ; (void) printf("%s\n", s); /* prints "hal" */
47 47/60 Funktionen Definition Globale und lokale Variablen Teil V Funktionen
48 48/60 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(void) { int i; i = add(2, 3); /* i == 5 */ return 0; }
49 49/60 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(void) { 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; }
50 50/60 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
51 51/60 Funktionen Definition Globale und lokale Variablen int i; int j = 23; void foo() { int j = 42; (void) printf("%d\n", j); /* 42 */ } int main(void) { int k; (void) printf("%d\n", j); /* 23 */ foo(); (void) printf("%d\n", i); /* 0 */ (void) printf("%d\n", k); /* 1863 (zufällig) */ return 0; }
52 52/60 Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren Teil VI Pointer
53 53/60 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!! : Falsch, sie verstecken sie nur vor dem Programmierer/der Programmiererin
54 54/60 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 */ int *a, *b; /* a und b sind Pointer */
55 55/60 Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren Speicherlayout int *a; int b = 17; a = &b; (void) printf("inhalt b: %d\n", b); /* 17 */ (void) printf("adresse b: %p\n", &b); /* 1462 */ (void) printf("inhalt a: %p\n", a); /* 1462 */ (void) printf("inhalt auf den a zeigt: %d\n", *a); /* 17 */ (void) printf("adresse von a: %p\n", &a); /* 874 */
56 56/60 Einfache Pointerarithmetik Pointer Allgemeines Speicherlayout Arithmetik man-pages Gefahren int ar[5] = {1, 2, 3, 4, 5}; int *p; p = &ar[0]; /* oder */ p = ar; /* ar ist kein Pointer, nur die Adresse! */ (void) printf("%d\n", *p); /* 1 */ *p += 22; (void) printf("%d\n", ar[0]); /* 23 */ p += 1; /* Pointer zeigt auf das naechste Element */ (void) printf("%d\n", *p); /* 2 */
57 57/60 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*/ (void) strcpy(mydest, mysrc); /*? */ /* oder doch eher */ (void) strcpy(*mydest, *mysrc); /*? */ man-page liest man so: strcpy will Variablen in denen Adressen stehen (*dest, *src). Wo steht die Adresse? In den Pointern, also muss man sie nicht dereferenzieren. (void) strcpy(mydest, mysrc)
58 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 4 int ar[5] = {1, 2, 3, 4, 5}; int *p = &ar[0]; /* so sicher nicht! */ p += 23; /* möglicherweise ein Problem */ (void) printf("%d\n", *p); /* FAIL */ p = NULL; (void) printf("%d\n", *p); /* FAIL */ /60
59 59/60 Material Teil VII Material
60 60/60 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
Einführung in C. Kammerer. Einführung in C. Roland Kammerer. Institut für Technische Informatik Technische Universität Wien. 3. & 4.
Einführung in C Roland Institut für Technische Informatik Technische Universität Wien 3. & 4. Oktober 2011 Einleitung Historisches Warum C? Standards Erste Schritte Teil I Einleitung Historisches Einleitung
MehrGrundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrProgrammieren in 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
MehrComputergrundlagen Programmieren in C
Computergrundlagen Programmieren in C Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2013/14 Die Sprache C D. M. Ritchie, 1941 2011 Entwickelt 1971-1973 aktueller Standard:
MehrInhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler
Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale
Mehr[E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z.
Literatur [E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z.zip [E-2] M.K. Johnson, E.W. Troan: Anwendungen
MehrC allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.
C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von
MehrProgrammieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff
Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet
MehrModerne C-Programmierung
Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete
MehrC Überlebenstraining
C Überlebenstraining Dies ist nur ein Schnellkurs in C, der genug Einstiegswissen vermitteln soll, daß weiterführende Literatur schnell benutzt werden kann. Dies ist kein vollständiger Programmier oder
MehrHello world. Sebastian Dyroff. 21. September 2009
Hello world Sebastian Dyroff 21. September 2009 1 / 35 Inhaltsverzeichnis Organisatorisches Hello World Typen und Operatoren Programmfluss Weitere Konstrukte Nützliche Tipps 2 / 35 Inhalte dieser Veranstaltung
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrMIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr. 439.026 SS2007 1 INSTITUT FÜR ELEKTRONIK BIT
MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG BIT LV-Nr. 439.026 SS2007 1 Datendefinitionen b) Unterteilung nach Typen: (Teil 2) void leer Pointer 2/4 Bytes Adresse von Objekten Arrays bei allen Datentypen
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrZusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
MehrGrundlagen von C. Ausarbeitung von Jonas Gresens
Grundlagen von C Ausarbeitung von Jonas Gresens 1 Allgemein Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und
MehrModellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 19.12.2012 IAM Institut für Angewandte Mathematik Funktionszeiger: Vorüberlegungen Funktionsaufrufe sind bis jetzt im Code mit Name explizit angegeben
MehrOrganisatorisches. Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg
Organisatorisches Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Wenn Sie kommen...... kommen Sie pünktlich
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrProgrammieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.
PROGRAMMIEREN IN C - EIN KURZÜBERBLICK 1 Programmieren in C -- ALLE Programmiersprachen sind HÄSSLICH -- Die einfachste Programmstruktur: main () -- was zu tun ist --- Vorgeordnete Definitionen: # include
MehrL6. Operatoren und Ausdrücke
L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.
MehrC-Programming Hands-on
C-Programming Hands-on Teil 1 Sebastian Meisner, sebastian.meisner@upb.de Fachgebiet Technische Informatik 1 Schnelleinführung in C Einführung Zeiger Häufige Stolpersteine Aufgaben Inhalt dieser Hands-on
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrEinführung in die Programmiersprache C und in den C166-Compiler
Einführung in die Programmiersprache C und in den C166-Compiler Die vorliegenden Unterlagen sollen einen kurzen Überblick über die Software-Entwicklung in C geben. Diese Unterlagen erheben keinen Anspruch
MehrPropä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
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
MehrVorlesung 2: Programmieren mit C
Vorlesung 2: Programmieren mit C URL zur Lehrveranstaltung http://www.fbmnd.fh-frankfurt.de/~raimann Folien zur Vorlesung, Übungsaufgaben,... Dr. J. Raimann 1 Dev C++ Kostenlose C/C++-Entwicklungsumgebung
Mehr2 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,
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrEs gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:
3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert
MehrDie Programmiersprache C
Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,
MehrJavakurs 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
MehrNumerische Datentypen. Simon Weidmann
Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die
MehrEinfache Rechenstrukturen und Kontrollfluss II
Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrC/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)
MehrJava 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
MehrPython Programmierung. Dipl.-Ing.(FH) Volker Schepper
Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013
MehrHEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion
17.11.04 1 HEUTE 17.11.04 3 Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: was ist Effizienz? vollständige Induktion JAVA: Arrays die for -Schleife die Sprunganweisungen break und continue
MehrMicrocontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1
Microcontroller Kurs Programmieren 9.1.11 Microcontroller Kurs/Johannes Fuchs 1 General Purpose Input Output (GPIO) Jeder der Pins der vier I/O Ports kann als Eingabe- oder Ausgabe-leitung benutzt werden.
MehrLösungsvorschlag zur 9. Übung
Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 9. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche der folgenden Aussagen über
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrObjective-C CheatSheet
App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController
MehrTechnische Infor matik 2 C/C++-Kurs. Pointer und Arrays. 2007 AG Rechner netze 2.1
Technische Infor matik 2 C/C++-Kurs Pointer und Arrays 2007 AG Rechner netze 2.1 Pointer in C Pointer (Zeiger) Wichtiges Konzept in C/C++ InJava versteckt Umdenken erforder lich AmAnfang durchaus schwierig
MehrKompaktkurs C-Programmierung
Kompaktkurs C-Programmierung 26. 03. 2007 Franz Schenk Organisatorisches Vorlesung Accountvergabe Skriptverkauf Übungen: zwei Blöcke (13:15-14:45 / 14:45-16:15) Gruppenübung Rechnerübung Klausur Ferien:
MehrPrinzipieller Grundaufbau eines einfachen C-Programmes
Prinzipieller Grundaufbau eines einfachen C-Programmes C unterscheidet zwischen Groß- und Kleinschreibung! Siehe zu den folgenden Erklärungen auch das Programm am Ende der nächsten Seite. Am Anfang aller
MehrÜbersicht. Race Conditions Buffer Overflows Heap Overflows Exkurs: Stackaufbau bei Intel x86 Exkurs: Shellcode Stack Overflows
Übersicht Race Conditions Buffer Overflows Heap Overflows Exkurs: Stackaufbau bei Intel x86 Exkurs: Shellcode Stack Overflows Integer Overflows Format-String-Angriffe (SQL) Injection Cross Site Scripting
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrEine 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.............................
MehrEinfü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,
MehrGrundlagen der Programmierung in C Basics
Grundlagen der Programmierung in C Basics Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Was ist ein Programm? Abstrakt: Zeichenfolge entsprechend einer formalen
MehrKontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else
Kontrollstrukturen 1. Bedingter Ablauf: if, if-else 2. Blöcke von Code 3. Wiederholungsschleife: for mit Inkrement und Dekrement Operatoren 4. erweiterte Eigenschaften von printf() 5. Die relationalen
MehrDatentypen: 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
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
MehrKurzeinführung in C. Johannes J. Schneider 27.10.2004
Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung
Mehr5 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
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
Mehr5.4 Klassen und Objekte
5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen
Mehr4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte
4. Datentypen Einleitung Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Konversion / Type-Cast Datentyp von Literalen Operatoren Ausdrücke Allgemeine Informatik 2 SS09
Mehr1.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
MehrGrundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes
MehrNoch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean
01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2
MehrDatenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
MehrC/C++ Programmierung
1 C/C++ Programmierung Verbunde, Reihungen, Zeiger Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Typen 6.2.5 Primitive
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrFortgeschrittene C++-Programmierung
Vorlesung: "Fortgeschrittene C++-Programmierung" 16.04.2009 Fortgeschrittene C++-Programmierung SS 2009 Teil 1 Sandro Andreotti - andreott@inf.fu-berlin.de 1 Vorlesung: "Fortgeschrittene C++-Programmierung"
MehrZahlendarstellung Logikfunktionen Register Eingänge Infrarot senden TSOP-Effekte Weiterführendes U23 2008. Abend 3:
#2 Abend 3: Alexander Neumann e.v. http://koeln.ccc.de Köln, 3.11.2008 Gliederung 1 Zahlendarstellung n-adische Darstellung natürlicher Zahlen negative Zahlen 2 Logikfunktionen 3 Register
MehrProgrammieren in C. -- ALLE Programmiersprachen sind HÄSSLICH. -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.
PROGRAMMIEREN IN C - EIN KURZÜBERBLICK 1 Die einfachste Programmstruktur: main () -- was zu tun ist --- Vorgeordnete Definitionen: Programmieren in C -- ALLE Programmiersprachen sind HÄSSLICH. -- #include
MehrInformatik: Abschnitt 4
Informatik: Abschnitt 4 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
MehrÜbersicht. C Funktionen. Funktion main. Funktionen. Funktionsdefinition und und Funktionsaufruf Deklaration von Funktionen
Übersicht Funktionsdefinition und und Funktionsaufruf Deklaration von Funktionen C Funktionen Gültigkeitsbereich und Speicherklasse Parameterübergabe Rückgabe des Funktionsresultats Mehr zu Funktionen
MehrKurzeinführung in C++
Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Der Anfänger sollte nicht entmutigt sein, wenn er nicht die Voraussetzungen besitzt, um die Voraussetzungen zu verstehen...
MehrProseminar C-Programmierung. Strukturen. Von Marcel Lebek
Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11
MehrÜ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
MehrProgrammiertechnik Operatoren, Kommentare, Ein-/Ausgabe
Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,
MehrFallunterscheidung: if-statement
Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0
MehrC++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen
C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,
MehrCompiler: 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
MehrKapitel 3. Mein erstes C-Programm
Kapitel 3 Mein erstes C-Programm 1 Gliederung Kapitel 3 Mein erstes C-Programm 3.1 Einleitung 3.2 Mein erstes C-Programm 3.3 Zusammenfassung 2 Problem Algorithmus Mittelwert für Messwerte berechnen DGL
MehrDr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
MehrSelber Programmieren
Selber Programmieren Wenn es für ein Problem keine fertige Lösung gibt, oder wenn man keine fertige Lösung finden kann, dann muss man sich das benötigte Werkzeug selbst herstellen: Ein eigenes Programm
MehrAlgorithmische 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Ü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
MehrC Grundlagen. Die Zunahme von integrierter Software innerhalb elektronischer Geräte bedingt enorme Entwicklungskosten.
C Grundlagen Die Zunahme von integrierter Software innerhalb elektronischer Geräte bedingt enorme Entwicklungskosten. Häufigste Programmiersprache für embedded systems ist Assembler. Ihr Vorteil ist, dass
MehrProgrammieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik
Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen
MehrMultimedia im Netz Wintersemester 2011/12
Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung
MehrIT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken
IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform
MehrEinheit 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.
MehrC-Programmierung: Druckversion
C-Programmierung: Druckversion 1 C-Programmierung: Druckversion Vorwort C Programmierung Wikibooks Dieses Buch hat sich zum Ziel gesetzt, den Anwendern eine Einführung in C zu bieten, die noch keine oder
Mehr620.900 Propädeutikum zur Programmierung
620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe
Mehr