Programm-Ablauf. int main() // Beispiel- Struktur eines Programmes. prepare_everything(); read_input(); calculate_result(); write_output();
|
|
|
- Jürgen Lorenz
- vor 8 Jahren
- Abrufe
Transkript
1 Programm-Ablauf Alle betrachteten Programmiersprachen C, C++, Java führen Anweisungen in der Reihenfolge aus, in der diese im Quellcode stehen. Dieser normale Ablauf kann geändert werden durch: 1) Sprunganweisungen im erweiterten Sinn. Durch diese erfolgt die weitere Programmausführung an der anzuspringenden Stelle. Beispiele sind etwa die goto Anweisung in C/C++, jeder Funktionsaufruf, jedes return-statement usw. Funktionsaufrufe erkennt man in diesen Sprachen an den runden Klammern () hinter der aufgerufenen Funktion: sin(1.0). Ein Funktionsname ohne Klammern bewirkt keinen Funktionsaufruf, ist also "toter Code": sin; 2) Schleifen: Diese werden so oft wiederholt, wie eine Kontroll-Bedingung wahr ist. Beispiele in C/C++/Java sind while, do while, for 3) Bedingte Anweisungen: Diese Anweisungen werden nur beim Zutreffen einer Bedingung ausgeführt. Beispiele sind if, if else, switch case Die Programm-Ausführung startet in C und C++ mit der Funktion main(). Diese muss daher in jedem C/C++ - Programm genau einmal vorhanden sein (bei Java ist das ein wenig anders gelöst). Wenn diese Funktion endet (bei der schließenden geschwungenen }-Klammer oder bei einer return-anweisung im Inneren), dann endet auch das ganze Programm. Man kann alles in diese main-funktion hineinpacken (bei längeren Programmen unübersichtlich) oder aber aus dieser Funktion heraus aufrufen. Ein kleines Beispiel: int main() // Beispiel- Struktur eines Programmes { prepare_everything(); read_input(); calculate_result(); write_output(); return EXIT_SUCCESS; }
2 Datentypen, Objekte Zur Programmausführung werden fast immer Datenobjekte benötigt. Bei der Definition von variablen Objekten muss man entweder deren Datentyp explizit angeben oder aber der Typ wird als auto spezifiziert und muss vom Compiler anhand der Syntax automatisch erkannt werden (ab C++11). Konstante Objekte erkennt der Compiler immer an der Schreibweise. Die Objekte unterteilt man in 1) Variable Objekte, Variable: Diese Objekte lassen sich verändern. Sie müssen einen Namen haben, unter dem sie angesprochen werden können. C/C++ reserviert den Speicherplatz für definierte Variable vollautomatisch und gibt diesen auch wieder frei. 2) Konstante: Diese Objekte lassen sich nicht verändern, sie belegen auch keinen Speicherplatz, sondern sind nur im Programmcode enthalten. 3) konstante Objekte (erkennbar am const Schlüsselwort): Diese lassen sich genau einmal verändern, nämlich bei der Definition. Diesen Typ verwendet man gerne, um Programme an bestimmte Situationen anzupassen. Das Original-C konnte das noch nicht und musste stattdessen Präprozessor-Makros verwenden. Datentypen: Jede Programmiersprache stellt bestimmte Datentypen wie z.b. Zeichenketten = Strings, ganze Zahlen, Gleitkomma-Zahlen etc. zur Verfügung. Je nach Ausrichtung sind auch komplexe Zahlen, Vektoren und Matrizen usw. vordefiniert (z.b. Fortran als Mathematik-Sprache). C, C++ und Java sind Allround-Sprachen und definieren nur das Allernötigste vor. Objektorientierte Sprachen gestatten es, fehlende Datentypen selbst zu definieren und damit die Sprache zu erweitern. Bezeichner, Namen Variable, Funktionen, selbstdefinierte Datentypen, Makros usw. müssen einen Namen oder Bezeichner haben, der folgenden Regeln genügt: 1) Namen dürfen aus Buchstaben, Ziffern und Unterstrich bestehen: falsch: a-z (Bindestrich nicht erlaubt), x.h (Punkt!) 2) Namen dürfen NICHT mit einer Ziffer beginnen 3) Klein- und Großschreibung wird unterschieden 4) Namen dürfen beliebig lang sein (C beachtet nur die ersten 31 Zeichen, C++ sehr viel mehr, sicherlich >1000 Zeichen) 5) Namen für Templates in C++ (und nur diese) dürfen/müssen auch die Zeichen < und > enthalten. 6) Namen gelten immer nur in dem Block (von {} eingeschlossen), in dem sie definiert sind. Ein Name außerhalb aller Blöcke gilt global im ganzen Programm. richtig: x234_2, Meine_Oma
3 Datentypen für ganze Zahlen In Standard C/C++ gibt es die Ganzzahltypen char (phonetisch TSCHAR), short (kurz für short int), int, long (kurz für long int), long long (kurz für long long int). Diese unterscheiden sich in der Anzahl der Bits (= binäre Ziffer, also nur die Werte 0 oder 1). Je mehr Bits einem Typ zugeordnet sind, desto größere Zahlen lassen sich darstellen. Jeder dieser Datentypen enthält auch negative Zahlen, und zwar gleich viele wie nichtnegative! ES GIBT KEINE VERBINDLICHEN REGELN für die Bit-Anzahl in C/C++! es gilt nur: Datenbits!) char <= short <= int <= long <= long long (im Sinne von Weit verbreitet ist z.b. folgendes Schema: char: 8 Bit: Werte von -128 bis 127 short: 16 Bit: Werte von ca bis ( bis ) int: 32 Bit: Werte von -2 Mrd bis 2 Mrd ( bis ) long: bis ) long long: auch 64 oder gar 128 Bits Dennoch DARF MAN NICHT DAVON AUSGEHEN, dass es immer so sein muss. Manche Systeme haben int und long mit 32 Bit, manche int und long mit 64 Bit definiert. Hier geht Java einen anderen Weg, da hier die Bitzahlen eindeutig definiert sind: byte: 8 Bit: Werte von -128 bis 127: - (2 hoch 7) bis (2 hoch 7)-1 short: 16 Bit: Werte von ca bis 32000: - (2 hoch 15) bis (2 hoch 15)-1 int: 32 Bit: Werte von -2 Mrd bis 2 Mrd: - (2 hoch 31) bis (2 hoch 31)-1 long: 64 Bit: Werte von - (2 hoch 63) bis (2 hoch 63)-1 Der Datentyp char ist in Java immer 16 Bits breit, aber kein numerischer Datentyp Alle diese Typen gibt es auch unsigned (gleiche Bitanzahl, aber nur positive Werte oder 0), wir haben also auch unsigned char, unsigned short (int), unsigned int, unsigned long (int), unsigned long long (int) unsigned 8 Bit: Werte von 0 bis 255: 0 bis unsigned 16 Bit: Werte von ca. 0 bis (0 bis ) unsigned 32 Bit: Werte von 0 bis 4 Mrd (0 bis ) unsigned 64 Bit (0 bis ) Portabel Programmieren in C/C++: Wenn man für ein Programmprojekt unbedingt Ganzzahlen mit einer ganz bestimmten Bitanzahl verwenden muss (z.b. IPv4-Adressen sind
4 immer 32 Bit lang), sollte man nicht einen Standardtyp wie int verwenden, weil dessen Zahlenumfang nicht fixiert ist. Die Norm C99 definiert neue Ganzzahl-Datentypen für C (und damit auch für C++), die eine garantierte Länge haben (z.b. int32_t für 32-bit Integer, uint64_t für 64-bit unsigned Integers usw.). Diese Typen sind im Headerfile <stdint.h> für C und im Headerfile <cstdint> für C++ definiert. Um die neuen Integertypen zu verwenden, muss man nur diese Headerdatei inkludieren. Weitere Ganzzahltypen sind für diverse Zwecke in verschiedenen Headern vordefiniert. So gibt es in C++ auch die Typen: std::size_t (z.b. in cstdlib definiert) std::streamsize (ios) std::time_t (ctime) Diese entsprechen immer einem der Standardtypen, allerdings kann es von der Hardware (32-Bit CPU oder 64-Bit CPU) und vom Betriebssystem abhängen (z.b. ist std::size_t manchmal als unsigned int, manchmal als unsigned long definiert!). Zum Rechnen mit den Ganzzahltypen stehen die arithmetischen Standard- Rechenoperationen + (Addition), - (Vorzeichen bzw. Subtraktion), * (Multiplikation), / (Division), sowie % (Divisionsrest) zur Verfügung. Sie liefern immer ein Ganzzahlergebnis vom selben Typ: > 2 7 / 4 -> 1 (Achtung!) 17 % 3 -> 2 (17 hat bei Division durch 3 den Rest 2) -5 % 3 -> -2 (Divisionsreste von negativen Zahlen sind negativ) Überlauf: Manchmal wird ein Ergebnis zu groß für einen Datentyp (meistens bei der Multiplikation). Hier kommt es zu einem falschen Ergebnis, ohne dass es eine Warnung dafür gibt! Datentypen für Gleitkommazahlen: Für solche Zahlen stehen die Datentypen float (einfache Genauigkeit), double (doppelte Genauigkeit) und long double (wird fast nie verwendet) zur Verfügung. float hat etwa 7 signifikante Stellen, double ca. 14. Dabei handelt es sich nicht um Nachkommastellen, die Zahlen werden intern immer im wissenschaftlichen Format mit einer Mantisse (mit der angegebenen Stellenzahl) und einem Exponenten gespeichert. Die Grundrechnungsarten +,-,*, / für Gleitkommazahlen erzeugen fast immer Rundungsfehler, aber KEINE Überläufe. Manchmal ist das Ergebnis einer Rechenoperation ungültig (z.b.
5 Division durch 0 oder Wurzel aus einer negativen Zahl etc.). Hier kann man oft einstellen, ob das Programm mit einer Fehlermeldung abbricht oder ob es mit speziellen ungültigen Zahlen weiterrechnet. Solche sind: NaN, nan: Not a Number Infinity, inf: Unendlich Mit welchem Typ wird eine Grundrechnungsart durchgeführt? C++ hat einige Regeln dazu, hier sind die wichtigsten: 1) Sind beide Operanden Gleitkommatypen, wird mit dem größeren der beiden Typen gerechnet (long double > double > float)und der andere Operand konvertiert. 2) Ist ein Operand ein Gleitkommatyp, der andere ein Ganzzahltyp, so wird mit dem Gleitkommatyp gerechnet und der Ganzzahltyp vorher konvertiert. 3) Sind beide Operanden Ganzzahltypen <= int, so wird mit int gerechnet und (wenn nötig), beide Operanden zu int konvertiert. 4) Ist ein Operand ein unsigned int, und der andere Operandentyp <= unsigned int, wird mit unsigned int gerechnet und der andere Operand in unsigned int konvertiert. Bei Vergleichsoperatoren und bei manchen arithmetischen Operationen geht das manchmal schief! Der Compiler warnt daher zu Recht, wenn ein unsigned int mit einem signed Datentyp verglichen wird!) 5) Regeln wie 3) und 4) gelten sinngemäß, wenn man int durch long oder long long ersetzt und wenigstens ein Operand diesen Typ hat. double / float -> double (Regel 1) int / float -> float (Regel 2) int / int -> int (Regel 3) char / short -> int (Regel 3) unsigned / unsigned -> unsigned (Regel 4) unsigned / char -> unsigned (oder Katastrophe!) (Regel 4) long / int -> long (Regel 5) Warnungsbeispiel: unsigned one = 1; // das gefährliche Duo: unsigned int minus_one = -1; // mit einem signed, der negativ ist if (minus_one > one) // und jetzt ein Vergleich: Autsch cout << minus_one << > << one << \n ; Zusammengesetzte Formeln: Diese werden in einzelne Rechenoperationen aufgeteilt und diese einzeln nach vorigen Regeln behandelt:
6 int + char + long -> (int + char) + long -> (int + int) + long -> int + long -> long + long -> long Beachte hier, dass wirklich JEDE Operation einzeln betrachtet wird. Es könnte also durchaus bei der ersten Addition (int + int) ein Überlauf auftreten, der bei der durchgängigen Rechnung mit long nicht aufgetreten wäre. Dennoch wird diese erste Addition mit int- Daten berechnet und erst das (möglicherweise falsche übergelaufene) Ergebnis in long umgewandelt. Das Assoziativgesetz gilt für diese Arithmetik NICHT: ( 2'000'000' '000'000'000 ) + 0L ist meist etwas anderes als 2'000'000'000 + ( 2'000'000' L ) Datentyp für Wahrheitswerte C++ kennt dazu den Datentyp bool, der die Werte true oder false annehmen kann. Beide Wahrheitswerte gestatten eine automatische Konvertierung in einen int, und zwar wird true in 1 und false in 0 konvertiert (C-kompatibel). In C (und damit auch in C++) gilt aber auch jeder numerische Ausdruck, der nicht 0 ist, als wahr und der Ausdruck 0 als falsch. x = x + true; // entspricht: x = x + 1; Variablen Variablen müssen vor ihrer Verwendung definiert werden. In C-Programmen erfolgt die Definition traditionell am Anfang der Funktion oder des Blocks, in der sie verwendet werden, in C++/Java meistens kurz vor oder bei ihrer Verwendung. Die Definition geschieht durch Angabe des Typs und des Variablennamens. Es können auch mehrere Variable desselben Typs gemeinsam definiert werden: int x; long i, k, Summe; short s1 = 5, s2 = 3, s3; // 3 long-variable werden definiert // mit oder ohne Initialisierung Eine Zuweisung in einer Definition nennt man Initialisierung. Es handelt sich dabei streng genommen um keine Zuweisung sondern eben um eine Initialisierung. Dabei ist oft mehr
7 erlaubt, als bei einer echten Zuweisung möglich wäre. Das ist umso wichtiger in C++, weil hier im Rahmen einer Initialisierung auch ein Funktionsaufruf (Konstruktor) erfolgen kann/muss. Der Datentyp auto Neu und mit Freude aufgenommen wurde der neue Typbezeichner auto (seit C++11), bei dem C++ den Typ automatisch aus dem Initialisierer zu erraten versucht. Das geht natürlich nur, wenn die Objekte tatsächlich initialisiert werden (= gleich bei der Definition einen Wert erhalten): auto i = 1; // i ist int auto x = 2.0f; // x ist float auto s = sin(1.90); // s ist double auto u; // das ist ein Blödsinn, wie soll C++ den Typ erraten? std::vector<double> v; std::vector<double>::const_reverse_iterator it = v.crbegin; auto it = v.crbegin(); // C++11: Gott sei Dank gibts auto Konstante Der Typ von Konstanten wie z.b. Zahlenwerte, C-Strings wird an der Form der Konstanten erkannt: 1, 2, -1000: besitzen keinen Dezimalpunkt -> Ganzzahltyp -> int 2.0, , 1e5: besitzen einen Dezimalpunkt und/oder Exponent-> double 100'000'000 : 100 Millionen als int (seit C++11 erlaubte Strukturierung langer Zahlen), 1'000' '3 als double Ist man mit dieser Zuordnung nicht zufrieden, kann man noch durch einen/mehrere angehängte/n Buchstaben (u oder U für unsigned, l (schlecht, weil ähnlich zu 1) oder L für long, ll oder besser LL für long long, f oder F für float) der Konstanten einen anderen Typ geben: 1L -> 1 vom Typ long (bitte nicht 1l verwenden, das verwechselt man gerne mit 11) 1uL -> 1 vom Typ unsigned long 1.0f -> 1.0 vom Typ float 1e6 -> eine Million als double
8 10e6f -> zehn Millionen als float Wenn man short oder unsigned short Konstante spezifizieren will (das ist eigentlich nie wirklich nötig), muss man eine Typ-Umwandlung verwenden. Diese hat in C++ die Form: static_cast<zieltyp>(ausdruck) static_cast<short>(23) Alternativ kann man auch einen Konstruktor verwenden(ist kürzer): short{23} // ab C++11 in C schreibt man dafür (das geht auch in C++, es wird allerdings nicht gerne gesehen) (Zieltyp) Ausdruck (unsigned short) 23 Ganze Zahlen kann man statt dezimal auch im Oktalsystem angeben (diese beginnt dann mit einer 0 (Null!)) oder das Sedezimalsystem (Hexadezimal-System) verwenden, wobei man dann mit 0x beginnen muss: 10 -> (Oktalsystem) -> 8 0x10 (Hexen-Ein Mal Eins) -> 16 Seit C++11 ist auch die Angabe im Binärsystem möglich, bei der natürlich nur die Ziffern 0 und 1 erlaubt sind. Sie beginnen mit 0b: 0b11101(statt 0b ist auch 0B möglich) -> 29 dezimal Zeichen-Konstante: Stehen in einfachen Anführungszeichen: 'a' Ascii-Wert des Zeichens a: In C ist das ein int, in C++ ein char, in Java ein char (das ist in Java kein numerischer Typ) '\t' ist das Tabulator-Zeichen, '\n' ist das Newline-Zeichen C-String-Literale oder Zeichenketten-Konstante werden in allen unseren Sprachen in doppelte Anführungszeichen gesetzt: "Ich bin ein String-Literal" In C (und damit auch in C++) und Java handelt es sich dabei um ein Array von char, das sind Zeichen, die im Speicher hintereinander liegen: also ein I, ein c, ein h, ein Leerzeichen usw. bis zum l von Literal und danach ein Null-Byte, das den String terminiert. Die Länge des Strings wird nicht abgespeichert, er geht eben bis zum ersten Nullbyte. Wer dynamisch Zeichenketten erzeugt und auf das schließende Nullbyte vergisst, hat u.u. sehr lange Strings generiert!
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
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
4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen
. Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit
Wertebereich und Genauigkeit der Zahlendarstellung
Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden
Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15
Variablen CoMa-Übung VIII TU Berlin 4.12.2013 CoMa-Übung VIII (TU Berlin) Variablen 4.12.2013 1 / 15 Themen der Übung 1 Typanpassungen 2 Operatoren 3 Variablen-Gültigkeit CoMa-Übung VIII (TU Berlin) Variablen
Projekt 3 Variablen und Operatoren
Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.
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.
1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
1. Referenzdatentypen: Felder und Strings
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
Grundlagen der Informatik 2. Typen
Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace
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
Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean
01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2
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,
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
JAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
Welche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
Algorithmen zur Datenanalyse in C++
Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in
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)
Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen
Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik
Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei
Einstieg in die Informatik mit Java
1 / 30 Einstieg in die Informatik mit Java Datentypen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 30 1 Überblick 2 Ganzzahlige Typen 3 Gleitkommatypen 4 Zeichen, char
2.5 Primitive Datentypen
2.5 Primitive Datentypen Wir unterscheiden 5 primitive Datentypen: ganze Zahlen -2, -1, -0, -1, -2,... reelle Zahlen 0.3, 0.3333..., π, 2.7 10 4 Zeichen a, b, c,... Zeichenreihen "Hello World", "TIFI",
Kapitel 3. Grunddatentypen, Ausdrücke und Variable
Kapitel 3 Grunddatentypen, Ausdrücke und Variable Grunddatentypen, Ausdrücke und Variable 1 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable
1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem
FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung
C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen
float: Fließkommazahl nach IEEE 754 Standard mit 32 bit
Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen
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).
Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen
Elementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 1: Bezeichner, Elementare Datentypen, Variablen, Referenzen, Zuweisungen, Ausdrücke Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Bezeichner
Einführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Was sind Operatoren Ein Operator ist eine in die Programmiersprache eingebaute Funktion, die
Programmiertechnik Skalare Typen,Variablen, Zuweisungen
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Skalare Typen,Variablen, Zuweisungen int int i; i; long long j; j; boolean boolean isempty; isempty; double double average; average;
C++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
Kapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt?
Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen
JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
Einführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
Grundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
Schleifen in C/C++/Java
Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.
Einstieg in die Informatik mit Java
1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,
Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
Elementare Datentypen in C++
Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der
Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A
2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,
Modellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir
Programmierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen
1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-
3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
Kapitel 4: Elementare Konzepte von Programmiersprachen. Variablen Referenzen Zuweisungen
Variablen Referenzen Zuweisungen Variablen Variablen dienen der Speicherung von Werten Name (name) bezeichnet die Variable im Programm Wert (value) ist das Datenelement, dass in der Variablen gespeichert
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,
Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5
Zentrum für Angewandte Informatik Köln Arbeitsgruppe Faigle / Schrader Universität zu Köln Lösungen zum Übungsblatt 3 Programmierkurs C++ Nils Eissfeldt und Jürgen Gräfe. November 001 Aufgabe 5 Innerhalb
5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)
5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im
Einstieg in die Informatik mit Java
Vorlesung vom 5.11.07, Weitere Ausdrücke Übersicht 1 Vergleichsoperatoren 2 Kombinierte Zuweisungsoperatoren 3 Logische Operatoren 4 Weitere Operatoren 5 Klassifizierung von Operatoren 6 Typumwandlungen
3. Datentypen, Ausdrücke und Operatoren
3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen
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
Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1
Kapitel 2: Python: Ausdrücke und Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2016/2017 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen u.ä. 2
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
3. Datentypen, Ausdrücke und Operatoren
3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen
Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java
Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
RO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
Algorithmen & Programmierung. Ausdrücke & Operatoren (1)
Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck
Einstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
Einstieg in die Informatik mit Java
Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for
Übersicht. Peter Sobe 1
Übersicht Lehrinhalt: Programmierung in C Überblick über Programmiersprachen C: Eingebaute Datentypen, Zahlendarstellung, Variablen, Konstanten Operatoren und Ausdrücke Anweisungen Kontrollstrukturen Funktionen
Grundlagen der Programmierung
Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,
Primitive Datentypen und Felder (Arrays)
Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste
Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf
Programmieren in C / C++ Grundlagen C 2
Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen
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.
Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein
Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache Dr. Beatrice Amrhein Überblick Speicherverwaltung: Stack und Heap Ein- und Ausgabe über die Console Variablen und Operatoren Parameter
Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen
Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung
RO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
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
Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke
Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke 1 Links Stellenwertsysteme mit Links zu Zahlensysteme: http://de.wikipedia.org/wiki/stellenwertsystem ASCII-Code: http://de.wikipedia.org/wiki/ascii
Informationsverarbeitung im Bauwesen
1/24 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 7
Motivation und Überblick
Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur
Ein erstes Java-Programm
Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println
Programmieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
Grundelemente von C++
- Zeichensatz - Kommentare - Token - Bezeichner - Schlüsselwörter - Einfache Typen - Literale Ganze Zahlen Reelle Zahlen Wahrheitswerte Zeichen - Variablen und Variablendeklarationen - Benannte Konstanten
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
Folgen und Funktionen in der Mathematik
Folgen und Funktionen in der Mathematik Anhand von einigen exemplarischen Beispielen soll die Implementierung von mathematischen Algorithmen in C/C++ gezeigt werden: Reelle Funktionen in C/C++ Diese wird
Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration
Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration CoMa-Übung III TU Berlin 30.10.2013 Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration 30.10.2013 1 /
Physische Datenstrukturen
Elementare Datentypen Strukturierte Datentypen Zeiger Seite 1 Einfache Datentypen Datentyp char Verwendung: ASCII-Zeichen Wertebereich: alle darstellbaren Zeichen, 8 bit lange Ganzzahlen im Intervall -128
