1. Grundlegende Programmelemente

Größe: px
Ab Seite anzeigen:

Download "1. Grundlegende Programmelemente"

Transkript

1 C und C++ (CPP) 1. Grundlegende Programmelemente Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte Wissenschaften Marc Rennhard, , CPP_Programmelemente.ppt 1 1

2 Ablauf Hello World in Java und C Sprachelemente, Kommentare, Variablen, einfache Datentypen, Literale Deklarationen, Operatoren, Ausdrücke Kontrollstrukturen Input/Output Funktionen der Standard Library Komplexe Datentypen: Aufzählungstyp, Strukturen Marc Rennhard, , CPP_Programmelemente.ppt 2 2

3 Ziele Sie erkennen, dass die grundlegende Syntax von C sehr viele Ähnlichkeiten mit der von Java aufweist Sie sehen auch, dass C gewisse Eigenheiten aufweist, welche in Java nicht zu finden sind Sie kennen und verstehen die grundlegenden Programmelemente, die in C verwendet werden (Kommentare, Variablen, einfache und komplexe Datentypen, Literale, Deklarationen, Operatoren, Ausdrücke, Kontrollstrukturen) Sie kennen die wichtigsten Input/Output Funktionen der Standard Library und können diese einsetzen Marc Rennhard, , CPP_Programmelemente.ppt 3 3

4 Hello World (1) Java: /* HelloWorld.java */ public class HelloWorld { // Hauptprogramm public static void main(string[] args) { System.out.println("Hello World in Java"); C: /* helloworld.c */ #include <stdio.h> /* Hauptprogramm */ int main(void) { printf("hello World in C\n"); Marc Rennhard, , CPP_Programmelemente.ppt 4 4

5 Übung zu Hello World Welche Unterschiede und Gemeinsamkeiten erkennen Sie zwischen den Hello World Programmen in Java und C? Ähnlichkeiten: Funktion/Methode main als Einstiegspunkt Ausgabe des Strings mit "Hello World" Geschweifte Klammern (Blöcke), Abschluss eines Befehls mit Semikolon (;) Einrücken des Codes Unterschiede: #include <stdio.h> in C Klasse in Java Kommentar mit // in Java und /* */ in C Parameterliste von main in Java mit Argument args[ ] und in C mit void Rückgabewert von main in Java void und in C int Ausgabe in Java mit System.out.println und mit printf in C \n in printf bei C Marc Rennhard, , CPP_Programmelemente.ppt 5 5

6 Überblick über C C ist eine prozedurale Programmiersprache ( objektorientiert) Keine Klassen Funktionen statt Methoden Ein C Programm besteht im Wesentlichen aus Funktionen Jedes C-Programm hat eine main-funktion Einstiegspunkt ins Programm Es kann beliebig in weitere Funktionen verzweigt werden Wird die main-funktion verlassen, so terminiert das Programm Ein C-Programm soll die Endung.c haben (Java:.java) Mit einem C-Compiler (zb gcc) wird ein ausführbares Programm erzeugt ( o spezifiziert den Namen des Programms, default a.out / a.exe) $> gcc o helloworld helloworld.c Dieses Programm kann direkt (ohne virtual machine) gestartet werden $> helloworld Marc Rennhard, , CPP_Programmelemente.ppt 6 Der Java-Compiler (javac) generiert.class-files. Diese sind nicht direkt, sondern nur via die Java Virtual Machine (JVM) mit dem Befehl java ausführbar. Dafür sind die class-files portable, sofern eine JVM vorhanden ist. Ein C-Programm muss für jedes System neu kompiliert werden, und manchmal müssen sogar Teile des Source-Codes angepasst werden. Das mit gcc kompilierte C-Programm erhält nicht den Manen des Quellcodedatei (hier: helloworld.c). Mit der o Option kann der Name angegeben werden, den das ausführbare Programm erhalten muss. Geben Sie nichts an, so erhält das ausführbare Programm je nach Plattform per Default den Namen a.out oder a.exe. 6

7 Sprachelemente C Programme bestehen aus Schlüsselwörtern, Namen, Konstanten, Strings, Operatoren und anderen Trenn- und Sonderzeichen Trennzeichen sind Space, Tab und Zeilenende Ein C-Programm darf die folgenden Zeichen beinhalten Klein-und Großbuchstaben: a-z, A-Z Ziffern: 0-9 Sonderzeichen: + - * / \ =,. ;? " # % & _ ' < > ( ) [ ] { ^ : Schlüsselwörter: auto break case char continue const default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void while volatile Marc Rennhard, , CPP_Programmelemente.ppt 7 Schlüsselwörter sind reserviert und dürfen nicht als Namen für zb Variablen verwendet werden. 7

8 Kommentare, Variablen- und Funktionsnamen Kommentare können wie folgt in den Code eingefügt werden: /* Dieser Kommentar kann sich über mehrere Zeilen erstrecken */ /* Natürlich kann er auch nur eine Zeile lang sein */ // Dieser Kommentar existiert in Java und in C++, nicht aber in C // Die Begrenzung erfolgt hier durch das Zeilenende Variablen- und Funktionsnamen haben folgende Restriktionen: Enthalten Zahlen 0 9; Buchstaben a z und A Z, und das Zeichen _ Gross-/Kleinschreibung wird beachtet; d.h. Hallo und hallo ist nicht dasselbe Das erste Zeichen muss ein Buchstabe oder _ sein Darf keines der durch die Sprache reservierten Wörter sein (int, while, return etc.) Beispiele: i, count, MAX_LENGTH, maxvalue,getmax(...) Marc Rennhard, , CPP_Programmelemente.ppt 8 Konvention: Einfache Variablennamen sollen prinzipiell aus Kleinbuchstaben bestehen (i, count, limit...). Für zusammengesetzte Namen verwendet man _ (max_value) oder einzelne Grossbuchstaben (maxvalue). 8

9 Einfache (primitive) Datentypen C kennt nur 4 elementare Datentypen: char 1 byte -128 bis 127 int 4 bytes bis float 4 bytes bis double 8 bytes bis Zusätzlich gibt es Qualifier (Attribute): unsigned char 1 byte 0 bis 255 unsigned int 4 bytes 0 bis short [int] 2 bytes bis unsigned short [int] 2 bytes 0 bis long [int] 8 bytes bis unsigned long [int] 8 bytes 0 bis long double 12 bytes bis Die Wertebereiche sind hardwareabhängig, die obigen Werte sind typisch für eine heute übliche 32-Bit Architektur Marc Rennhard, , CPP_Programmelemente.ppt 9 Je nach unterliegender Hardware werden verschiedene Anzahl Bytes für ein int verwendet. Die oben angegeben Grössen bezeichnen die heute auf 32-Bit Rechnerarchitekturen typischen Grössen für die Datentypen. Auf solchen Rechnern wird ein int also meist durch 4 Bytes dargestellt, ein short ist meist 2 Bytes und ein long meist 8 Bytes. Die einzige Bedingung, welche C macht, ist dass ein short sicher nicht länger als ein int und ein long sicher nicht kürzer als ein int sein darf. In Java ist ein int immer 4 Bytes, ein short immer 2 Bytes und ein long immer 8 Bytes. Die C Standard Library bietet die Möglichkeit, die Grösse eines bestimmten Datentyps auf dem gegebenen System zu erhalten (via Headerdateien float.h und limits.h). Unsigned bedeutet nur positive Zahlen (beginnend mit 0). Default ist immer nicht unsigned. In Java ist immer alles implizit signed. Im Zusammenhang mit short und long kann das int weggelassen werden, d.h. short int short, long int long etc. Allgemeine Regel in C: Aus Präzisionsgründen immer mit double statt float arbeiten. 9

10 Literale (1) Literale sind im Code eingefügte, unveränderliche Werte Ganze Zahlen (short, int, long) Zahlen, die mit 1 9 beginnen, werden dezimal interpretiert; zb 3987 Zahlen, die mit 0 (Zahl Null) beginnen, werden oktal interpretiert: zb 037 Zahlen, die mit 0X oder 0x beginnen, werden hexadezimal interpretiert; zb 0x23 Per Default wird eine Dezimalzahl als int interpretiert, eine oktale/hexadezimale Zahl als unsigned int Ist die Zahl für einen int zu gross, wird sie als long interpretiert Soll eine Zahl explizit als long interpretiert werden, so wird l oder L angehängt: 35000l (oder 35000L) l 0x8868l Marc Rennhard, , CPP_Programmelemente.ppt 10 Die explizite Angabe von L oder l bei einer ganzen Zahl kann Sinn machen. Wenn Sie z.b. mehrere int-literale addieren und irgendwann das Zwischenresultat grösser wird als was mit einem int dargestellt werden kann, dann wird das Resultat falsch sein. Wenn Sie die Zahlen aber explizit als long definieren, dann wird diese Problem nicht auftauchen, ausser Sie überschreiten auch den Wertebereich eines long. 10

11 Literale (2) Gleitkommazahlen (float, double) Weisen einen Dezimalpunkt (zb ) oder einen Exponenten (zb 1e-2) auf Per Default vom Typ double, kann mit f oder F explizit als float bezeichnet werden f (oder F) Einzelne Zeichen (char) Werden durch ' ' eingeschlossen; zb 'A' Gespeichert wird der entsprechende ASCII-Wert (1 Byte) des Zeichens (A = 65) Spezielle Zeichen werden mit \ gebildet; zb \n (new line), \t (horizontal tab), \\ (backslash), \' (single quote), \" (double quote), \0 (NUL) Ein einzelnes Zeichen kann auch durch den ASCII-Wert (dezimal, oktal oder hexadezimal) ausgedrückt werden: 65, \101, \x41 entsprechen alle dem ASCII Zeichen mit dem Wert 65 (= A) Java: Ein char hat die Länge 2 Bytes, Unicode-Codierung Marc Rennhard, , CPP_Programmelemente.ppt 11 11

12 ASCII-Table Marc Rennhard, , CPP_Programmelemente.ppt 12 Dies sind die originalen ASCII-Zeichen (0 127); dargestellt mit 1 Byte, wobei das führende Bit immer = 0 ist. Es gibt auch Erweiterungen von (führendes Bit = 1), die zb die Umlaute beinhalten. 12

13 Literale (3), Symbolische Kostanten Strings Durch Anführungszeichen eingeschlossene Zeichenfolgen; zb "ZHAW" Es existiert kein Datentyp String; ein String wird intern als ein Array von Characters (char) repräsentiert (also die ASCII-Werte der einzelnen Zeichen) Strings werden automatisch durch das ASCII Zeichen NUL abgeschlossen "ZHAW" entspricht den fünf ASCII Zeichen 'Z' 'H' 'A' 'W' '\0' Der Speicherplatz in Bytes, den ein String benötigt, ist deshalb immer die Anzahl Zeichen + 1 Welchen numerischen Wert haben die ASCII Zeichen, mit welchen der String "ZHAW" intern abgespeichert wird? Symbolische Konstanten Machen dann Sinn, wenn die gleiche Konstante mehrfach gebraucht wird Werden mit #define am Anfang des Programms gesetzt #define MAX_LENGTH 1000 (kein ; am Ende!) Während des Kompilierens wird jedes Auftreten von MAX_LENGTH im Code mit dem entsprechenden Wert (1000) ersetzt Also: int length = MAX_LENGTH; int length = 1000; Marc Rennhard, , CPP_Programmelemente.ppt 13 Das ASCII-Zeichen NUL ist das erste ASCII-Zeichen der ASCII-Tabelle und besteht aus dem numerischen Wert 0 (Byte: ). Sämtliche Befehle, die mit einem # beginnen (also zb #define), sind Präprozessorbefehle (siehe Kapitel über Modulare Programmierung). Auch wenn dies sie Sprache nicht verlangt, ist es guter Programmierstil, mit #define definierte Konstanten mit Grossbuchstaben zu bezeichnen (zb MAX_LENGTH). 13

14 Deklarationen (1) Variablendeklaration (es gibt in C/C++ keine Default-Werte bei der Initialisierung, ausser bei statischen Variablen!) double hoehe; int laenge, breite; double r, radius = 15.0; Konstantendeklaration const double pi = ; Der Wert von pi kann einmal initialisiert, dann aber nicht mehr verändert werden Typdeklaration typedef int Index; Erlaubt die Definition von neuen Namen für Datentypen; hier ist zb Index ein anderer Name (Synonym) für int, deshalb sind die folgenden Variablendeklarationen äquivalent: int i; Index i; Marc Rennhard, , CPP_Programmelemente.ppt 14 Im Gegensatz zu Java erhält eine Variable bei der Initialisierung keinen Default-Wert. Die Ausnahme sind statische Variablen, siehe dazu das nachfolgende Kapitel. hoehe, laenge und bretet im Beispiel oben erhalten bei der Deklaration diejenigen Werte, die gerade in den entsprechenden Speicherzellen, die alloziert werden, stehen. Will man bewusst einen initialen Wert 0 (wie bei Java), so muss man dies selbst tun mit double hoehe = 0. Konvention: Mit typedef definierte Typen haben einen Grossbuchstaben am Anfang (zb Index). Unterschied const und #define: Mit const wird eine richtige Variable alloziert, die einfach nicht mehr verändert werden kann. Entsprechend stehen auch alle Typen (auch benutzerdefinierte Typen, z.b. Strukturen in C oder Klassen in C++) zur Verfügung und der Compiler kann ein sauberes Type-Checking durchführen. Ausserdem gelten die Sichtbarkeitsregeln wie bei normalen Variablen (siehe späteres Kapitel); eine mit #define generierte Konstante ist immer überall sichtbar. Der programmiertechnisch saubere Ansatz ist deshalb der, für Konstanten nach Möglichkeit den obigen Ansatz mit const zu verwenden (insbesondere wenn die Konstante nur innerhalb z.b. einer Funktion vorhanden sein sollten). Dennoch sieht man häufig auch den Ansatz mit #define, insbesondere wenn die Konstante in mehreren Funktionen gebraucht wird. 14

15 Deklarationen (2) Variablen werden meist innerhalb von Funktionen deklariert Ausnahme: globale Variablen Beispiel: Funktion, die km/h und zugehörige m/s-werte auf dem Bildschirm ausgibt: void kmhtoms(void) { int kmh; /* int-variable */ double ms; /* double-variable */ const double ratio = 3.6; /* Konstantes Verhaeltnis */ for (kmh = 0; kmh <= 300; kmh = kmh + 20) { ms = kmh / ratio; printf("%d -> %f\n", kmh, ms); Marc Rennhard, , CPP_Programmelemente.ppt 15 15

16 Operatoren Bis auf wenige Ausnahmen (>>> Operator in Java, Pointeroperatoren in C) gleich wie in Java Arithmetische Operatoren: + - * / % (modulo) Relationale Operatoren: > >= < <= Logische Operatoren: && Gleichheitsoperatoren: ==!= Negationsoperator:! Increment / Decrementoperator: Bitoperatoren: & (AND) (OR) ^ (XOR) << (bit shift left) >> (bit shift right) ~ (Einerkomplement) Zuweisung: = += -= *= /= %= &= ^= = <<= >>= Conditional Expression:? : Referenzoperator, Dereferenzoperator: & * Marc Rennhard, , CPP_Programmelemente.ppt 16 Sind die beiden Operanden bei der Division ( / ) int-werte, so wird das Resultat auf einen ganzzahligen Wert abgerundet. Hier wird konsequent abgerundet, 5/3 (= 1.667) wird also zb zu 1. In Java bedeutet der >>> Operator einen Bit-Shift nach rechts, wobei links eine 0 eingefüllt wird. Der normale Bit-Shift right Operator füllt links entweder eine 0 oder eine 1 ein, und zwar immer so, dass das Vorzeichen der Zahl nach dem Shift das gleiche wie vor dem Bit-Shift ist. 16

17 Order Precedence and Associativity Symbol Type of Operation Associativity () []. > Expression Left to right! ~ * & (type) sizeof Unary Right to left * / % Multiplicative Left to right + Additive Left to right << >> Bitwise shift Left to right < <= > >= Relational Left to right ==!= Equality Left to right & Bitwise-AND Left to right ^ Bitwise-exclusive-OR Left to right Bitwise-inclusive-OR Left to right && Logical-AND Left to right Logical-OR Left to right? : Conditional-expression Right to left = += -= *= /= %= &= ^= = <<= >>= Simple and compound ass. Right to left, Sequential evaluation Left to right Marc Rennhard, , CPP_Programmelemente.ppt 17 Die Tabelle stammt aus B. Kernigham, D. Ritchie, The C Programming Language. Prentice Hall, 1988, 2nd Edition. Left to right bedeutet, der Ausdruck wird von links nach rechts ausgewertet (zuerst die linke Seite, dann die rechte Seite), zb 5 3 bedeutet 5 (left) minus 3 (right). Right to left ist das Umgekehrte, zb a = 7 bedeutet 7 (right) wird a (left) zugewiesen. Klarer wird das in einem zusammengehängten Ausdruck, zb a = 5 3: = ist right to left, also wird zuerst 5 3 ausgewertet und das Resultat erst dann a zugewiesen. Oft ist es einfacher, mit Klammern ( ) Klarheit zu verschaffen, auch wenn dies nicht nötig ist. Die wenigsten Programmierer haben die Tabelle oben genau im Kopf... 17

18 Ausdrücke Ein Ausdruck ist die Verbindung von Operanden mit Operatoren: 1 + 3, u = 7 * r etc. Ausdrücke müssen nicht zugewiesen werden (u * v); ist eine legale Anweisung, die nichts bewirkt In Ausdrücken werden alle numerischen Typen implizit in den grössten Typ gewandelt 3/2 int / int grösster Typ = int bleibt bei int / int (ganzzahlige Division, Rest wird gestrichen) Resultat = 1 (Typ int) 3.0/2 double / int grösster Typ = double wird zu double / double Resultat = 1.5 (Typ double) Der Zuweisungsoperator (=) bewirkt, dass der rechte Ausdruck in den Typ der links stehenden Variablen gewandelt wird double r; r = 3/2; /* ergibt r = 1.0 */ int i; i = ; /* ergibt i = 3 */ int i; i = ; /* ergibt i = 5 */ Keine Warnungen wie loss of precision wie in Java (gilt generell)! Marc Rennhard, , CPP_Programmelemente.ppt 18 Werden int und double im gleichen Ausdruck verwendet, muss man immer aufpassen, dass keine Rechenfehler passieren. Das Beispiel oben double r; r = 3/2; ergibt als Resultat 1.0, weil durch die höhere Presedence des Divisionsoperators zuerst der Ausdruck 3/2 ausgewertet wird (= 1) und erst dann das Resultat der Variablen r zugewiesen wird. Es spielt keine Rolle, ob r ein int oder ein double ist, denn die Präzision ist bei der Division 3/2 unwiderrufbar verloren gegangen. Um das korrekte Resultat zu erhalten, muss man also r = 3.0/2; schreiben (oder auch 3/2.0 oder 3.0/2.0), womit die Division als Division zweier double-typen behandelt wird. 18

19 Übung zu Ausdrücken Geben Sie jeweils die Werte der Variablen nach der Ausführung der einzelnen Programmzeilen an /* expression.c */ int main(void) { double x, y = 3.0; /* x =? y = 3.0 */ int i, j = 4; /* i =? j = 4 */ i = y; /* i = 5 */ x = 5 * i / 3; /* x = 8.0 */ x = 5.0 * i / 3; /* x = */ i += j; /* i = 9 */ i = ++j; /* i = 5 j = 5 */ i = j++; /* i = 5 j = 6 */ x = 3 + (y = i + 5.0); /* x = 13.0 y = 10.0 */ Marc Rennhard, , CPP_Programmelemente.ppt 19 19

20 Type Casts Ein type cast ist eine explizite Konvertierung von einem Typ in einen anderen Es gibt verschiedene Gründe, eine solche Konvertierung durchzuführen: Wandeln einer Gleitkommazahl in einen Integer Wert und umgekehrt Wandeln eines void-pointers in einen Pointer auf einen bestimmten Datentyp Wandeln eines Zeigers auf eine Instanz der Basisklasse in einen Zeiger auf eine abgeleitete Klasse (C++) Eine Art in C, zwei gleichwertige Arten in C++: var = (type) expression /* Operator, C/C++, Java */ var = type(expression) /* Funktion, nur C++ */ Beispiele: double d; int i = 5; d = i / 3; /* d = 1.0 */ double d; int i = 5; d = (double) i / 3; /* d = */ double d; int i = 5; d = double(i) / 3; /* d = (nur C++) */ Marc Rennhard, , CPP_Programmelemente.ppt 20 20

21 Kontrollstrukturen (1) Generell: wie in Java Kontrollstrukturen können verschachtelt werden Einfache Anweisung wird mit einem Semikolon (;) abgeschlossen c = a + b; printf("hello World\n"); Block Zusammenfassung von Anweisungen mittels geschweiften Klammern Variablen müssen in C (nicht aber in C++ oder Java) am Anfang eines Blocks deklariert werden! { int a = 5, b, temp; b = a; temp = b; Marc Rennhard, , CPP_Programmelemente.ppt 21 Verschachtelung von Kontrollstrukturen bedeutet, dass innerhalb einer Kontrollstruktur eine weitere aufgerufen werden kann, zum Beispiel: int i, even = 0; for (i = 0; i < 10; i++) { if (i % 2 == 0) { even++; Mit sauberem Einrücken des Codes wird die Lesbarkeit signifikant erhöht! 21

22 Kontrollstrukturen (2) If-Else / Else-If Ermöglicht Verzweigungen result = -1; if (n >= 0) { result = 1; if (n >= 0) { result = 1; else { result = -1; if (n > 0) { result = 1; else if (n == 0) { result = 0; else { result = -1; Marc Rennhard, , CPP_Programmelemente.ppt 22 Bei einzelnen Anweisungen in einem if, else if oder else können die geschweiften Klammern auch weggelassen werden. Dies gilt auch für die nachfolgenden Kontrollstrukturen. Oft ist die konsequente Verwendung von Klammern jedoch übersichtlicher. Im Zusammenhang mit if gibt es noch einen Operator, den man oft vergisst: Den Conditional Operator (? :). Damit kann man ein if-statement sehr kompakt schreiben: result = ((booleanexpression)? value1 : value2) Beispiel: int x, y, result;... If (x > y) { result = 5; else { result = 7; ist identisch zu: int x, y, result;... result = ((x > y)? 5 : 7); 22

23 Kontrollstrukturen (3) For-Schleife Ermöglicht das wiederholte Durchlaufen eines Programmabschnitts int sum = 0; int max = 5; int i; for (i = 1; i <= max; i++) { sum += i; /* oder sum = sum + i */ /* Das geht nicht in C (erst ab C99): for (int i = 1; i <= max; i++) {... */ Marc Rennhard, , CPP_Programmelemente.ppt 23 Eine for-schleife hat in der Klammer (...) drei Teile: Die Initialisierung (i = 1) wird einmal am Anfang ausgeführt. Die Bedingung (i <= max) wird vor jedem Durchlauf getestet; ist sie false, so wird die Schleife verlassen. Die Aufdatierung (i++) wird immer am Ende eines Durchlaufs ausgeführt. 23

24 Kontrollstrukturen (4) While- und Do-While-Schleifen Ermöglicht das wiederholte Durchlaufen eines Programmabschnitts int sum = 0; int max = 5; int i = 1; while (i <= max) { sum += i; i++; /* oder */ do { sum += i; i++; while (i <= max); Marc Rennhard, , CPP_Programmelemente.ppt 24 Die Do-While Schleife wird immer mindestens einmal durchlaufen, da der Test erst nach einem Durchlauf geschieht. In allen drei Schleifen kann continue; verwendet werden, um einen Schleifendurchlauf abzubrechen und direkt zum Ende der Schleife zu springen. Die Schleife wird aber nicht verlassen, sondern wenn die entsprechende Schleifenbedingung true ist - erneut durchlaufen. 24

25 Kontrollstrukturen (5) Switch-Anweisung Ermöglicht individuelles Reagieren auf verschiedene Werte einer Variable switch (n) { case 1: result = 1; break; case 2: case 3: case 4: result = 10; break; default: result = 0; break; break ist notwendig, da sonst weitere cases abgearbeitet werden! Was würde im Beispiel oben ohne alle breaks passieren? Marc Rennhard, , CPP_Programmelemente.ppt 25 break kann auch bei for, while und do-while Schleifen verwendet werden und bewirkt, dass die Schleife direkt verlassen wird. 25

26 Wo ist denn der Datentyp boolean? In C gibt es keinen Datentyp boolean! (in C++ gibt es bool) Regel: ein Ausdruck gilt als false, wenn er = 0 ist; sonst gilt er als true In beiden Beispielen wird die while-schlaufe ausgeführt, so lange x > 0 ist: int x = 10; while (x > 0) { x--; int x = 10; while (x) { x--; Der Ausdruck muss dabei kein ganzzahliges Resultat produzieren while(1){... while(1.5){... while( ){... etc. in C......entsprechen alle while(true){... in Java Marc Rennhard, , CPP_Programmelemente.ppt 26 Für eine Endlosschleife schreibt man in C üblicherweise while (1) {... 26

27 Input/Output (1) Die Sprache C enthält eine Standard Library; enthält unter anderem Input/Output Funktionen Werden mit #include <stdio.h> am Anfang eines Programms eingebunden Funktionen für einfachen Input/Output: puts("hello"); /* Ausgabe des Strings Hello auf Standard Output */ putchar('a'); /* Ausgabe des Zeichens A auf Standard Output */ c = getchar(void); /* Einlesen eines Zeichens von Standard Input */ Funktionen für formatierte Ausgabe: Generell: printf(format-string, arg1, arg2,...); printf("hello World\n"); /* Ohne weitere Argumente */ printf("the sum of %d and %d is %d\n", a, b, a+b); /* printf mit 3 Argumenten, wobei a+b innerhalb der Funktion ausgewertet wird; %d bedeutet, dass a, b und a+b als int interpretiert werden */ Die %d nennt man Konvertierungsoperatoren Marc Rennhard, , CPP_Programmelemente.ppt 27 #include in C/C++ ist vergleichbar mit import in Java. Mit #include werden generell Teile der C Standard Library eingebunden; im Fall hier die Input/Output Funktionen. Jedes laufende C Programm (auch Java oder ganz generell jedes Programm) kennt Standard Input, Standard Output und Standard Error. Per default ist Standard Input die Tastatur; Standard Output und Standard Error entspricht der Konsole auf dem Bildschirm. Beim Start eines Programms kann Standard Input/Error/Output sehr einfach umgelenkt werden. Ein Programm mit dem Namen helloworld kann seinen Standard Output zb in das File out umlenken:./helloworld > out 27

28 Input/Output (2) Konvertierungsoperatoren: %d, %i (int); %u (unsigned int) %c (char) %s (char *, Zeichen des Strings werden ausgegeben bis \0 gefunden wird) %f (double, float) Bei Zahlen können zwischen dem % und dem Konvertierungszeichen die minimale Länge m (Anzahl Zeichen) des Outputs und die Anzahl Dezimalstellen d angegeben werden: %m.df double d = ; printf("%f", d); /* Output: (default d=6) */ printf("%.3f", d); /* Output: */ printf("%10.3f", d); /* Output: */ Marc Rennhard, , CPP_Programmelemente.ppt 28 Ein falsches Konvertierungszeichen wird meist wirren Output generieren, weil dann das Programm versucht, zb ein int-wert als double zu interpretieren. 28

29 Input/Output (3) Funktion für formatierte Eingabe: Generell: scanf(format-string, arg1, arg2,...); Beispiel: Einlesen von 3 Werten in die 3 int Variablen day, month und year: scanf("%d%d%d", &day, &month, &year); Achtung: der Adressoperator & ist wichtig (siehe folgende Vorlesung über Pointer) Einlesen auf der Kommandozeile: <return> Oder auch 24<return> 12<return> 2004<return> Erst durch die Eingabe des letzten Return werden die Zeichen aus dem Eingabebuffer gelesen Man beachte: auch das letzte Return-Zeichen (\n) wird in den Buffer eingelesen und steckt nach dem Zurückkehren der scanf-funktion noch im Buffer gegebenenfalls mit einem einzelnen getchar() auslesen! Marc Rennhard, , CPP_Programmelemente.ppt 29 Wird mit scanf ein double eingelesen, muss der Konvertierungsoperator %lf (statt %f) verwendet werden. Beim Schreiben mit printf funktioniert %f auch für double. 29

30 Übung zu Formatiertem Output Komplettieren Sie das vorgegebene Programm, welches die Fläche (= pi * r 2 ) eines Kreises für r = 5, 10, 15 und 20 berechnet und ausgibt Gewünschter Output: Programm: /* outformat.c */ # include <stdio.h> Radius = 5 -> Flaeche = Radius = 10 -> Flaeche = Radius = 15 -> Flaeche = Radius = 20 -> Flaeche = int main(void) { const double pi = ; int r; for (r = 5; r <= 20; r += 5) { printf("radius = %2d -> Flaeche = %7.2f\n", r, pi * r * r); Marc Rennhard, , CPP_Programmelemente.ppt 30 30

31 Komplexe Datentypen (1) - Aufzählungstyp Der Aufzählungstyp erlaubt die Definition einer Liste von konstanten int- Werten enum wochentage {Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag; Dies weist den Tagen die Werte Montag = 0 Sonntag = 6 zu Werte können auch explizit gesetzt werden: enum frucht {Apfel = 5, Birne = 10, Zitrone = 15; enum frucht {Apfel = 5, Birne, Zitrone; /* Birne = 6, Zitrone = 7 */ enum frucht {Apfel, Birne = -1, Zitrone; /* Apfel = 0, Birne = -1, Zitrone = 0; Werte müssen nicht unterschiedlich sein! */ Die konstanten Werte in der Liste können in Ausdrücken verwendet werden enum frucht {Apfel, Birne, Zitrone; int essen = Apfel; /* essen = 0 */ essen = Birne + Zitrone; /* essen = 3 */ Seit Java 1.5 gibt es enum auch in Java Marc Rennhard, , CPP_Programmelemente.ppt 31 Der erste Wert einer Aufzählung wird per Default zu 0; die weiteren Werte zu 1, 2, 3 etc. Wird irgendeiner der Werte explizit auf n gesetzt, so werden die nachfolgenden Werte zu n+1, n+2 etc. Der Name (zb wochentage oder frucht in den Beispielen oben) für einen Aufzählungstyp nach dem enum ist optional, dennoch wird er häufig verwendet um anzuzeigen, wozu der Aufzählungstyp überhaupt verwendet wird. Zusätzlich kann dieser Name auch dafür verwendet werden, Variablen von diesem enum-typ zu deklarieren, wie auf der nächsten Folie aufgezeigt wird. 31

32 Komplexe Datentypen (2) - Aufzählungstyp Man kann auch Variablen vom Typ eines Aufzählungstyp deklarieren Bei der Zuweisung von Werten wird aber nicht erzwungen, dass der vorgegebene Wertebereich eingehalten wird enum wochentage {Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag; int main(void) { enum wochentage w1 = Mittwoch; /* w1 hat den Wert 2 */ enum wochentage w2 = 77; /* Funktioniert auch, w2 hat den Wert 77 */ Kombination mit typedef, um enum bei der Variablendeklaration nicht schreiben zu müssen: typedef enum {Montag, Dienstag,... Wochentage; int main(void) { Wochentage w1 = Mittwoch; Marc Rennhard, , CPP_Programmelemente.ppt 32 Werden Variablen vom Typ eines Datentypes deklariert (wie oben gemacht), so handelt es sich beim effektiven Datentyp dahinter immer um einen int. Sehr viel bringt diese Deklaration von Variablen mit dem enum-typ nicht, denn der Compiler prüft nicht, ob dieser Variable dann auch wirklich nur Werte aus dem Bereich der Aufzählung zugewiesen werden, und entsprechend wird dieses Feature auch nur selten verwendet. Die Kombination von typedef und enum sieht man gelegentlich auch, wenn man sich einen Datentyp bool basteln will (wenn man z.b. nicht direkt mit den numerischen Werten und deren Interpretation als true/false arbeiten will): typedef enum {false, true bool /* false = 0, true = 1 */ bool flag = true /* flag = 1 */ while (flag) {... 32

33 Komplexe Datentypen (3) - Strukturen Erlaubt die Zusammenfassung von Elementen verschiedener Typen in einen Datentyp Entspricht ~ einer Java Klasse bei welcher alle Variablen public sind und die keine Methoden enthält Zuerst muss dieser neue Datentyp deklariert werden (meist am Anfang eines Programms): struct point3d { int x; int y; int z; ; Danach können Variablen dieses Typs deklariert/initialisiert werden: struct point3d pt = {2, 4, 6; Strukturen können auch geschachtelt werden: struct line3d { struct point3d start; struct point3d end; ; Marc Rennhard, , CPP_Programmelemente.ppt 33 Während Java Klassen auf dem Heap abgelegt werden, sind Strukturen in C auf dem Stack abgelegt. Wenn ein int 4 Bytes beansprucht, so benötigt die Struktur im obigen Beispiel 3 * 4 = 12 Bytes Speicherplatz. 33

34 Komplexe Datentypen (4) - Strukturen Der Zugriff auf einzelne Elemente (members) geschieht mit "." (wie Zugriff auf Elemente einer Java Klasse) Wie alle Variablen können Variablen, die den Datentyp der gleichen Struktur aufweisen, einander zugewiesen werden /* point3d.c */ #include <stdio.h> struct point3d { /* Deklaration der Struktur */ int x, y, z; ; int main(void) { struct point3d pta = {2, 4, 6, ptb; ptb = pta; /* Kopiert die komplette Struktur */ pta.x = 5; /* Zugriff auf einzelne Elemente */ pta.y += pta.z; /* Output: A = (5,10,6), B = (2,4,6) */ printf("a = (%d,%d,%d)\n", pta.x, pta.y, pta.z); printf("b = (%d,%d,%d)\n", ptb.x, ptb.y, ptb.z); Marc Rennhard, , CPP_Programmelemente.ppt 34 Bei der Zuweisung werden Strukturen komplett kopiert. In diesem Sinne sind Strukturen anders als Java Klassen, wo bei der Zuweisung von Objekten nur Referenzen auf das Objekt kopiert werden, das Objekt selbst aber nicht. 34

35 Komplexe Datentypen (5) - Strukturen Der Gebrauch mit struct point3d pt ist relativ mühsam, weil man das struct-keyword immer schreiben muss In der Praxis wird man die Struktur deshalb oft gleich auch als neuen Datentyp definiert mit typedef möglich Mit typedef: typedef struct { int x; int y; int z; Point3D; Vgl. ohne typedef: struct point3d { int x; int y; int z; ; Anschliessend kann man Point3D wie einen Datentypen behandeln; die Deklaration einer Variablen geschieht entsprechend wie folgt: Point3D pt =... /* statt struct point3d pt =... */ Beachten Sie: Name des Typs folgt mit typedef nach der Strukturdefinition Konvention: Point3D beginnt mit einem grossen P (mit typedef definierte Typen sollten immer mit einem Grossbuchstaben beginnen) Marc Rennhard, , CPP_Programmelemente.ppt 35 35

36 Zusammenfassung Die Syntax von C hat grundsätzlich viele Ähnlichkeiten mit jener von Java C kennt 4 grundsätzliche einfache Datentypen, wobei die Länge (Anzahl der Bytes) dieser Datentypen Systemabhängig sind char, int, float, double Kein boolean in C, dafür Unterscheidung signed/unsigned Die Standard Library bietet grundlegende Input/Output Funktionen um Daten zu lesen und schreiben C kennt typedef und struct, welche in Java nicht existieren Marc Rennhard, , CPP_Programmelemente.ppt 36 36

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

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

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

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

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

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

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

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

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

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

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

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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

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

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

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

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

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

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

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

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

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

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

Ü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

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

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

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

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

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)

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

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

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

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h> Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen

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

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

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

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

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

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

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife Praktikum Ingenieurinformatik Termin 2 Verzweigungen (if-else), printf und scanf, while-schleife 1 1. Import/Export von Eclipse-Projekten 2. Verzweigungen (if-else-anweisung) 3. printf und scanf 4. Übungsaufgaben

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

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

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

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

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

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

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

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003

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

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

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

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

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

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

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

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

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

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

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

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

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

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

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

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

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

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Syntax und Kontrollstrukturen

Syntax und Kontrollstrukturen Syntax und Kontrollstrukturen Praktikum C-Programmierung Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-10-29

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

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

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16 Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Klausur in Programmieren

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

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

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

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

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

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

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

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

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