Regeln für das. Schreiben von C Code

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Regeln für das. Schreiben von C Code"

Transkript

1 Regeln für das Schreiben von C Code Prof. Dr.-Ing. Otto Parzhuber Fachhochschule München Fachbereich Feinwerk- und Mikrotechnik Labor für Datentechnik Datei:c_coding.doc Seite 1

2 1.0 Einführung Die folgenden Kapitel befassen sich mit meist sehr einfachen Regeln, deren Einhaltung die Qualität eines Programms aber deutlich verbessern kann. Als Grundlage diente der Artikel C-Coding Standard von Jean Labrosse ( Feste Regeln oder Programmierkonventionen sollten in einem Softwareprojekt bereits in einem frühen Projektstadium eingeführt werden. Nur so ist es möglich, im ganzen Projekt Konsistenz zu erreichen und eine vernünftige Projektverwaltung zu gewährleisten. Jeder Programmierer entwickelt im Lauf der Zeit seinen eigenen Programmierstil. Ob dieser gut oder schlecht ist kann er selber überprüfen, wenn er sich die folgenden Fragen stellt. Wenn der Code portabel, konsistent, schnörkellos, einfach zu warten, verständlich, einfach ist, erfüllt er die hauptsächlichen Anforderungen an einen guten Code. 2.0 Prinzipien Der grundlegende Gedanke dieser Standards kann mit Wartbarkeit eines Codes kurz beschrieben werden. Dies bedeutet, dass Code lesbar, verständlich, testbar und portabel ist. Der gesamte Code muss im Standard ANSI C geschrieben sein. Das bedeutet, dass die Funktionsprototypen in ANSI C und deshalb auch die Typdefinitionen innerhalb der Klammern stehen müssen. Der Code muss einfach gehalten werden. Verwenden Sie nur explizite Vereinbarungen. Vermeiden Sie implizite oder unklare Eigneschaften der Sprache. Drücken Sie sich klar aus. Programmieren Sie durchgängig. Benützen Sie die gleichen Regeln so oft wie möglich. Halten Sie sich an die Standards. Wenn Sie Code schreiben müssen, für dessen Lösung kein direkter Standard existiert, versuchen Sie so nah am Standard zu bleiben wie möglich.(spirit of Standard) Vermeiden Sie komplizierte Anweisungen. Anweisungen, die viele Abfragen und Entscheidungen enthalten sind schwer zu lesen und noch schwerer zu testen. Vermeide GOTO. Spaghetticode vermeiden. Datei:c_coding.doc Seite 2

3 Aktualisieren Sie alten Code. Wenn Sie alten Code auf neuen Stand bringen, nützen Sie die Gelegenheit und wenden die hier beschriebenen Regeln an. Damit stellen Sie sicher, dass über die Zeit auch ihr alter Code den geforderten Kriterien entspricht. Die Gefahr, dass der Code irgendwann im Papierkorb verschwindet verringert sich ungemein. 3.0 Quelldateien Zeilenbreite Im komprimierten Mode können bis zu 132 Zeichen auf eine Zeile gedruckt werden, das sollte ruhig ausgenützt werden. Die Begrenzung auf 80 Zeichen war früher wegen den Monitoren notwendig, die nur 80 Zeichen darstellen konnten Benutzen des TAB Zeichens TAB characters (ASCII character 0x09) DÜRFEN NICHT benutzt werden. Das einrücken MUSS mit dem Leerzeichen (space character ASCII 0x20) erfolgen. Die Anzahl der Spalten, die mit dem TAB Zeichen eingerückt werden ist nicht gleich, sondern hängt vom verwendetem Computer oder Drucker ab. Es muss um 4 Zeichen eingerückt werden. Es werden also 4 Leerzeichen (space character) benutzt. Ausnahme sind die case-anweisungen, hier wird um 5 Zeichen eingerückt (siehe auch Kapitel ->Konstrukte). Verwenden Sie einen Dateikopf. Schreiben Sie am am Anfang jeder Datei einen Dateikopf mit Firma, Adresse, Copyright, Programmierer, Beschreibung der Datei, etc: /* * Micrium, Inc. * 949 Crestview Circle * Weston, FL * * (c) Copyright 2000, Micrium, Inc., Weston, FL * * All rights reserved. Micrium's source code is an unpublished work and the * use of a copyright notice does not imply otherwise. This source code contains * confidential, trade secret material of Micrium, Inc. Any attempt or participation * in deciphering, decoding, reverse engineering or in any way altering the source * code is strictly prohibited, unless the prior written consent of Micrium, Inc. * is obtained. * * Filename : * Programmer(s): Joe Programmer (JP) * John Doe (JD) * Created : YYYY/MM/DD * Description : */ Eine Implementierungs-Datei ist eine Datei, die ausführbaren Code enthält, im Gegensatz zu einer Header-Datei, die keinen ausführbaren Code enthält. Das Layout beider Dateitypen sollte in derselben Form gestaltet sein. Leere Abschnitte können weggelassen werden, wenn ein Abschnitt jedoch existiert, muss er in der folgenden Reihenfolge in der Datei stehen: Datei:c_coding.doc Seite 3

4 Implementation File Layout: File heading Revision history #include #define constants Macros Local data types Local variables Local tables Local function prototypes Global functions Local functions Header File Layout: File heading Revision history #define constants Global macros Global data types Global variables Externals Global function prototypes Trennen Sie Hauptabschnitte des Codes. Jedem Abschnitt des Codes sollte ein Kommentarblock wie unten gezeigt vorangestellt werden /* * DATA TYPES */ typedef unsigned char BOOLEAN; /* * PROTOTYPES */ BOOLEAN OSIsTaskRdy(void); Header-Dateien müssen vor einem versehentlichen mehrfachen Einbinden durch Prüfen der Definition einer Variablen geschützt werden. Anmerkung: Die Direktive!defined(X) sollte #ifndef X vorgezogen werden. #if!defined(module_h) #define module_h Body of the header file. #endif /* End of module_h */ Datei:c_coding.doc Seite 4

5 4.0 Kommentare Besser kein Kommentar als ein sinnloser oder falscher (Make every comment count). Code und Kommentare müssen deutlich sichtbar getrennt sein. Minimiere Kommentare, die in Anweisungen eingebettet sind! Beginne NIEMALS einen Kommentar unmittelbar über dem Code wie unten gezeigt. Der Code wird dadurch schwierig lesbar, da die Kommentare das schnelle visuelle abscannen des Codes stören.. void ClkUpdateTime (void) /* DO NOT comment like this! */ /* Update the seconds */ if (ClkSec >= CLK_MAX_SEC) ClkSec = 0; /* Update the minutes */ if (ClkMin >= CLK_MAX_MIN) ClkMin = 0; /* Update the hours */ if (ClkHour >= CLK_MAX_HOURS) Clkhour = 0; else ClkHour++; else ClkMin++; else ClkSec++; Beenden Sie einen Kommentar über mehrere Zeilen niemals nur mit einem Kommentarabschlusszeichen. NIEMALS einen Kommentar so schreiben wie in dem folgenden Beispiel: /* This type of comment can lead to confusion especially when describing a function like ClkUpdateTime (). The function looks like actual code! */ Verwenden Sie Kommentarblöcke zum abtrennen von verschiedenen Codeblöcken. Unten ist ein Kommentarblock gezeigt. Beachten Sie, dass der Kommentarblock zentriert und in GROSSBUCHSTABEN geschrieben ist. /* * VARIABLES ******************************************************************************* */ Datei:c_coding.doc Seite 5

6 Verwenden Sie so oft wie möglich Kommentare, die in derselben Zeile dem Code nachfolgen. Beginnen Sie einen Kommentar so oft wie möglich in derselben Zeile wie der Code, direkt nach dem Code. Wenn Sie den Kommentar untereinander ausrichten, erleichtern Sie die Lesbarkeit des Codes. void ClkUpdateTime (void) if (ClkSec >= CLK_MAX_SEC) /* Update the seconds */ ClkSec = 0; if (ClkMin >= CLK_MAX_MIN) /* Update the minutes */ ClkMin = 0; if (ClkHour >= CLK_MAX_HOURS) /* Update the hours */ ClkHour = 0; else ClkHour++; else ClkMin++; else ClkSec++; Verwenden Sie #if 0 und #endif für das auskommentieren von Codeblöcken. Kommentare dürfen nie geschachtelt werden. Benutzen Sie stattdessen besser die Direktiven #if 0 and #endif für das auskommentieren von größeren Teilen eines Programms. #if 0 /* Comments out the following code */ #define DISP_TBL_SIZE 5 /* Size of display buffer table */ #define DISP_MAX_X 80 /* Max. number of characters in X axis */ #define DISP_MAX_Y 25 /* Max. number of characters in Y axis */ #define DISP_MASK 0x5F #endif 5.0 Vereinbarung für Namen Generelle Vereinbarungen: #define constants: #define macros: typedefs: enum tags: All upper case characters Words separated by an underscore (i.e. `_') Examples: DISP_BUF_SIZE, MIN(), MAX(), etc. Local variables (i.e. function scope): All lower case Words separated by an underscore (i.e. `_') Use standard names (e.g. i, j, k for loop counters, p for pointers etc.) File scope variables: Prefixed with the module name followed by an underscore (i.e. `_'). Datei:c_coding.doc Seite 6

7 Names separating words start with an initial capital. Declared static. Examples: Disp_Buf[], Comm_Ch, etc. Global variables: Prefixed with the module name. Names separating words start with an initial capital. Examples: DispMapTbl[], CommErrCtr, etc. Local functions: Prefixed with the module name followed by an underscore (i.e. `_'). Names separating words start with an initial capital. Declared static. Example: static void Comm_PutChar() Global functions: Prefixed with the module name. Names separating words start with an initial capital. Example: void CommInit() Trenne verschiedene Wörter mit einem vorangestellten Großbuchstaben (e.g. DispBuf[]). Namen in einem alten Code, der nur Kleinbuchstaben besitzt, MÜSSEN mit einem underscore character getrennt werden ( '_', ASCII character 0x2D). Benutzen Sie durchgängig Akronyme, Abkürzungen und Mnemonics. Legen Sie eine Standardbibliothek für Akronyme, Abkürzungen und Mnemonics an, die von allen Programmierern benutzt werden muss. Die gezeigte Liste erhebt natürlich keinen Anspruch auf Vollständigkeit. Für das Programmieren ist diese Liste, sortiert nach Akronym, Abkürzung oder Mnemonic hilfreich. Benutzen Sie für Namen das Format 'Modul-Objekt-Operation' mit den Akronymen, Abkürzungen und Mnemonics. Halten Sie sich an die folgende Regel, wenn Sie eine globale Konstante erzeugen: Am Anfang steht der Name des Moduls, dann folgt der Name des Objekts, und schließlich der Name der Operation. OSSemPost() OSSemPend() etc. Bibliothek für Akronyme, Abkürzungen und Mnemonics (AAM) Beschreibung Akronym, Abkürzung, oder Mnemonic Argument Arg Buffer Buf Clear Clr Clock Clk Compare Cmp Configuration Cfg Context Ctx Delay Dly Device Dev Datei:c_coding.doc Seite 7

8 Disable Display Enable Error Function Hexadecimal High Task I/O System Initialize Mailbox Manager Manual Maximum Message Minimum Multiplex Operating System Overflow Parameter Pointer Previous Priority Read Ready Register Schedule Semaphore Stack Synchronize Timer Trigger Write Dis Disp En Err Fnct Hex Priority HPT IOS Init Mbox Mgr Man Max Msg Min Mux OS Ovf Param Ptr Prev Prio Rd Rdy Reg Sched Sem Stk Sync Tmr Trig Wr Benutzen Sie IMMER diese Standard Akronyme, Abkürzungen und Mnemonics. Benutzen Sie die Standard Akronyme., Abkürzungen und Mnemonics auch dann, wenn Sie das komplette Wort schreiben könnten. Zum Beispiel, benützen Sie IMMER Init anstelle von Initialize! Datei:c_coding.doc Seite 8

9 6.0 Datentypen Alle Datentypen MÜSSEN mit Großbuchstaben deklariert werden. Wörter werden mit dem underscore character abgetrennt (i.e. '_', ASCII character 0x2D). Verwenden Sie die folgenden portablen Datentypen. Alle Stanardtypen in C (ausgenommen char ) MÜSSEN vermieden werden, da ihre Größe nicht portabel ist. Deklarieren Sie stattdessen folgende Datentypen (INT?? und FP??), die vom verwendeten Prozessor und Compiler abhängen. typedef unsigned char BOOLEAN; /* Logical data type (TRUE or FALSE) */ typedef unsigned char INT8U; /* Unsigned 8 bit value */ typedef signed char INT8S; /* Signed 8 bit value */ typedef unsigned short INT16U; /* Unsigned 16 bit value */ typedef signed short INT16S; /* Signed 16 bit value */ typedef signed short INT32U; /* Unsigned 32 bit value */ typedef signed short INT32S; /* Signed 32 bit value */ typedef signed short INT64U; /* Unsigned 64 bit value (if available)*/ typedef signed short INT64S; /* Signed 64 bit value (if available)*/ typedef float FP32; /* 32 bit, single prec. floating-point */ typedef double FP64; /* 64 bit, double prec. floating-point */ Die Standardtypen Struktur und Union MÜSSEN mit typedef ersetzt werden. Alle Strukturen und Unionen MÜSSEN wie unten gezeigt mit typedef ersetzt werden. Genauso wichtig ist es, diese Datentypen ausschließlich mit GROSSBUCHSTABEN zu schreiben. Im Zusammenhang wird es offensichtlich, dass alle großgeschriebenen Buchstaben vor einer Variablen oder Funktion bedeuten: dies ist ein Datentyp und keine Konstante oder Makro.. typedef struct char RxBuf[COMM_RX_SIZE]; /* Storage of characters received */ char *RxInPtr; /* Pointer to next free loc. in buffer */ char *RxOutPtr; /* Pointer to next char. to extract */ INT16U RxCtr; /* Number of characters in Rx buffer */ char TxBuf[COMM_TX_SIZE]; /* Storage for characters to send */ char *TxInPtr; /* Pointer to next free loc. in Tx Buf */ char *TxOutPtr; /* Pointer to next char to send */ INT16U TxCtr; /* Number of characters left to send */ COMM_BUF; Ausrichten der Struktur. Die Datentypen jedes Strukturmitglieds werden um 4 Zeichen eingerückt und die Namen der Strukturmitglieder sind untereinander ausgerichtet. Achten Sie darauf, auch die Kommentare untereinander auszurichten. Gültigkeit des Datentyps. Wenn ein Datentyp nur innerhalb der Implementierungsdatei genutzt wird, MUSS dieser innerhalb der Implementierungsdatei deklariert sein. Wenn der Datentyp global ist, MUSS die Deklaration in der Headerdatei des Moduls stehen. Datei:c_coding.doc Seite 9

10 7.0 Layout Schreiben Sie nur eine Anweisung in jeder Zeile des Codes : DispSegTblIx = 0; DispDigMsk = 0x80; Anstelle von: DispSegTblIx = 0; DispDigMsk = 0x80; Trenne zusammenhängende Codeblöcke durch leere Zeilen oder Kommentare. Schreiben Sie die folgenden Operatoren OHNE Freizeichen : -> Struktur Pointer Operator p->member. Struktur Mitglied Operator s.member [] Array index a[i] Klammern nach Funktionsnamen haben kein(e) Freizeichen: DispInit(); Wenigstens ein Freizeichen wird nach jedem Komma benötigt um Funktionsargumente zu trennen: DispStr(x, y, s); Wenigstens ein Freizeichen wird nach jedem Strichpunkt benötigt: for (i = 0; i < 10; i++) Die unären Operatoren werden ohne Freizeichen zwischen Operator und Operand geschrieben:!value ~bits ++i j-- (INT32U)x *ptr &x sizeof(x) Die binären (und ternären) Operatoren werden mit mindestens einem Freizeichen zwischen Operator und Operand geschrieben: c1 = c2; x + y i += 2; n > 0? n : -n; a < b c >= 2 Datei:c_coding.doc Seite 10

11 Den Schlüsselwörter if, else, while, for, switch and return folgt ein Freizeichen. if (a > b) while (x > 0) for (i = 0; i < 10; i++) else switch (x) return (y); Das Ist-Gleichzeichen ( '='), und Zahlen sollten untereinander ausgerichtet sein, um ein flüssiges Layout zu erhalten. Achten Sie darauf, dass die LSB s von Integer und Gleitkommazahlen ausgerichtet sind. DispSegTblIx = 0; DispDigMsk = 0x80; DispScale = 1.25; Ausdrücke innerhalb Klammern werden ohne Freizeichen sowohl nach der öffnenden als auch vor der schließenden Klammer geschrieben: x = (a + b) * c; Datei:c_coding.doc Seite 11

12 8.0 Konstrukte Die folgenden Stile für die Konstrukte sollten eingehalten werden: - Einrücken um 4 Freizeichen (space character). - Keine TABs verwenden. - Immer Klammern benutzen, auch für leere Anweisungen. if (x > 0) y = 10; z = 5; if (z < LIM) x = y + z; z = 10; else x = y - z; z = -25; for (i = 0; i < MAX_ITER; i++) *p2++ = *p1++; Array[i] = 0; while (*p1) *p2++ = *p1++; cnt++; do cnt--; *p2++ = *p1++; while (cnt > 0); switch (key) case KEY_BS: if (cnt > 0) p--; cnt--; break; case KEY_CR: *p = NUL; break; case KEY_LINE_FEED: p++; break; 4 Freizeichen einrücken 1 Freizeichen nach for, if, else, while, and switch 1 Freizeichen nach dem ; = untereinander ausrichten 5 Freizeichen bei case einrücken 1 Freizeichen vor und nach Vergleichs- Operatoren Datei:c_coding.doc Seite 12

13 9.0 Funktionen Das Format einer Funktion sollte die folgende Form aufweisen Der Kommentarblock für die Beschreibung der Funktion muss immer dieselbe Form besitzen /* * DESCRIPTION: Function to update all analog inputs. * 1 Space nach dem Funktionsnamen (nur * ARGUMENTS : none in der Deklaration) ermöglicht schnelles * Der Rückgabetyp der Finden der Deklaration anstelle des * RETURNS : none Funktion muss immer Aufrufs und der * angegeben werden. Funktionsimplementierung * NOTES : none */ static void AI_Update (void) INT8U i; AIO *paio; Lokale Funktion besitzt underscore nach dem Modulnamen 2 Space zwischen lokalen Variablen und Code Deklaration und Initialisierung von lokalen Variablen müssen getrennt sein. Also nicht gleichzeitig deklarieren und initialisieren paio = &AITbl[0]; /* Point at first analog input channel */ for (i = 0; i < AIO_MAX_AI; i++) /* Process all analog input channels */ if (paio->aiobypassen == FALSE) /* See if analog input channel is bypassed */ paio->aiopassctr--; /* Decrement pass counter */ if (paio->aiopassctr == 0) ausgerichtet /* When pass counter reaches 0, read and scale AI */ paio->aiopassctr = paio->aiopasscnts; /* Reload pass counter */ paio->aioraw = AIRd(i); /* Read ADC for this channel */ paio->aioscalein = ((FP32)paio->AIORaw + paio->aiooffset) * paio->aiogain; if ((void *)paio->aioscalefnct!= (void *)0) /* See if scaling function defined */ (*paio->aioscalefnct)(paio); /* Yes, execute function */ else paio->aioscaleout = paio->aioscalein; /*No,just cpy data */ paio->aioeu = paio->aioscaleout; /* Out of scal. fnct to E.U. */ paio++; /* Point at next AI channel */ Lange Ausdrücke umbrechen nach 120 Zeichen. Das Multiplikationszeichen ist mit dem = bündig Kommentare sollen nach dem Code beginnen und an Spalte 120 enden Datei:c_coding.doc Seite 13

14 Literatur An Embedded Software Primer David E. Simon Addison Wesley C-Coding Standard Jean J. Labrosse µc/os-ii, The Real-Time Kernel Jean J. Labrosse R&D Technical Books, 1998 ISBN Embedded Systems Building Blocks Jean J. Labrosse R&D Technical Books, 2000 ISBN Datei:c_coding.doc Seite 14

Embedded Systems C Coding Standards. C Coding Standard. Erwin Brändle, Rudolf Brunner,

Embedded Systems C Coding Standards. C Coding Standard. Erwin Brändle, Rudolf Brunner, Embedded Systems C Coding Standard Erwin Brändle, erwin.braendle@hsr.ch Rudolf Brunner, rudolf.brunner@hsr.ch www.hsr.ch 1/9 1. Einführung Konventionen sollten in einem Projekt früh festgelegt werden.

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

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

Mehr

Die Programmiersprache C99: Zusammenfassung

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

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

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

Mehr

11: Echtzeitbetriebssystem ucos-ii

11: Echtzeitbetriebssystem ucos-ii 11: Echtzeitbetriebssystem ucos-ii Sie lernen anhand aufeinander aufbauender Übungen, welche Möglichkeiten ein Echtzeitbetriebssystem wie das ucosii bietet und wie sich damit MC-Applikationen realisieren

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. Allgemein Ein Einzug sollte aus 4 Leerzeichen bestehen.

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

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

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008 I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium

Mehr

Moderne C-Programmierung

Moderne C-Programmierung Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete

Mehr

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

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

Mehr

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Einführung in C. EDV1-04C-Einführung 1

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

Mehr

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

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

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

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

Mehr

Die Kunst des schönen Kodierens

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

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

Microcontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1

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

Mehr

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

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

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

Modellierung und Programmierung 1

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

Mehr

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Eine Einführung in C-Funktionen

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

Mehr

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

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

4.2 Programmiersprache C

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.

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Übung zur Vorlesung Programmieren in C

Übung zur Vorlesung Programmieren in C Übung zur Vorlesung Programmieren in C 6 Pointers Marvin Gülker Ruhruniversität Bochum Wintersemester 2015/2016 Marvin Gülker (Ruhruniversität Bochum) 6 Pointers Wintersemester 2015/2016 1 / 29 Gliederung

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

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

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

Mehr

Einführung Programmierpraktikum C Michael Zwick

Einführung Programmierpraktikum C Michael Zwick Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik

Mehr

Tutorium Rechnerorganisation

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Unterlagen. CPP-Uebungen-08/

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

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden

Mehr

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene

Mehr

1 Vom Problem zum Programm

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

Mehr

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

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

Die Programmiersprache C

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

Mehr

RO-Tutorien 15 und 16

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

Mehr

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

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

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Programmierpraktikum Java Entdecken Merkblatt 2

Programmierpraktikum Java Entdecken Merkblatt 2 Technische Universität München Fakultät für Informatik Prof. Dr. Helmut Seidl Michael Petter Melanie Dietz Raphael Geissler Programmierpraktikum Java Entdecken Merkblatt 2 SS 2005 1 Einleitung 1.1 Was

Mehr

RO-Tutorien 17 und 18

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

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

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

Mehr

RO-Tutorien 3 / 6 / 12

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

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

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

Mehr

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

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B. C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von

Mehr

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

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

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

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 2: Prof. Dr. Unser erstes C-Programm int main (int argc, char *argv[]) int i; int sum = 0; for (i = 0; i

Mehr

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

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

Mehr

Kontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else

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

Mehr

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

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-

Mehr

Objective-C CheatSheet

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

Mehr

4 Formelsammlung C/C++

4 Formelsammlung C/C++ 4 Formelsammlung C/C++ 4.1 Datentypen Datentyp stdint.h type Bits Sign Wertebereich (unsigned) char uint8_t 8 Unsigned 0.. 255 signed char int8_t 8 Signed -128.. 127 unsigned short uint16_t 16 Unsigned

Mehr

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

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

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren 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

Mehr

Elementare Datentypen in C++

Elementare 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

Mehr

Programmierung mit C Zeiger

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

Mehr

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

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

Mehr

Objektorientierte Programmierung

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

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

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

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

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

Mehr

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München MANUEL KALLWEIT & FABIAN KINDERMANN Literaturempfehlung: Vorlesungsskript von Heidrun Kolinsky zu FORTRAN 90/95: http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html Schmitt, Günter (1996):

Mehr

10.6 Programmier-Exits für Workitems

10.6 Programmier-Exits für Workitems 10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene

Mehr

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen

Mehr

Übersicht Programmablaufsteuerung

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

Mehr

Workshop: ASURO-Programmieren in C

Workshop: ASURO-Programmieren in C Workshop: ASURO-Programmieren in C / Teil 1: Theorie Workshop: ASURO-Programmieren in C Teil 1: Theorie Markus Becker http://mbecker-tech.de Bürgernetz Ingolstadt e. V. / ByteWerk Stand: 1. Mai 2010 Copyright:

Mehr

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

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

Mehr

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

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

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

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

Mehr

SE2-6. Übung Johannes Bürdek

SE2-6. Übung Johannes Bürdek SE2-6. Übung 11.12.2014 Johannes Bürdek johannes.buerdek@es.tu-darmstadt.de Fragen und Support: se2@es.tu-darmstadt.de oder ins Forum: https://moodle.tu-darmstadt.de/mod/forum/view.php?id=56674 ES Real-Time

Mehr

Grundlagen der Informatik 2. Typen

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

Mehr

Vorkurs C++ Programmierung

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

Mehr

Die Entwicklungsumgebung. Labor Technische Informatik. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber

Die Entwicklungsumgebung. Labor Technische Informatik. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber Die Entwicklungsumgebung Labor Technische Informatik Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber 19.04.2011 Inhalt 1 Das Keil MCB1700 Board...2 2 Keil ARM MDK Toolchain...3 2.1 Projekterstellung...3

Mehr

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 16. Mai 2009 Inhaltsverzeichnis

Mehr

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

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

Mehr

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

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

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

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

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

Programmierkurs C++ Variablen und Datentypen

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

Mehr

VisualBasic - Variablen

VisualBasic - Variablen Typisch für alle Basic-Dialekte ist die Eigenschaft, dass Variablen eigentlich nicht deklariert werden müssen. Sobald Sie einen Bezeichner schreiben, der bisher nicht bekannt war, wird er automatisch angelegt

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Funktionale Programmierung Übung 01. Dozent: mein Dozent Tutor: mein Tutor Studenten: person1 und person2 tt. mm. jjjj

Funktionale Programmierung Übung 01. Dozent: mein Dozent Tutor: mein Tutor Studenten: person1 und person2 tt. mm. jjjj Funktionale Programmierung Übung 01 Dozent: mein Dozent Tutor: mein Tutor Studenten: person1 und person tt. mm. jjjj 1 Inhaltsverzeichnis 1 Text schreiben 3 Tabulatoren 3.1 Tabulatoren zur Textstrukturierung....................

Mehr

Numerische Datentypen. Simon Weidmann

Numerische Datentypen. Simon Weidmann Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

Mehr

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist

Mehr

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt

Mehr

Übersicht. C Funktionen. Funktion main. Funktionen. Funktionsdefinition und und Funktionsaufruf Deklaration von Funktionen

Ü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

Mehr