Regeln für das. Schreiben von C Code

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

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

1 Vom Problem zum Programm

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

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : 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

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

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

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

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

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

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

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

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

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

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

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

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

Mehr

Zählen von Objekten einer bestimmten Klasse

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

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

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

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

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

Ü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

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

Mehr

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

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

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

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Datentypen: Enum, Array, Struct, Union

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

Mehr

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

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

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

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

I.1 Die Parrot Assemblersprache

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

Mehr

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

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

Mehr

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

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

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

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

Mehr

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

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

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

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

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

Mehr

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

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

Einführung in die Programmierung

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

Mehr

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

Installation OMNIKEY 3121 USB

Installation OMNIKEY 3121 USB Installation OMNIKEY 3121 USB Vorbereitungen Installation PC/SC Treiber CT-API Treiber Einstellungen in Starke Praxis Testen des Kartenlesegeräts Vorbereitungen Bevor Sie Änderungen am System vornehmen,

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

C++ Tutorial: Timer 1

C++ Tutorial: Timer 1 C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und

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

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Prof. Dr. Ulrich Breitschuh Hochschule Anhalt(FH) Fachbereich Informatik Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Hinweis: Die Aufgaben 3, 6 und 8 sind testatpichtige Aufgaben.

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

LEA-Comm. Bedienungsanleitung Softwareschnittstelle Easy800 und MFD

LEA-Comm. Bedienungsanleitung Softwareschnittstelle Easy800 und MFD LEA-Comm Bedienungsanleitung Softwareschnittstelle Easy800 und MFD Version: 1.0 Stand: Juni 2003 Autor: L. Ochs / E. Burger Firma: Motron Steuersysteme GmbH (C) Alle Rechte vorbehalten MOTRON Steuersysteme

Mehr

Grundlagen von Python

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

Mehr

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Hinweise zur Übung Benötigter Vorlesungsstoff Ab diesem Übungskomplex wird die Kenntnis und praktische Beherrschung der Konzepte

Mehr

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

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

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Informationen zu den regionalen Startseiten

Informationen zu den regionalen Startseiten Informationen zu den regionalen Startseiten Inhaltsverzeichnis Informationen zu den regionalen Startseiten 1 1. Grundlegende Regeln 2 1.1. Was wird angezeigt? 2 1.2. Generelle Anzeigeregeln 2 2. Anpassbare

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

Mehr

Text Formatierung in Excel

Text Formatierung in Excel Text Formatierung in Excel Das Aussehen des Textes einer oder mehrerer Zellen kann in Excel über verschiedene Knöpfe beeinflusst werden. Dazu zuerst die betroffenen Zelle(n) anwählen und danach den entsprechenden

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

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

ubasic Port für STM32F4 von Uwe Becker

ubasic Port für STM32F4 von Uwe Becker ubasic Port für STM32F4 von Uwe Becker Das original ubasic von Adam Dunkels findet sich unter : http://dunkels.com/adam/ubasic/ Die Minimal -Version vom ubasic-port für den STM32F4 beinhaltet folgendes

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

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

Leichte-Sprache-Bilder

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

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

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

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

Mehr

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

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,

Mehr

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70 Thermoguard Thermoguard CIM Custom Integration Module Version 2.70 Inhalt - Einleitung... 3 - Voraussetzungen... 3 - Aktivierung und Funktion der Schnittstelle... 3 - Parameter... 4 - NLS-Einfluss... 4

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

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Informatik Grundlagen, WS04, Seminar 13

Informatik Grundlagen, WS04, Seminar 13 Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt

Mehr

S7-Hantierungsbausteine für R355, R6000 und R2700

S7-Hantierungsbausteine für R355, R6000 und R2700 S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

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

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

Mehr

Bilder und Dokumente in MediaWiki

Bilder und Dokumente in MediaWiki Dieses Handout soll erklären, wie Sie Dokumente hochladen können. Der Begriff Dokumente bezieht sich hier auf Word-Dokumente (*.doc), Acrobat-Dokumente (*.pdf), Excel-Tabellen (*.xls), Audiodateien (*.mp3),

Mehr

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

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

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

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

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Methodische Grundlagen des Software Engineering - Übung 9

Methodische Grundlagen des Software Engineering - Übung 9 Engineering - Übung 9 9 Prozess und Softwarequalität Abgabe der Hausaufgaben am Anfang der jeweiligen Präsenzübung am 14.06.2011 bzw. 15.06.2011. Hinweise und Kontakt: Veranstaltungsseite 1 9.1 Grundlagen

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

Ü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

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

GSM Scanner Bedienungsanleitung

GSM Scanner Bedienungsanleitung GSM Scanner Bedienungsanleitung Inhaltsverzeichnis 1. Funktion der Tasten... 3 2. Erste Schritte... 4 2.1. Einschalten -----------------------------------------------------------------------------------

Mehr

Modul CTO Barcode für Windows Seite 1

Modul CTO Barcode für Windows Seite 1 Modul CTO Barcode für Windows Seite 1 1 Barcode Modul 1.1 Vorwort Das Modul Barcode dient zum Ausdrucken von Barcodes auf Etiketten, Listen und Formularen auf grafikfähigen Windows-Druckern. Zum Einsatz

Mehr

Erwin Grüner 09.02.2006

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

Mehr

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

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr