C/C++ Programmierung
|
|
|
- Reinhardt Friedrich
- vor 9 Jahren
- Abrufe
Transkript
1 1 C/C++ Programmierung Grundlagen: Einführung und Ausdrücke Sebastian Hack Christoph Mallon (hack Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010
2 2 Hello, world: K&R C main () { printf (" hello, world \n"); } Aus: The C Programming Language K&R: Brian W. Kernighan und Dennis M. Ritchie
3 2 Hello, world: K&R C main () { printf (" hello, world \n"); } Aus: The C Programming Language K&R: Brian W. Kernighan und Dennis M. Ritchie Heute kein gültiges C mehr
4 3 Hello, world: ANSI C89 # include <stdio.h> main () { printf (" hello, world \n"); } Aus: The C Programming Language (Second Edition)
5 3 Hello, world: ANSI C89 # include <stdio.h> main () { printf (" hello, world \n"); } Aus: The C Programming Language (Second Edition) Immernoch kein gültiges C
6 4 Hello, world: ISO C99 # include <stdio.h> int main ( void ) { printf (" hello, world \n"); return 0; } Offiziell: ISO/IEC 9899:1999 (E)
7 5 Hello, world: Erweitert # include <stdio.h> int main ( int argc, char ** argv ) { /* Greet the world or the user, if argument given.*/ if ( argc > 1) { char const * name = argv [1]; printf (" hello, %s\n", name ); } else { printf (" hello, world \n"); } return 0; }
8 5 Hello, world: Erweitert # include <stdio.h> int main ( int argc, char ** argv ) { /* Greet the world or the user, if argument given.*/ if ( argc > 1) { char const * name = argv [1]; printf (" hello, %s\n", name ); } else { printf (" hello, world \n"); } return 0; } Präprozessordirektiven
9 5 Hello, world: Erweitert # include <stdio.h> int main ( int argc, char ** argv ) { /* Greet the world or the user, if argument given.*/ if ( argc > 1) { char const * name = argv [1]; printf (" hello, %s\n", name ); } else { printf (" hello, world \n"); } return 0; } Präprozessordirektiven Funktions- und Variablendeklarationen
10 5 Hello, world: Erweitert # include <stdio.h> int main ( int argc, char ** argv ) { /* Greet the world or the user, if argument given.*/ if ( argc > 1) { char const * name = argv [1]; printf (" hello, %s\n", name ); } else { printf (" hello, world \n"); } return 0; } Präprozessordirektiven Funktions- und Variablendeklarationen Kommentare
11 5 Hello, world: Erweitert # include <stdio.h> int main ( int argc, char ** argv ) { /* Greet the world or the user, if argument given.*/ if ( argc > 1) { char const * name = argv [1]; printf (" hello, %s\n", name ); } else { printf (" hello, world \n"); } return 0; } Präprozessordirektiven Funktions- und Variablendeklarationen Kommentare Anweisungen
12 5 Hello, world: Erweitert # include <stdio.h> int main ( int argc, char ** argv ) { /* Greet the world or the user, if argument given.*/ if ( argc > 1) { char const * name = argv [1]; printf (" hello, %s\n", name ); } else { printf (" hello, world \n"); } return 0; } Präprozessordirektiven Funktions- und Variablendeklarationen Kommentare Anweisungen Ausdrücke
13 5 Hello, world: Erweitert # include <stdio.h> int main ( int argc, char ** argv ) { /* Greet the world or the user, if argument given.*/ if ( argc > 1) { char const * name = argv [1]; printf (" hello, %s\n", name ); } else { printf (" hello, world \n"); } return 0; } Präprozessordirektiven Funktions- und Variablendeklarationen Kommentare Anweisungen Ausdrücke Literale
14 Hello, world: Erweitert # include <stdio.h> int main ( int argc, char ** argv ) { /* Greet the world or the user, if argument given.*/ if ( argc > 1) { char const * name = argv [1]; printf (" hello, %s\n", name ); } else { printf (" hello, world \n"); } return 0; } Präprozessordirektiven Funktions- und Variablendeklarationen Kommentare Anweisungen Ausdrücke Literale Kommunikation mit der Umgebung 5
15 6 Programme übersetzen Das Programm übersetzen: % cc -o hello hello. c oder für Fortgeschrittene: (später) % make hello und starten: %./ hello hello, world %./ hello Christoph hello, Christoph
16 7 Kommentare /* Dies ist ein mehrzeiliger Kommentar. Er beginnt * bei /* und endet bei */ // Einzeilige Kommentare enden mit dem Zeilenende Mehrzeilige Kommentare nicht schachtelbar, d.h. zweites /* oben wird ignoriert Einzeilige Kommentare ab C99 oder C++
17 8 Deklarationen 6.7 Vereinbaren Variablen und Funktionen Jede Variable/Funktion hat einen Typ später mehr: (Funktions-)Zeiger, (mehrdimensionale) Reihungen
18 8 Deklarationen 6.7 Vereinbaren Variablen und Funktionen Jede Variable/Funktion hat einen Typ später mehr: (Funktions-)Zeiger, (mehrdimensionale) Reihungen char (*(*x())[])() 1 1 Aus der Ode to C
19 Typspezifikationssymbole type - specifier : one of void char short int long float double signed unsigned _Bool _ Complex _ Imaginary struct - or - union - specifier enum - specifier typedef - name Ganzzahltypen: char, short, int, long, long long (C99) Ganzzahltypen sind normalerweise vorzeichenbehaftet (außer char, dazu später) mit signed/unsigned kombinierbar Gleitkommatypen: float, double, long double Komplexe Zahlen: _Complex, _Imaginary sind Modifikatoren für Gleitkommatypen Boolescher Typ: _Bool (C99) Typgrößen und Darstellung ist implementierungsabhängig, Norm gibt nur Mindestgrößen vor später mehr 9
20 10 Beispiele für Deklarationen int i; // Vorzeichenbehafteter int signed int j; // Dasselbe wie oben unsigned k; /* Vorzeichenlos, * dasselbe wie " unsigned int " */ unsigned long long int l; int a = 23; // Mit Initialisierung int b, c = 42; /* Mehrere Namen in einer Deklaration, * nur c ist mit 42 initialisiert */ /* Eine Funktion, die keine Parameter hat und nichts * zurueckgibt */ void f( void ); /* Eine Funktion, die einen double und einen int als * Parameter hat und einen double zurueckgibt */ double g( double, int ); double const pi = ; // Eine Konstante ( spaeter ) char * p; // Zeiger auf char ( spaeter )
21 Ausdrücke 2 (Expressions) 6.5 Operator Associativity () [] ->. left to right! ~ ( type ) * & sizeof new delete right to left ->*.* left to right * / % left to right + - left to right << >> left to right < <= > >= left to right ==!= left to right & left to right ^ left to right left to right && left to right left to right?: right to left = += -= *= /= %= <<= >>= &= ^= = throw right to left?: ( C ++, third operand ) right to left, left to right 2 Aus: man operator 11
22 12 Ausdrücke (Expressions) 6.5 Jeder Ausdruck hat einen Ergebnistyp Wird meist aus (beiden) Operanden berechnet Operanden werden (fast immer) in mindestens int umgewandelt Auswertungsreihenfolge großteils unspezifiziert außer bei Funktionsaufruf (teilweise), &&,,?: und, Können Seiteneffekte beinhalten Achtung: Ein Ausdruck darf nicht mehrfach das selbe Objekt verändern
23 13 Primärausdrücke primary - expression : identifier constant string - literal ( expression ) Bezeichner: i, name, printf Konstanten: 23, 3.14, A Zeichenkettenliterale: "Hello, world" Geklammerter Ausdruck, z.b. (a + b) * c
24 14 Bezeichner identifier : [A-Za -z_ ][A-Za -z_0-9]* Bezeichner beginnen mit Buchstaben oder Unterstrich Danach beliebig Buchstaben, Unterstriche und Ziffern Nur Buchstaben A bis Z (oder klein), keine Umlaute etc. Es wird zwischen Groß- und Kleinschreibung, wie überall in C, unterschieden: bla ist ein anderer Bezeichner als BLA Keine Schlüsselwörter wie z.b. if Reservierte Namen vermeiden, z.b. printf Generell vermeiden: _[A-Z_].* Implementierungen dürfen weitere Zeichen in Bezeichnern akzeptieren, z.b. GCC erlaubt $
25 15 Konstanten constant : integer - constant floating - constant enumeration - constant character - constant Ganzzahlige Konstanten Gleitkommazahlen Aufzählungskonstanten (später) Zeichenkonstanten
26 16 Zahlenkonstanten: Dezimal integer - constant : [1-9][0-9]* integer - suffix? Basis 10 Typ abhängig vom Betrag der Zahl, mindestens int, normalerweise immer signed Suffixe: integer-suffix U (oder u): unsigned L (oder l): mindestens long LL (oder ll): mindestens long long (C99) U mit L/LL kombinierbar Beispiele: 23, 23U, 23L, 23UL, 23llU Achtung: Unerwarteter Typ kann zu subtilen Fehlern führen Auffälligkeit: es gibt keine negativen Zahlenkonstanten
27 16 Zahlenkonstanten: Dezimal integer - constant : [1-9][0-9]* integer - suffix? Basis 10 Typ abhängig vom Betrag der Zahl, mindestens int, normalerweise immer signed Suffixe: integer-suffix U (oder u): unsigned L (oder l): mindestens long LL (oder ll): mindestens long long (C99) U mit L/LL kombinierbar Beispiele: 23, 23U, 23L, 23UL, 23llU Achtung: Unerwarteter Typ kann zu subtilen Fehlern führen Auffälligkeit: es gibt keine negativen Zahlenkonstanten Auffälligkeit: 0 ist nicht darstellbar!
28 17 Zahlenkonstanten: Oktal integer - constant : 0[0-7]* integer - suffix? Basis 8, gekennzeichnet durch führende 0 Typ abhängig vom Betrag der Zahl, signed oder unsigned Suffixe wie bei dezimal Früher häufiger verwendet, einige Systeme verwendeten 12 Bit, 18 Bit oder 36 Bit breite Wörter Heute fast nur noch für UNIX-Rechte (-rwxr-xr-x 0755)
29 17 Zahlenkonstanten: Oktal integer - constant : 0[0-7]* integer - suffix? Basis 8, gekennzeichnet durch führende 0 Typ abhängig vom Betrag der Zahl, signed oder unsigned Suffixe wie bei dezimal Früher häufiger verwendet, einige Systeme verwendeten 12 Bit, 18 Bit oder 36 Bit breite Wörter Heute fast nur noch für UNIX-Rechte (-rwxr-xr-x 0755) Kuriosum: 0 ist eine Oktalkonstante
30 18 Zahlenkonstanten: Hexadezimal How many people can read hex if only you and dead people can read hex? integer - constant : 0[ xx ][0-9A-Fa -f]+ integer - suffix? Basis 16, gekennzeichnet durch vorangestelltes 0x (oder 0X) Typ und Suffixe wie bei oktal Heute häufiger als oktal, da Bytes üblicherweise 8 Bit breit Oft anzutreffen bei Bitgefummel
31 18 Zahlenkonstanten: Hexadezimal How many people can read hex if only you and dead people can read hex? integer - constant : 0[ xx ][0-9A-Fa -f]+ integer - suffix? Basis 16, gekennzeichnet durch vorangestelltes 0x (oder 0X) Typ und Suffixe wie bei oktal Heute häufiger als oktal, da Bytes üblicherweise 8 Bit breit Oft anzutreffen bei Bitgefummel Antwort: 57006
32 Gleitkommazahlen floating - constant : decimal - floating - constant hexadecimal - floating - constant decimal - floating - constant : fractional - constant exponent - part? [ FfLl ]? fractional - constant : [0-9]*. [0-9]+ [0-9]+. exponent - part : [Ee] [+ -]? [0-9]+ Beispiel: 1.337e+3 ist 1, , also 1337 Weitere Beispiele:.5, 1.e-0f Typ abhängig vom Suffix, ohne: double, f oder F: float, l oder L: long double Auch zur Basis 16 möglich (hier nicht) 19
33 20 Zahlenkonstanten: Zeichenkonstante character - constant : c- char \ [0-7] [0-7]? [0-7]? \ x [0-9A-Fa -f]+ simple - escape - sequence simple - escape - sequence : one of \ \" \? \\ \a \b \f \n \r \t \v c-char: Jedes Zeichen außer, \ oder Zeilenumbruch Entweder einfaches Zeichen: A Achtung: Wert ist implementierungsabhängig Oder bis zu dreiziffrige Oktalsequenz: \101 Oder Hexadezimalsequenz: \x41 Bei ASCII haben alle drei Beispiele den selben Wert Typ: int (in C), char (in C++) Werden wie normale Zahlen gehandhabt: == 3 Häufig verwendete Oktalsequenz ist das NUL-Zeichen: \0
34 21 Zeichenkonstanten: Funktionssequenzen \ // Einfaches Anfuehrungszeichen \" // Doppeltes Anfuehrungszeichen \? // Fragezeichen \\ // Umgekehrter Schraegstrich ( backslash ) \a // Piepton ( alert ) \ b // Rueckschritt ( backspace ) \ f // Seitenvorschib ( form feed ) \ n // Zeilenumbruch ( newline ) \ r // Wagenruecklauf ( carriage return ) \ t // Horizontaler Tabulator \ v // Vertikaler Tabulator Werte sind implementierungsabhängig z.b. ASCII: \t ist 9, \n ist 10 Jedes andere Zeichen nach einem \ ist ein Fehler
35 22 Zeichenkettenliterale string - literal : " s- char * " s-char: Funktionssequenz oder beliebiges Zeichen außer ", \ und Zeilenumbruch Sind einfach eine Reihung von einzelnen Zeichen Also gleiche Regeln wie bei Zeichenkonstanten, nur mehrere Zeichen hintereinander und " statt Zeichenkettenliteral wird automatisch am Ende mit einem NUL-Zeichen ( \0 ) ergänzt Wichtig für Verarbeitung von Zeichenketten in C (später) Beispiel: "hello, world\n"
36 Postfixoperatoren postfix - expression : primary - expression postfix - expression [ expression ] postfix - expression ( argument - expression - list? ) postfix - expression. identifier postfix - expression -> identifier postfix - expression ++ postfix - expression -- ( type - name ) { initializer - list,? } argument - expression - list : assignment - expression argument - expression - list, assignment - expression Zugriff auf Elemente von Reihungen mittels [] (später) Funktionsaufrufe, auch Aufrufe über Funktionszeiger Zugriff auf Elemente von Strukturen mittels. und -> (später) Nachgestelltes ++/-- erhöht/verringert Variable um 1 und liefert vorherigen Wert Compound-literal (hier nicht) 23
37 Unäre Operatoren unary - expression : postfix - expression ++ unary - expression -- unary - expression unary - operator cast - expression sizeof unary - expression sizeof ( type - name ) unary - operator : one of & * + - ~! Vorangestelltes ++/-- erhöht/verringert Variable um 1 und liefert neuen Wert & und * für Operation mit Zeigern (später) + tut (fast) nichts, - liefert negierten Wert des Operanden Bitweise Negation: ~ liefert Einerkomplement des Operanden Logische Negation:! vergleicht Operand mit 0, gibt 1 zurück falls gleich 0, sonst 0 sizeof liefert Größe eines Ausdrucks/Typs in Byte (später) 24
38 25 Explizite Typumwandlung cast - expression : unary - expression ( type - name ) cast - expression Wandelt Operand in den gewünschten Typ um Umwandlung von Gleitkommazahlen in Ganzzahlen schneidet Nachkommastellen ab Wenn Ergebnis nicht darstellbar, dann undefiniert Umwandlungen zwischen Zeigertypen möglich (später) C++ bietet weitere, sicherere Typumwandlungen (später)
39 Multiplikate Ausdrücke multiplicative - expression : cast - expression multiplicative - expression * cast - expression multiplicative - expression / cast - expression multiplicative - expression % cast - expression * multipliziert die Operanden / teilt linken durch rechten Operanden % liefert Divisionsrest Division durch 0 ist undefiniert Achtung: Ergebnistyp bestimmt durch Typ der Operanden: 5 / 2 ist 2, nicht
40 27 Additive Ausdrücke additive - expression : multiplicative - expression additive - expression + multiplicative - expression additive - expression - multiplicative - expression Addiert/subtrahiert Operanden Auch für Arithmetik mit Zeigern (später)
41 28 Bitschiebeoperationen shift - expression : additive - expression shift - expression << additive - expression shift - expression >> additive - expression a << b schiebt Bits von a um b Positionen nach links Ergebnistyp ist Typ des linken Operanden (mindestens int) b muss mindestens 0 und weniger als Breite von a sein, sonst Verhalten undefiniert Wenn Typ unsigned, dann Ergebnis wie a 2 b (bzw. a/2 b bei >>) Wenn signed, Wert nicht negativ und Ergebnis darstellbar, dann wie oben Sonst bei >> implementierungsabhängig und << undefiniert
42 29 Relationale Operatoren relational - expression : shift - expression relational - expression < shift - expression relational - expression > shift - expression relational - expression <= shift - expression relational - expression >= shift - expression Vergleicht Operaden, Ergebnis ist ein int 1 wenn wahr, 0 sonst Auch für Vergleiche von Zeigern
43 Gleichheitsoperatoren equality - expression : relational - expression equality - expression == relational - expression equality - expression!= relational - expression == testet auf Gleichheit,!= testet auf Ungleichheit Ergebnis wiederrum Typ int, 1 wenn wahr, 0 sonst Auch für Vergleiche von Zeigern Falle: == nicht mit = (Zuweisung) verwechseln Falle: Haben niedrigere Präzedenz als relationale Operatoren: a < b == c > d verhält sich wie (a < b) == (c > d) 30
44 Bitweise Operatoren AND - expression : equality - expression AND - expression & equality - expression exclusive -OR - expression : AND - expression exclusive - OR - expression ^ AND - expression inclusive -OR - expression : exclusive - OR - expression inclusive - OR - expression inclusive - OR - expression Bitweises Und, exklusives Oder und inklusives Oder Falle: Alle drei haben verschiedene Präzedenzen Falle: Haben niedrigere Präzedenz als Vergleiche if (x & 4!= 0) wird interpretiert als if (x & (4!= 0)) 31
45 32 Logische Operatoren logical -AND - expression : inclusive - OR - expression logical - AND - expression && inclusive - OR - expression logical -OR - expression : logical - AND - expression logical - OR - expression logical - AND - expression Ergebnis ist 1, wenn beide (&&)/mindestens ein ( ) Operand!= 0, 0 sonst Kurzauswertung: Zuerst linken Operanden auswerten; steht das Gesamtergebnis dann schon fest, wird der rechte Operand nicht ausgewertet wichtig bei Seiteneffekten Falle: && hat höhere Präzedenz als if (a b && c) äquivalent zu if (a (b && c))
46 33 Ternärer Operator conditional - expression : logical - OR - expression logical - OR - expression? expression : ( C) conditional - expression logical - OR - expression? expression : ( C ++) assignment - expression Auswahloperator, ternär dreistellig a? b : c: Wenn a!= 0, dann ist Ergebnis b, sonst c Ergebnistyp wird nur aus Typen von b und c bestimmt Es wird zuerst a, danach entweder b oder c ausgewertet Grammatik in C und C++ leicht verschieden a? b = c : d = e ( a? ( b = c) : d) = e // Bedeutung in C, Syntaxfehler a? (b = c) : (d = e) // Bedeutung in C++
47 34 Zuweisungen assignment - expression : conditional - expression unary - expression op assignment - expression ( C) logical - OR - expression op assignment - expression ( C ++) op: one of = *= /= %= += -= <<= >>= &= ^= = = ist einfache Zuweisung op= ist Operation kombiniert mit Zuweisung a op= b fast äquivalent zu a = a op (b) a wird bei op= nur einmal ausgewertet, z.b.: data[i++] += 1 Typ/Wert des Ausdrucks ist Typ/neuer Wert der linken Seite Grammatik erlaubt Mehrfachzuweisung und ist rechtsassoziativ: x = y = z += 1 x = (y = (z += 1)) Syntax leicht anders in C++, bietet mehr Möglichkeiten bei Operatorüberladung
48 35 Kommaoperator expression : assignment - expression expression, assignment - expression Zuerst wird zuerst linker Operand ausgewertet, dann rechter Wert des Gesamtausdrucks ist Wert des rechten Operanden Häufig verwendet in Schleifen und Präprozessormakros (später) Achtung: Nicht verwechseln mit Komma, das Funktionsargumente trennt: f(1, 2): kein Kommaoperator, Funktionsaufruf mit zwei Argumenten, Auswertungsreihenfolge unspezifiziert f((1, 2)): Kommaoperator und Funktionsaufruf mit einem Argument
C-Programmierkurs Mathematik
Mathematik WS 2018/2019 Dr. Bodo Kalthoff Speicher für Werte Variablen Über Variablennamen ansprechbar Sprechende Namen vergeben! Variablen können Zahlen, Buchstaben oder komplexere Werte enthalten Der
Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften
Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 6: Ausdrücke und Typumwandlung Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung vom
Programmieren in C / C++ Grundlagen C 2
Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen
Programmieren 1 C Überblick
Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
Grundlagen der Informatik 2. Typen
Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace
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)
Grundelemente von C++
- Zeichensatz - Kommentare - Token - Bezeichner - Schlüsselwörter - Einfache Typen - Literale Ganze Zahlen Reelle Zahlen Wahrheitswerte Zeichen - Variablen und Variablendeklarationen - Benannte Konstanten
C- Kurs 03 Ausdrücke und Operatoren
C- Kurs 03 Ausdrücke und Operatoren Dipl.- Inf. Jörn Hoffmann [email protected] leipzig.de Universität Leipzig InsDtut für InformaDk Technische InformaDk Ausdrücke Institut für Informatik Ausdrücke
Programmierkurs C++ Variablen und Datentypen
Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in
C-Programmierung: Ausdrücke und Operatoren#Division.2F
C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF
Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
Grundlagen der Programmierung
Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,
S. d. I.: Programieren in C Folie diese Zeichen dürfen verwendet werden in
S. d. I.: Programieren in C Folie 2-1 2 Grundelemente von C 2.1 Zeichensätze darstellbarer Zeichensatz - enthält alle Zeichen, die als einzelnes Zeichen auf dem jeweiligen Gerät dargestellt werden können
C/C++-Programmierung
1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung
Syntax und Kontrollstrukturen
Syntax und Kontrollstrukturen Praktikum C-Programmierung Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-10-29
Einstieg in die Informatik mit Java
Vorlesung vom 5.11.07, Weitere Ausdrücke Übersicht 1 Vergleichsoperatoren 2 Kombinierte Zuweisungsoperatoren 3 Logische Operatoren 4 Weitere Operatoren 5 Klassifizierung von Operatoren 6 Typumwandlungen
Variablen, Konstanten und Datentypen
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick
Einführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 [email protected] (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik
Einstieg in die Informatik mit Java
1 / 30 Einstieg in die Informatik mit Java Datentypen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 30 1 Überblick 2 Ganzzahlige Typen 3 Gleitkommatypen 4 Zeichen, char
Unterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
Angewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
Vorlesung 6: Operatoren, Logische Ausdrücke
Vorlesung 6: Operatoren, Logische Ausdrücke Inhalt Organisatorisches Offene Übungen Operatoren Logische Ausdrücke Dr. J. Raimann 1 Offene Übungen (durch Tutoren betreut) montags 1. und 2. Block (8.15 Uhr
3. Operatoren und Ausdrücke
3. Operatoren und Ausdrücke Ausdruck (expression) Verarbeitungsvorschrift zur Ermittlung eines Wertes besteht aus Operanden und Operatoren wichtigste Ausdrücke: arithmetische und logische (boole'sche)
3. Operatoren und Ausdrücke
3. Operatoren und Ausdrücke Ausdruck (expression) Verarbeitungsvorschrift zur Ermittlung eines Wertes besteht aus Operanden und Operatoren wichtigste Ausdrücke: arithmetische und logische (boole'sche)
Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen
Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen } } Beispiele für Anweisungen Wiederholung Ausgabe
2.1 Fundamentale Typen
2. Elementare Typen 2.1 Fundamentale Typen C++ stellt die wichtigsten Datentypen mit passender Form der Abspeicherung und zugehörigen Rechenoperationen zur Verfügung : Boolscher Datentyp (bool) für logische
Informatik Vorkurs - Vorlesung 2
Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Was sind Operatoren Ein Operator ist eine in die Programmiersprache eingebaute Funktion, die
Grundlagen der Informatik 2. Operatoren
2. Operatoren Referenzen Typumwandlungen Vorrangregeln Kommentare Grundlagen der Informatik (Alex Rempel) 1 Ausdruck (z.b. "x = 34 + y;") Folge von Operatoren und Operanden Operatoren Arithmetische Operatoren
Algorithmen & Programmierung. Ausdrücke & Operatoren (1)
Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck
2.5 Primitive Datentypen
2.5 Primitive Datentypen Wir unterscheiden 5 primitive Datentypen: ganze Zahlen -2, -1, -0, -1, -2,... reelle Zahlen 0.3, 0.3333..., π, 2.7 10 4 Zeichen a, b, c,... Zeichenreihen "Hello World", "TIFI",
4.2 Programmiersprache C
4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.
Java I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
Hello World! Eine Einführung in das Programmieren Variablen
Hello World! Eine Einführung in das Programmieren Variablen Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Wie werden Daten in Programmen gespeichert und manipuliert?
3. Operatoren und Ausdrücke
3. Operatoren und Ausdrücke Ausdruck (expression): Verarbeitungsvorschrift zur Ermittlung eines Wertes besteht aus Operanden und Operatoren wichtigste Ausdrücke: arithmetische und logische (Boole'sche)
Kapitel 3. Grunddatentypen, Ausdrücke und Variable
Kapitel 3 Grunddatentypen, Ausdrücke und Variable Grunddatentypen, Ausdrücke und Variable 1 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei
Übersicht. Peter Sobe 1
Übersicht Lehrinhalt: Programmierung in C Überblick über Programmiersprachen C: Eingebaute Datentypen, Zahlendarstellung, Variablen, Konstanten Operatoren und Ausdrücke Anweisungen Kontrollstrukturen Funktionen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable
1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem
3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15
Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen
Einführung in die Programmiersprache C
Einführung in die Programmiersprache C 1 Einführung Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Inhalte der Veranstaltung 1 Einführung das Maschinenmodell
Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme
Grundlagen der Programmierung Prof. H. Mössenböck 2. Einfache Programme Grundsymbole Namen bezeichnen Variablen, Typen,... in einem Programm - bestehen aus Buchstaben, Ziffern und "_" - beginnen mit Buchstaben
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
5.3 Auswertung von Ausdrücken
5.3 Auswertung von Ausdrücken Funktionen in Java bekommen Parameter/Argumente als Input, und liefern als Output den Wert eines vorbestimmten Typs. Zum Beispiel könnte man eine Funktion i n t min ( i n
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
Vorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
Programmiertechnik 1. Unit 6: Programmiersprache C integrale Datentypen
Programmiertechnik 1 Unit 6: Programmiersprache C integrale Datentypen 1 Ablauf Datentypen Operatoren Ausdrücke Typkonvertierungen Vorrangregeln 2 Datenstruktur Kombination aus Datentyp und Operationen
7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});
S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
Einführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf
PIC16 Programmierung in HITECH-C
PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden
Grundlagen der Modellierung und Programmierung, Übung
Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak
Teil II. Literatur zur C-Programmierung:
Teil II 2Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan, Ritchie. The C Programming Language.
3. Java - Sprachkonstrukte I
84 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Namen und Bezeichner 85 Ein Programm (also Klasse)
Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke
Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke 1 Links Stellenwertsysteme mit Links zu Zahlensysteme: http://de.wikipedia.org/wiki/stellenwertsystem ASCII-Code: http://de.wikipedia.org/wiki/ascii
4.2 Basisdatentypen und einfache Anweisungen
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern
4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen
. Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit
Repetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case
Vorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
Ausdrücke (1) Grundlegende Eigenschaften
Ausdrücke () Grundlegende Eigenschaften bestehen aus Literalen, Konstanten, Variablen und Operatoren einfachster Ausdruck ist das Semikolon, es bewirkt nichts. Ausdrücke werden mit einem Semikolon abgeschlossen.
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme
Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung
Einstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten
Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten
Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R. Spurk (Informatik)
Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe
Informatik Vorlesung 03b Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe 12. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik
Kapitel 4: Elementare Konzepte von Programmiersprachen. Variablen Referenzen Zuweisungen
Variablen Referenzen Zuweisungen Variablen Variablen dienen der Speicherung von Werten Name (name) bezeichnet die Variable im Programm Wert (value) ist das Datenelement, dass in der Variablen gespeichert
Einführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
Ganze Zahlen, Ausdrücke Variablen/Konstanten
Ganze Zahlen, Ausdrücke Variablen/Konstanten InE1 M. Thaler, [email protected] Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Programmieren in C ganze Zahlen, Konstanten und Variablen 2 Lernziele Siekönnen
Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
Informatik. Wiederholung Felder (Arrays), string. Vorlesung
Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include
