Einführung in die Programmiersprache C
|
|
- Markus Schmitz
- vor 6 Jahren
- Abrufe
Transkript
1 Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät
2 Type qualifier Typen können mit folgenden Schlüsselwörtern qualifiziert werden: const restrict volatile 1 i n t foo ( char r e s t r i c t, 2 const char r e s t r i c t ) ; Typen mit unterschiedlichen Qualifizierern sind inkompatibel.
3 const const meint read-only, nicht konstant... Initialisierung muß bei Deklaration stattfinden: const i n t i = 5 ; nicht so: const i n t i ; i = 5 ; // Compiler F e h l e r read-only wird nicht konsequent durchgesetzt: 1 const i n t i = 5 ; 2 p r i n t f ( "%d\n ", i ) ; // 5 3 i n t j = & i ; // Warnung, k e i n F e h l e r 4 j = 1 ; // " Konstante " s e t z e n 5 p r i n t f ( "%d\n ", i ) ; // 1 bei Pointern: konstante Daten, falls links vom Stern, konstanter Pointer, falls rechts vom Stern
4 const 1 i n t foo ( const char ) ; 2 i n t foo ( char const ) ; 3 i n t foo ( char const ) ; // h i e r s i n n l o s 4 i n t foo ( const char const ) ; 5 6 const char p1 ; 7 char const p2 ; 8 char const p3 ; 9 const char const p4 ; 1 Pointer auf konstante Daten 2 Pointer auf konstante Daten 3 konstanter Pointer auf nicht konstante Daten 4 konstanter Pointer auf konstante Daten
5 restrict Mitteilung an den Compiler: auf die Daten, auf den ein restrict-pointer p zeigt, wird (in dem Scope) nur über p zugegriffen kein Aliasing von Speicherbereichen (Fortran-Semantik) Compiler kann besser optimieren restrict steht immer rechts vom Stern geht erst mit C99 (oder als Compiler-Erweiterungen, z.b. als restrict, restrict, _Restrict) Achtung Programmierer ist selbst für die Einhaltung dieser Semantik verantwortlich!
6 restrict 1 i n t foo ( char r e s t r i c t, 2 const char r e s t r i c t ) ; 3 4 char p = m a l l o c ( 4 2 ) ; 5 char q = m a l l o c ( 2 3 ) ; 6 foo ( p, p ) ; // F a l s c h! 7 foo ( p, p + 1 ) ; // F a l s c h! 8 foo ( p, q ) ; // R i c h t i g 1 void memcpy ( void r e s t r i c t s1, 2 const void r e s t r i c t s2, 3 s i z e _ t n ) ;
7 volatile Mitteilung an den Compiler: der Wert einer als volatile qualifizierten Variablen kann außerhalb der C-Implementierung gesetzt werden volatile-variablen dürfen nicht Teil von Optimierungen sein, die keine versteckten Seiteneffekte annehmen üblicherweise für direkten Zugriff auf Hardware, die ihren Speicher in den Adressraum einblendet (memory-mapped I/O) andere Anwendung: prefetching
8 Wiederholung: Type Casts Typsystem von C ist nicht strikt zwischen inkompatiblen Typen kann explizit ge cast et werden Typqualifizierer können ebenfalls weg-ge cast et werden es sind auch implizite Typwandlungen möglich 1 i n t foo ( void x, char y, const char z ) { 2 char a = x ; 3 double b = ( double ) y ; 4 char c = ( char ) z ; 5 /... / 6 } 7 8 i n t i = 1. 0 ; // i m p l i z i t 9 double d = 1 ; // d i t t o
9 Enumerations Syntax ähnlich zu struct. 1 enum { SCHWARZ, ROT, GOLD } ; 2 // oder 3 enum f a r b e n { SCHWARZ, ROT, GOLD } ; 4 enum f a r b e n foo = SCHWARZ; 5 // oder 6 typedef enum { SCHWARZ, ROT, GOLD } f a r b e n ; 7 f a r b e n foo = SCHWARZ; 8 9 i n t bar = SCHWARZ;
10 Enumerations C-Enumerations sind Integer-Typen kompatibel zu anderen Integer-Typen per default startet eine Enum mit dem Wert 0 Alternative zu #define für Integer-Konstanten 1 typedef enum { SCHWARZ, ROT, GOLD } f a r b e n ; 2 typedef enum { SCHWARZ=3, ROT=1, GOLD=0 } f a r b e n ; 3 typedef enum { SCHWARZ=3, ROT, GOLD } f a r b e n ; 4 f a r b e n foo = SCHWARZ; 5 f a r b e n foo = 3 ; // unschoen 6 7 i n t bar = SCHWARZ; 8 9 switch ( foo ) { case SCHWARZ : break ; case ROT... }
11 Unions Ähnlich wie struct, nur werden alle Komponenten an derselben Startadresse gespeichert. 1 union bar { i n t a ; double b ; char c ; } ; 2 union bar foo ; 3 // oder 4 union { i n t a ; double b ; char c ; } foo ; 5 // oder 6 typedef union { 7 i n t a ; double b ; char c ; } bar ; 8 bar foo ; 9 10 foo. a = 3 ; 11 foo. b = 2. 0 ; 12 foo. c = " H a l l o Welt! " ;
12 Unions 1 typedef enum { BRANCH, LEAF } type ; 2 3 s t r u c t node ; 4 5 typedef union { s t r u c t { 6 s t r u c t node l e f t ; 7 s t r u c t node r i g h t ; 8 } br ; 9 i n t l e a f ; 10 } c o n t e n t ; 11 typedef s t r u c t node { 12 type t ; 13 c o n t e n t c ; 14 } node ;
13 Bitfelder effiziente Speicherung einzelner Bits z.b. Flags,... Bits können per Namen angesprochen werden geht nur innerhalb von struct und union Bitorder in Bitfields ist nicht portabel 1 typedef struct { 2 unsigned i n t s i g n : 1 ; // e i n B i t 3 unsigned i n t exp : 8 ; // acht B i t 4 unsigned i n t f r a c : 2 3 ; // 2 3 B i t 5 } i e e e _ f l o a t ; // i n s g e s a m t 3 2 B i t
14 , Komma-Operator für sequentielle Ausführung 1 i n t i, j ; 2 f o r ( i = 0, j = 1 0 ; i < 10; i ++, j ) 3 p r i n t f ( "%d %d\n", i, j ) ;
15 , Vorsicht, Falle: 1 void foo ( i n t sqmat ) 2 { 3 sqmat [ 3, 4 ] = 5 ; // F a l s c h! 4 sqmat [ 3 ] [ 4 ] = 5 ; // das war gemeint... 5 } Keine Fehler beim Compilieren, nur Warnungen von gcc: 1 left-hand operand of comma expression has no effect 2 assignment makes pointer from integer without a cast Die erste Warnung kommt nur mit -Wall!
16 Übung Übung Programmiere eine Funktion, die zur Laufzeit testet, ob das Programm auf einer Big- oder Little-Endian-Architektur ausgeführt wird. 1 Implementiere den Test mit Hilfe einer union! 2 Implementiere alternativ den Test ohne Verwendung einer union! 3 Wie könnte ein Dateiformat die Verwendung einer variablen Byte-Order implementieren?
17 Integer-Typen in C99 ANSI-C 89: Größen von int, short, long, etc. sind nicht definiert, also implementierungsabhängig Üblicherweise kein Problem! Genauer Wertebereich eines Datentyps ist meist uninteressant, es reicht zu wissen: size_t reicht, um Objektgrößen zu speichern off_t reicht, um Dateigrößen zu speichern int und long sind für Ganzzahlarithmetik gut... konkrete Grenzen sind in limits.h definiert (z.b. INT_MIN, ULONG_MAX, etc.)
18 Integer-Typen in C99 Manchmal aber doch ein Problem, z.b. beim Lesen/Schreiben von binären Dateiformaten beim Lesen/Schreiben von binären Netzwerkprotokollen beim direkten Zugriff auf Hardware...
19 Integer-Typen in C99 Daher ab C99: Typen mit exakten Größen Typen in stdint.h, Format-String-Makros in inttypes.h Typ kleinster Wert größter Wert Format-String intn_t INTn_MIN INTn_MAX PRIdn/SCNdn uintn_t 0 UINTn_MAX PRIun/SCNun häufig für n {8, 16, 32, 64} definiert Andere Integer-Typen: int_leastn_t/uint_leastn_t int_fastn_t/uint_fastn_t intptr_t/uintptr_t intmax_t/uintmax_t
20 Integer-Typen in C99 1 uint64_ t read_and_sum_up ( FILE i n ) 2 { 3 uint64_ t sum = 0 ; 4 int24_ t temp1 ; 5 uint8_ t temp2 ; 6 7 while ( f s c a n f ( in, "%" SCNd24 " %" SCNu8 " \n", 8 &temp1, & temp2 ) == 2) 9 { 10 p r i n t f ( " Value f o r %" PRId24 " : % " PRIu8 " \n", 11 temp1, temp2 ) ; 12 sum += temp2 ; 13 } 14 return sum ; 15 }
21 Übung Übung Lese alle Frame-Header einer gegebenen MPEG-Audio-Datei aus und gib für jeden Header folgende Informationen aus: Layer (I, II oder III) Bitrate Abtastrate Referenz: Hints: Ein Frame-Header ist genau 32 Bit groß. Frames liegen nicht immer direkt nebeneinander, nicht jede Datei fängt direkt mit einem Frame-Header an. Die oberen 11 Bit eines gültigen Headers sind gesetzt (sync).
Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen
1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-
MehrRO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
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
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
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
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
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
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).
MehrEinheit 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)
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
MehrProgrammieren in C. Eigene Datentypen per typedef und Strukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C Eigene Datentypen per typedef und Strukturen Prof. Dr. Nikolaus Wulff C Datentypen Variablen in C sind immer von einem bestimmten Datentyp, z. B. int, float, char, etc. Zusätzlich definiert
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
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
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
MehrEinfü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
MehrDr. Monika Meiler. Inhalt
Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8
MehrU4 Grundlagen der C-Programmierung
U4 Grundlagen der C-Programmierung U4 Grundlagen der C-Programmierung Makros Enums und Typedefs Deklaration und Definition Compileroptimierungen U4-1 Makros U4-1 Makros Makros sind Textersetzungen, welche
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
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
Mehr2. Datentypen und Deklarationen
2. Datentypen und Deklarationen Programm = Datenstrukturen+Kontrollstruktur Programme verarbeiten Daten. Daten werden in C durch Datenstrukturen aus verschiedenen Datentypen beschrieben. Es gibt (wie in
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
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)
MehrVorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrDie Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
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
MehrDatenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures
Vorbesprechung U8 Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Basistypen Alignment der Basistypen auf deren Grösse Grössen (abhängig
MehrTHE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic
THE GO PROGRAMMING LANGUAGE Part 1: Michael Karnutsch & Marko Sulejic Gliederung Geschichte / Motivation Compiler Formatierung, Semikolons Variablen, eigene Typen Kontrollstrukturen Funktionen, Methoden
MehrDie 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
MehrC-PROGRAMMIERUNG - STRUKTUREN. Marcel Lebek
1 C-PROGRAMMIERUNG - STRUKTUREN Marcel Lebek EINLEITUNG Strukturen Was sind Strukturen? Syntax Verwaltung im Speicher Bitfelder Beispiel: Liste Unions Aufbau Unterschiede Wann Sinnvoll? Quellen 2/22 WAS
MehrElementare Datentypen in C++
Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der
MehrErste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
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
Mehr3. Einführung in C Programmierung Einführung in C Programmierung
Einführung in C Programmierung 3-1 Warum die Programmiersprache C lernen? C Programme sind leicht zwischen verschiedenen Systemumgebungen portierbar. C ist eine geeignete Sprache zum Aufbau einer Programmbausteinbibliothek.
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
MehrGrundlagen der Programmierung in C Basics
Was ist ein Programm? Grundlagen der Programmierung in C Basics Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Abstrakt: Zeichenfolge entsprechend einer formalen
MehrWeitere Operatoren und Datentypen. Speicherklassen. Speicherklassen: static
Weitere Operatoren und Datentypen Speicherklassen Zugriffsmodifikation Aufzähltypen Typdefinitionen mit typedef Bitoperatoren Der ternäre?: Operator Zuweisungsoperatoren Der Komma-Operator Zusammenfassung:
Mehr3. Datentypen, Ausdrücke und Operatoren
3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen
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.
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
MehrS. 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
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
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
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Organisatorisches Dozenten Gruppe: Ango (2.250),
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
MehrEffizientes Memory Debugging in C/C++
Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten
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
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
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; {
MehrPROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
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
MehrKapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
MehrZusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct
Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang
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,
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
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
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
MehrKapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik
Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 008/09 Zusammengesetzte Datentypen - Feld (array) - Verbund (struct) - Aufzählung (enum) Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrDatenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
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.
MehrJAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
MehrL6. Operatoren und Ausdrücke
L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.
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
MehrC++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer
MehrDie Kunst des schönen Kodierens
Die Kunst des schönen Kodierens von Malte Ried Version vom 8. April 2004 Inhaltsverzeichnis 1 Einführung 3 2 Allgemeines 4 2.1 Versionskontrolle........................... 4 2.2 Zeilen.................................
MehrEinleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
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
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
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrC/C++ Programmierung
1 C/C++ Programmierung Grundlagen: Einführung und Ausdrücke Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Hello,
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung Teil 3: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3.
MehrProgrammieren in C / C++ Grundlagen C 4
Programmieren in C / C++ Grundlagen C 4 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisungen Anweisung im allgemeinsten Sinn: Programmieren
MehrC-Propädeutikum Höhere Datentypen
C-Propädeutikum Höhere Datentypen Dipl.-Inf. Stefan Freitag freitag@uni-leipzig.de Universitätsrechenzentrum Universitätsbibliothek Universität Leipzig basiert auf den Originalfolien von Jörn Hoffmann
MehrAssembler - Einleitung
Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache
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
MehrProgrammieren 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
MehrKapitel 5. Datentypen und Operatoren
Kapitel 5 Datentypen und Operatoren 1 Gliederung Kapitel 5 Datentypen und Operatoren 5.1 Elementare Datentypen 5.2 Symbolische Konstanten 5.3 Typumwandlungen 5.4 Operatoren 2 5.1. Elementare Datentypen
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
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 10 Sicheres Programmieren Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Literatur Klein, Buffer Overflows und Format-String-Schwachstellen.
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
Mehrb) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};
Aufgabe 1: (15 Punkte) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort
MehrC- Kurs 04 Anweisungen
C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm
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
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
MehrProgrammierung. Grundlagen. Tina Wegener, Ralph Steyer. 2. Ausgabe, 1. Aktualisierung, April 2014
Programmierung Tina Wegener, Ralph Steyer 2. Ausgabe, 1. Aktualisierung, April 2014 Grundlagen PG 6 Programmierung - Grundlagen 6 Grundlegende Sprachelemente In diesem Kapitel erfahren Sie was Syntax und
MehrÜbungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrProgrammierkurs Java
Programmierkurs Java 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
MehrSystemnahe Programmierung in C/C++
Systemnahe Programmierung in C/C++ Peter Piehler peter.piehler@symetrion.com Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006 12 13 Peter Piehler (DBIS) C/C++
MehrSebastian Houben Intensivkurs C++ 1. Intensivkurs C++ 21. September 2015
Sebastian Houben Intensivkurs C++ 1 Intensivkurs C++ 21. September 2015 Themen Sebastian Houben Intensivkurs C++ 2 Warum C++? Ziel dieses Kurses Voraussetzungen Verwandschaft zu C, Java und anderen Sprachen
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
MehrProgrammieren - C++ Funktions-Templates
Programmieren - C++ Funktions-Templates Reiner Nitsch 8471 r.nitsch@fbi.h-da.de Was sind Templates? C++ Templates ermöglichen generische Programmierung. Das ist Programmierung unabhängig vom speziellen
Mehr3. Anweisungen und Kontrollstrukturen
3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen
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.............................
MehrJava - 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
MehrS. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"
S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert
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
Mehr4. Ablaufsteuerung (Kontrollstrukturen)
4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung 4-1 4.1 Anweisungen Ein Programm besteht
Mehr