Grundlagen der Software-Entwicklung GSE

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Software-Entwicklung GSE"

Transkript

1 Grundlagen der Software-Entwicklung GSE Friedrich Haase Dieses Skript ist work in progress. Anregungen und Hinweise auf Fehler sind sehr willkommen. Vorlesung FH-Dortmund, Grundlagen der Software-Entwicklung 2014 Dr. Friedrich Haase

2 Haase, Grundlagen der Software-Entwicklung 2 Inhaltsverzeichnis 1. Einleitung Ziele Architektur eines Computer Programmier-Werkzeuge Windows Microsoft Visual C Express Linux Code::Blocks Arduino Android CppDroid Diverse Programmierplattformen Programmbeispiele Zahl- und Zeichendarstellung Zahlen Zeichen C++ Datentypen Algorithmen C / C Variablen Initialisierung Einfache Anweisungen Operatoren Ausführungspriorität Typkonvertierung Felder Deklaration Initialisierung Verwendung Zeichenfelder Steueranweisungen If-Anweisungen Switch-Anweisungen Schleifen Schleife mittels goto while-schleife for-schleife do-while-schleife continue Funktionen Standardfunktionen Vom Anwender definierte Funktionen Rekursionen Überladene Funktionen Strukturen Deklaration Initialisierung Verwendung Zeiger Zeiger und Adressen Verwendung von Zeigern Übergabe von Parameter an eine Funktion Zeiger und Felder...43

3 Haase, Grundlagen der Software-Entwicklung Dynamische allozierter Speicherplatz Speicherplatzverwaltung Typedef Ein-/Ausgabe Standard-Ein-Ausgabe Formatierte Ausgabe Formatierte Eingabe Dateizugriff Gültigkeitsbereiche von Variablen Lokale Daten einer Funktion Lokale Daten und Funktionen in einer Datei Weitere Speicherklassen Modulare Programmierung Multitasking und Echtzeit Technische Systeme Digitale Ein- und Ausgänge PNP- und NPN-Eingänge PNP- und NPN-Ausgänge Analoge Ein- und Ausgänge Spezielle Interface Bus-Systeme C Klassen Konstruktoren und Destruktor Methoden Klassen und Header-Dateien Vererbung Basisklasse und abgeleitete Klassen Virtuelle Funktionen Statische Variablen und Methoden...68 Anhang...70

4 Haase, Grundlagen der Software-Entwicklung 4 1. Einleitung Wie lernt man Schwimmen? Wie lernt man Programmieren? 1.1. Ziele Mittels Programmierung kann man zwar mathematische Aufgaben lösen, aber die Schreibweise unterscheidet sich sehr von mathematischen Gleichungen. x = x + 1 Ist keine mathematische Gleichung (wäre auch unsinnig), sondern eine Rechenanweisung. C F (rechte Seite vom Gleichheitszeichen) Nehme x und addiere 1 (linke Seite vom Gleichheitszeichen) speichere das Resultat als neues x Programmieren in C und (etwas) C++ targets Embedded Controller C++ nur in geringem Umfang programmieren einfacher, kleiner Programme für Berechnungen 1.2. Architektur eines Computer CPU zentrale Recheneinheit ROM nur lesbarer Speicher RAM schreib und lesbarer Speicher In ROM und Massenspeicher bleiben Daten auch nach Abschalten der Spannungsversorgung erhalten. RAM-Speicher ohne Spannung verliert seine Daten. ROM-Speicher ist (normalerweise) nicht änderbar.

5 Haase, Grundlagen der Software-Entwicklung Programmier-Werkzeuge Programmiersprache: eine Methode für den Menschen verständliche und handhabbare Darstellung eines Algorithmus in eine Form zu bringen, die von einem Computer verstanden wird. Maschinensprache Sehr schwer verständlich. Für jeden CPU-Typ anders. Eigentlich sind es ja nur Bitmuster. Im Bild befindet sich daher schon eine (vereinfachende) Darstellung (hexadezimal). Assembler XOR EAX,EAX XOR ECX,ECX MOV EBX,ip_pointer MOV AX,WORD PTR[EBX] XCHG AL,AH MOV CX,WORD PTR[EBX+2] ADD EAX,ECX MOV CX,WORD PTR[EBX+4] ADD EAX,ECX MOV CX,WORD PTR[EBX+6] ADD EAX,ECX MOV CX,WORD PTR[EBX+8] XCHG CL,CH ADD EAX,ECX MOV CX,WORD PTR[EBX+10] ADD EAX,ECX MOV CX,WORD PTR[EBX+12] ADD EAX,ECX Immerhin lesbarer Text. Für jede CPU-Familie anders. Sehr kleinteilig. Jede Zeile ist ein einzelner Befehl. Für nahezu jede sinnvolle kleine Aufgabe sind mehrere Befehle nötig. Aber sehr detailliert. Auch Sonderfunktionen einer CPU sind zugänglich.

6 Haase, Grundlagen der Software-Entwicklung 6 Hochsprachen Hochsprachen sind unabhängig von der verwendeten Rechnerarchitektur oder sollten es zumindest sein. Sie haben aber zumeist Einschränkungen hinsichtlich der angebotenen Funktionalität (kleinster gemeinsamer Nenner). Für allgemeine Aufgaben sind sie bestens geeignet. Hardwarenahe Programmierung ist nicht möglich oder erfordert zusätzliche, spezielle Maßnahmen. Für die Programmierung moderner grafischer Benutzeroberflächen sind spezielle Bibliotheken erforderlich, die jedoch meist plattformspezifisch sind. Compiler für verschiedene Rechnerarchitekturen Spezielle Zielsysteme: Embedded Controller, Smartphones Compiler vs Interpreter Compiler: C/C++, Pascal, Fortran schnell jeweils für ein bestimmtes Zielsystem Interpreter Basic, Python langsam plattformübergreifend

7 Haase, Grundlagen der Software-Entwicklung 7 Zwischenformen z.b. Java Varianten z.b. C-Interpreter, Basic-Compiler Programmiersprachen müssen nicht unbedingt in textueller Form vorliegen. Es gibt auch grafische Programmiermethode, ähnlich den Schaltbildern von elektronischen Schaltungen (IEC 61131, Function Block Diagramm, Ladder Diagramm). Meist benutzt man integrierte Entwicklungsumgebungen (Integrated Development Environment, IDE), die neben dem Compiler auch Programmier-Editore und Projektverwaltung enthalten. Für die Vorlesung C/C++ IDE und Compiler C/C++ meistverwendete Programmiersprache Java auf dem 2. Platz (eher wg Web+Smartphones) C ist eine sehr leistungsfähige Programmiersprache. Aber sie erleichtert es auch Fehler zu machen. Dies hat sehr zu ihrem Ruf als gefährliche Programmiersprache beigetragen Windows Microsoft Visual C Express Die Express-Versionen sind bei Microsoft kostenlos erhältlich oder Ab Windows 7 ist auch Microsoft Visual Studio 2013 Express for Windows geeignet. Vorhandene Projekte der 2010-Version (z.b. Praktikumsaufgaben) werden automatisch konvertiert. Microsoft Visual Studio Professional, ebenfalls ab Windows 7, ist für Studenten kostenlos erhältlich. Alle Beispiele arbeiten als Konsolen-Anwendungen. Um zu verhindern, dass sich das Ein-/Ausgabefenster am Programmende sofort schließt, ist in den Beispielen für Visual C++ eine Eingabeanforderung _getch() am Programmende angefügt. Hierzu ist auch die Präprozessordirektive #include <conio.h> eingebunden. Die Programme warten am Ende also auf eine Eingabe, die jedoch nicht mehr weiterverarbeitet wird Linux Code::Blocks Auf einem Linux-Rechner oder in einer virtuellen Umgebung mit einem Linux Betriebssystem. Appliance für Oracle VirtualBox im CIP-Pool auf L:/Haase/GSE. Code::Blocks benutzt den gcc-compiler und den gdb-debugger. Statt auf einem Linux-Rechner kann Linux auch in einer virtuellen Umgebung (virtual machine) laufen. Für VirtualBox von Oracle ist eine Appliance vorbereitet im CIP-Pool auf L:/Haase/GSE. VirtualBox findet man bei https://www. virtualbox.org/

8 Haase, Grundlagen der Software-Entwicklung Arduino Netter, preiswerter Embedded Controller. Sehr verbreitet, viel anschließbares Zubehör. Arduino UNO ca. 25, teilweise ab 15 IDE mit Compiler ist kostenlos. Ein- und Ausgaben müssen beim Arduino über die serielle Schnittstelle (USB-Anschluß) in ein Fenster der Arduino-IDE geleitet werden Android CppDroid Einfache, kleine Programme in C/C++ auf dem Smartphone programmieren. Auf Google Play Store oder im CIP-Pool auf L:/Haase/GSE. Kostet ein paar Euro um die Reklame loszuwerden (in app Kauf) Diverse Programmierplattformen Für industrielle Anwendungen von Embedded Controllern: Keil IAR Raisonance AVR-Studio teilweise als kostenlose Test- oder Demoversion erhältlich. Überwiegend für Windows konzipiert. Für Apple OS X ist gcc wünschenswert. Xcode ist nur sehr bedingt geeignet Programmbeispiele Parallel zu diesem Skript gibt es Programmbeispiele für erwähnten Programmierplattformen. Diese Beispiele sind weitgehend ähnlich oder gleich gehalten. Soweit möglich verwenden diese Beispiele die Ein- und Ausgabe cin und cout von C++. Hierzu ist auch die Präprozessordirektive #include <iostream> eingebunden. Bei Arduinos wird jedoch die für diese Plattform normale serielle Ein- und Ausgabe verwendet. Einige Beispiele insbesondere für Arduinos sind als zyklische Programme ausgelegt. Dies entspricht der gängigen Anwendung von Embedded Controller.

9 Haase, Grundlagen der Software-Entwicklung Zahl- und Zeichendarstellung Computer benutzen umschaltbare Elemente genannt Bits. Jeweils nur einer von 2 Zuständen möglich Null oder Eins, Strom oder kein Strom, wahr oder falsch. Da man mit nur einem Bit kaum etwas anfangen kann, kombiniert man mehrere Bits zu größeren Einheiten. So sind 8 Bits üblicherweise 1 Byte. 16, 32 oder 64 Bits werden ein Wort genannt, abhängig von der verwendeten Rechner-Architektur Zahlen Zur Darstellung von Zahlen gängig Zehnerystem es gibt nur die Ziffern 0.. 9, also 10 Ziffern In der Datenverarbeitung viel verwendet Dualsystem (Zweiersystem, Binärsystem) es gibt nur die Ziffern 0 und 1, also 2 Ziffern Hexadezimalsystem es gibt 16 Ziffern 0..9 und zusätzlich (ersatzweise) A.. F als Ziffern 10 bis 15 Stellenschreibweise vgl. römische Zahlenschreibweise Zehnersystem (10er-System) Stellen für Einer, Zehner, Hunderter,... Binärsystem (Zweiersystem) eine Ziffer steht für 1 Bit Stellen für Einer, Zweier, Vierer, Hexadezimalsystem eine Ziffer steht für 4 Bit Stellen für Einer, 16-er, 256-er, Schreibweise in C/C++ mit vorangestelltem 0x, z.b. 17 hexadezimal 0x11 Die Rechenmethoden sind immer gleich. Beispiel Dec2Hex Beispiel Hex2Dec Ganzzahlen Man unterscheidet in der Rechnertechnik bei ganzzahligen Werten nach der Anzahl der verwendeten

10 Haase, Grundlagen der Software-Entwicklung 10 Bytes und ob auch negative Zahlenwerte darstellbar sein sollen. Beispiel Sizeof Größe mit Vorzeichen ohne Vorzeichen 1 Byte char unsigned char 2 Byte short unsigned short 4 Byte long unsigned long 8 Byte long long unsigned long long Die 1 Byte großen char dienen auch der Speicherung von Buchstaben und Ziffern daher der Name. Bei den meisten Compilern speichern sie Zahlen mit Vorzeichen. Gelegentlich einstellbar. Auch mit vorangestelltem signed oder unsigned. Sehr häufig findet man auch die ursprünglichen Ganzzahltypen (integer) int und unsigned int. Je nach Architektur können diese jedoch 2, 4 oder sogar 8 Bytes haben. Für die Varianten mit Vorzeichen darf auch signed vorangestellt werden. Allen außer char darf auch int nachgestellt werden z.b. unsigned short int. Negative Zahlen Einerkomplement 1 Bit als Vorzeichen. Ungebräuchlich. Zweierkomplement Beispiel für Zweierkomplement mit 4 Binärstellen (Zahlenbereich -8 bis +7) binär dezimal Komplement von 6 1 addiere Probe Der Übertrag in die (nicht existierende) 5. Stelle entfällt / wird ignoriert. Überlauf Wird der darstellbare Bereich bei einer Operation über- oder unterschritten, so ergeben sich unsinnige bzw. völlig falsche Werte. Wird beispielsweise zu der Zahl mit dem Datentyp unsigned short (2 Bytes) eine 1 addiert so ergibt sich nicht sondern der Wert 0. Im Binärsystem besteht die Zahl aus 16 mal 1er-Bits. Eine Addition von 1 führt zu 16 mal 0er-Bits und einem Übertrag in das nicht mehr vorhandene 17. Bit. Fließkommazahlen Festpunktzahlen werden langsam unüblich (2014). Stattdessen exponentielle Darstellung mit Mantisse und Exponenten - allerdings binär und nicht dezimal. Früher gab es diverse Standards, heute überwiegend IEEE-754 / IEC

11 Haase, Grundlagen der Software-Entwicklung 11 Beispiel Sizeof Größe 4 Bytes float Datentyp 8 Bytes double 10 Bytes Extended (selten) 16 Bytes long double (sehr selten) Fließkommazahlen haben nur eine begrenzte Genauigkeit gewissermaßen ein Anzahl gültiger Stellen. Außerdem werden sie rechnerintern in binärer Form dargestellt. Daraus resultieren gelegentlich Überraschungen. Beispielweise hat der Wert von 1/10 in dezimaler Darstellung nur eine einzige Nachkommastelle ist also leicht exakt darstellbar. Als binäre Zahl hingegen ist 1/10 ein unendlicher, periodischer Bruch und daher mit endlich vielen Bits nicht exakt darzustellen. Die Rechenmethoden sind gleich. Beispiel: Division von 1 durch 10 1 : 1010 = Die interne Darstellung nach IEEE 754 verwendet allerdings ein anderes Format - eine binäre Exponential-Darstellung. Die Genauigkeit der Fließkommazahlen liegt bei etwa 7 Stellen für die 4-Bytes float und bei etwa 16 Stellen für die 8-Bytes double Zeichen Um Buchstaben, Ziffern, Sonderzeichen zu behandeln, ist eine eindeutige Zuordnung von Bitmustern zu den einzelnen Zeichen erforderlich. Kleines Alphabet für die wichtigsten, englischen Zeichen (1 Byte).

12 Haase, Grundlagen der Software-Entwicklung Zeichen (ASCII) einigermaßen einheitlich standardisiert. Die übrigen 128 Zeichen mehrfach unterschiedlich verwendet. Einzelne Zeichen kann man in einem Programm benutzen, indem man diese zwischen einfache Hochkommata setzt. char achar = 'L'; oder if ( ch == '4' ) Für einige Sonderzeichen gibt es spezielle Formen, die einen vorangestellten rückwärtigen Schrägstrich nutzen. \n Zeilenwechsel \r Wagenrücklauf \f nächste Seite \t Tabulator \' einfaches Anführungszeichen \" doppeltes Anführungszeichen \\ rückwärtiger Schrägstrich In besonderen Fällen kann man auch die hexadezimalen oder dezimalen Äquivalente der Zeichen angeben. char letterl = 0x4C; oder if ( adigit == 0x37 ) // check for digit '7' Fremdländische Zeichen wie beispielsweise Ä, Ö, Ü, ß sind in den ersten 128 Zeichen nicht vorhanden, wurden aber länderabhängig und auf unterschiedliche Weise in den zweiten 128 Zeichen untergebracht. Für kyrillisch, griechisch, arabisch oder gar chinesisch ist diese Methode jedoch ungeeignet. Großes Alphabet genannt Unicode (ISO/IEC 10646) für alle existierenden Zeichen (4 Bytes) (lebend, tot, graphisch, ) z.b. Japanisch (hier Katakana)

13 Haase, Grundlagen der Software-Entwicklung 13 Für die chinesische Schrift ca Zeichen. Da reichen inzwischen auch 2 Bytes zur Codierung nicht mehr aus (Windows). In der nächst größeren Stufe von 4 Bytes werden z.z. 23 Bits von Unicode genutzt. Es gibt mehrere Formen der Kodierung hierfür. Eine weit verbreitete Codierung genannt UTF-8 nutzt je nach Zeichen (bzw. code point) 1 bis 6 Bytes ( , Web, etc.) C++ Datentypen In moderneren C Implementierungen und in C++ gibt es einige zusätzliche Datentypen. Teilweise sind diese unmittelbar in die Sprache eingebaut, teilweise gehören sie zu Standardbibliotheken. bool (in C++) Ein (ganzzahliger) Datentyp, der nur die Werte 0 und 1 annehmen kann. Als Synonyme sind auch die Schlüsselwörter true und false erlaubt. bool bfertig = true; bfertig = 0; if ( bfertig )... // mit oder ohne Initialisiernng // oder bfertig = false // als Bedingung complex (ab C99 und in C++) Eine vergleichsweise neuere Ergänzung für komplexe Zahlen. string (in C++) Als Teil einer sehr bequeme anzuwendenden Standard-Bibliothek. Üblicherweise sind string-variablen nicht auf ein Feld aus 1-Byte char beschränkt sondern erlauben einenteil oder den ganzen Unicode- Zeichensatz. string singername = "Amy Winehouse"; string singername("amy Winehouse"); Für den Datentyp string sind eine Vielzahl von Funktionen definiert. Beispiel String

14 Haase, Grundlagen der Software-Entwicklung Algorithmen Zu den ersten, ursprünglichen Aufgaben von Computern gehörten Berechnungen, oftmals militärischer Art. Heute sind sie aus kaum einem Lebensbereich wegzudenken. Nur sehr einfache Berechnungen können durch eine einzelne Formel ausgedrückt werden. Meist sind längere Rechenwege erforderlich. Solche Rechenwege nennt man Algorithmen. Sie bestehen aus einer mehr oder weniger festgelegten Reihenfolge einzelner Rechenoperationen und können auch Fallunterscheidungen enthalten. Algorithmen werden gelegentlich durch sogenannte Flussdiagramme dargestellt. Das nachfolgende Diagramm zeigt die iterative Berechnung einer Quadratwurzel. Beispiel SquareRoot Solche Diagramme (oder Struktogramme) sind intuitiv sehr leicht verständlich. Sie werden daher auch für andere Zwecke als Programmierung verwendet. Es gibt einige alternative Diagramme Nassi Shneiderman, UML etc.

15 Haase, Grundlagen der Software-Entwicklung C / C++ Programmbeispiel #include <iostream> using namespace std; int main() cout << "Hello World!" << endl; return 0; Ein Programm besteht aus einer Reihe von Deklarationen und Anweisungen. Alle Anweisungen werden mit einem Semikolon abgeschlossen. Beispiel HelloWorld Die Methoden für die Ein- und Ausgabe sind in den Programmiersprachen sehr unterschiedlich. Cout für Ausgaben und cin für Eingaben gehören zu C++. In reinem C verwendet man u.a. printf- und scanf-funktionen. In grafischen Benutzeroberflächen müssen (üblicherweise) darzustellende Werte an Objekte übergeben werden. Das Beispiel ist ein sogenanntes Konsolen-Programm. Die Darstellung erfolgt in einem Textfenster oder unmittelbar auf dem Bildschirm, im Gegensatz zu einem graphischen (GUI-) Programm. Im Beispiel wird der Text Hello World! auf dem Bildschirm ausgegeben. Die Ausgabe von endl bewirkt einen Übergang in die nächste Zeile. Aller ausführbarer Programm-Code befindet sich in C/C++ in Funktionen. Im Beispiel gibt es nur die Funktion main, die in diesem Fall keine Übergabeparameter in () benötigt und einen int-wert als Resultat zurückliefert. Die Bestandteile, der Body (Körper) einer Funktion steht innerhalb geschweifter Klammern. Die Funktion main ist gewissermaßen der Hauptteil eines Programms und wird als erstes aufgerufen. Der Rückgabewert kann als Fehlerkennzeichnung verwendet werden. Der Wert 0 gilt als fehlerfrei ausgeführt. Am Anfang eines Programm-Codes findet man meist spezielle Compiler-Direktiven. Mit diesen wird dem Compiler mitgeteilt, wie er arbeiten soll. Im Beispiel oben wird die iostream-bibliothek eingebunden wg cout - und der Namensraum std ohne explizite Angabe genutzt ebenfalls wg cout. Es ist üblich Programm-Code gut lesbar zu schreiben. Zwingend nötig ist dies in C bzw. C++ nicht. Das Programm oben hätte man auch in eine einzige Zeile und weitgehend ohne Leerzeichen schreiben dürfen (ausgenommen die Prozessor-Direktive in der ersten Zeile). #include <iostream> using namespace std;int main()cout<<"hello World!"<<endl;return 0; Es gibt aber keine festen Regeln für die Schreibweise. Solange der Compiler Schlüsselwörter, Namen u.a. identifizieren kann, sind Leerzeichen, Tabulatoren oder Zeilenwechsel funktional bedeutungslos. Sie können aber die Lesbarkeit verbessern. Leerzeichen etc. werden in C/C++ als white space bezeichnet.

16 Haase, Grundlagen der Software-Entwicklung 16 Normalerweise sollten Programme in textueller Form kommentiert werden. Außer bei trivialen Programmen kann man aus dem Programm-Code allein unmöglich oder allenfalls mühsam den Zweck einzelner Anweisungen verstehen. In /C/C++ werden Kommentare in den Programm-Code eingestreut und für den Compiler in besonderer Weise als Kommentar gekennzeichnet. Die älteste Form, der C-Kommentar, verwendet die Zeichenfolge /* als Anfang eines Kommentars und die Zeichenfolge */ als Ende des Kommentars. Der komplette Text dazwischen hat für den Compiler keine Bedeutung. Er darf sich auch über mehrere Zeilen erstrecken. In C++ trat ein weiterer Kommentar hinzu. Er beginnt mit der Zeichenfolge // und geht bis zu Ende der Zeile. /* dies ist ein einzeiliger Kommentar */ /* dies ist ein mehrzeiliger Kommentar */ // und hier ein Kommentar bis zum Ende der Zeile

17 Haase, Grundlagen der Software-Entwicklung Variablen Sinnvolles Programmbeispiel Umrechnung von Celsius-Temperaturen in Fahrenheit-Temperaturen. #include <iostream> using namespace std; int main() double tc, tf; cout << "Celsius 2 Fahrenheit\n"; cout << "Enter C: "; cin >> tc; tf = 1.8 * tc ; cout << tc << "C = " << tf << "F" << endl; return 0; Variablendeklarationen bestehen aus der Angabe des gewünschten Datentyps z.b. double und einem Namen für die Variable z.b. tc. Mehrere Variablen können gleichzeitig - durch Komma getrennt deklariert werden z.b. double tc, tf. Jede Deklaration muss mit einem Semikolon abgeschlossen werden. Die Namen von Variablen müssen mit einem Buchstaben (oder einem Unterstrich) beginnen, gefolgt von beliebig vielen weiteren Buchstaben, Ziffern und Unterstrichen. Groß- und Kleinbuchstaben sind in C/C+ + verschiedene Zeichen (anders als beispielsweise in Pascal oder Strukturiertem Text). VA und Va sind in C/C++ also die Namen von 2 verschiedenen Variablen. Einige Namen sind für die Programmiersprache reserviert z.b. using, return oder die Bezeichner für die Standard-Datentypen int, char, double etc. Variablennamen sollten aussagekräftig gewählt werden. Also eher TempC und TempF statt tc und tf oder sogar temperaturcelsius und temperaturfahrenheit. Häufig wird jedes Teilwort (evtl. außer dem ersten) in einem Variablennamen mit einem Großbuchstaben geschrieben z.b. temperaturmessungpt100incelsius genannt Camel Notation. Eine andere häufig verwendete Methode stellt jeder Variablen einen typabhängigen Präfix voran. Integer- Variablen erhalten ein vorangestelltes n, Variablen vom Typ double wird ein d vorangestellt. int double nanzahl; dtemperatur; Hier spricht man von der Ungarischen Notation (Hungarian Notation), benannt nach dem Microsoft Programmierer Charles Simonyi. Beispiel C2F Beispiel F2C Beispiel SquareRoot Initialisierung Häufig sollen Variablen schon von Anbeginn festgelegte Werte besitzen, initialisiert werden. Für das

18 Haase, Grundlagen der Software-Entwicklung 18 Programmbeispiel oben Umrechnung von Celsius-Temperaturen in Fahrenheit-Temperaturen sind folgende initialisierte Variablen denkbar. double scalec2f = 1.8; double offsetc2f = 32.0;... tf = scalec2f * tc + offsetc2f; Erforderlichenfalls können solche Variablen auch noch als Konstante also unveränderlich definiert werden. const double scalec2f = 1.8; const double offsetc2f = 32.0; Solche initialisierten und unveränderlichen Variablen können durch gut gewählte Namensgebung zum Verständnis eines Programms beitragen. Werden in einem Programm häufig Umrechnungen von Bogenmaß zu Winkelmaß und umgekehrt benötigt, so sind folgende Variablen praktisch. const double Pi = ; const double Radiant2Angle = 180.0/Pi; const double Angle2Radiant = Pi/180.0;

19 Haase, Grundlagen der Software-Entwicklung Einfache Anweisungen Die typischen Aufgaben von Programmen sind Berechnungen irgendwelcher Art. Programm-Code hat daher eine gewisse Ähnlichkeit mit mathematischen Gleichungen. KreisUmfang = 2 * Pi * Radius; KreisUmfang, Radius und wohl auch Pi sind die Namen von Speicherplätzen oder Variablen. Die Gleichung verwendet die bereits vorliegenden Werte für Pi und Radius zur Berechnung des Kreisumfangs. Das Ergebnis wird in der Variablen KreisUmfang abgelegt. Betrachtet man solche einfachen Anweisungen an der Stelle des Gleichheitszeichens geteilt, so findet man auf der rechten Seite ein Rechenvorschrift bestehend aus Konstanten und Werten aus Variablen verknüpft durch mathematische Operationen. Die linke Seite vom Gleichheitszeichen besteht lediglich aus dem Namen einer einzelnen Variablen in der das Resultat abgelegt werden soll. Das Gleichheitszeichen entspricht also nicht dem Gleichheitszeichen der Mathematik sondern bedeutet eine Wertzuweisung. Deshalb ist X = X + 1 eine sinnvolle Anweisung. Mathematisch betrachtet wäre es sinnlos. Jedoch als programmierte Anweisung bedeutet es ein Inkrementieren (um 1 erhöhen) der Variablen X. In C/C++, aber auch in vielen anderen modernen Programmiersprachen, muss jede Anweisung mit einem Semikolon abgeschlossen werden. Dies hilft dem Compiler bei der Arbeit. Der rechtsseitige Ausdruck muss alle mathematischen Operationen explizit angeben. Die in der Mathematik übliche und unmissverständliche Schreibweise KreisUmfang = 2 Pi Radius; ist nicht zulässig und ergibt eine Fehlermeldung durch den Compilers Operatoren Neben den gängigen Operatoren Plus (+), Minus (-), Mal (*) und Geteilt (/) gibt es eine Vielzahl weiterer Operatoren. Da es nicht genügend Tasten auf der Tastatur für alle mathematischen Operatoren gibt, werden einige Operatoren durch 2 ohne Leerzeichen aufeinanderfolgende Zeichen dargestellt z.b. die Vergleichsoperation auf größer oder gleich wird >= geschrieben. In der Mathematik haben Operatoren eine Rangfolge Punktrechnung geht vor Strichrechnung. Schon im Beispiel der Konvertierung von Celsius nach Fahrenheit wurde diese Vorrangregel ohne Erwähnung benutzt. Bei C/C++ (und bei fast allen anderen Programmiersprachen) gelten die normalen mathematischen Vorrangregeln. Die Operatoren legen auch die Ergebnisdatentypen fest. Meist sind es die gleichen Datentypen wie die Operanden. In sind 1 und 2 Ganzzahlen. Daher wird auch das Ergebnis ganzzahlig sein. Eine Überraschung gibt es bei der ganzzahligen Division. 5 / 2 ist nicht etwa 2.5 sondern 2. Auch hier ist das Resultat ganzzahlig

20 Haase, Grundlagen der Software-Entwicklung 20 und es wird nach unten abgerundet. C/C++ kennt eine Vielzahl von speziellen Operatoren, die in anderen Programmiersprachen nicht zu finden sind.???? reichlich Klammern verwenden Ausführungspriorität Aus

21 Haase, Grundlagen der Software-Entwicklung Typkonvertierung Für gelegentlich notwendige Umwandlungen von einem Datentyp in einen anderen gibt es in C/C++ sogenannte Type Casts. Die möglichen Umwandlungen sind allerdings beschränkt. Man kann eine Ganzzahl in eine Fließkommazahl wandeln da hierbei kein Stellenverlust eintritt. Umgekehrt kann man aber eine Fließkommazahl nicht in eine Ganzzahl konvertieren, weil hierbei der Nachkommateil abgeschnitten wird. Für einen Type Cast verwendet man in C den Datentyp in Klammern vorangestellt, z.b. adouble = (double)anint; anunsignedshort = (unsigned short)asignedshort; In C++ kann ein Type Cast auch wie eine Funktion geschrieben werden. Allerdings geht dies nur mit Datentypen die aus einem einzelnen Schlüsselwort bestehen, also nicht als unsigned int (). adouble = double(anint); asignedshort = short(anunsignedshort); Beispiel TypeCast Eine andere wichtige Anwendung werden Type Casts im weiteren Verlauf bei Zeigern finden.

22 Haase, Grundlagen der Software-Entwicklung Felder Häufig müssen mehrere gleichartige Werte (vom gleichen Datentyp) zusammengehalten werden. Vektoren oder Matrizen sind gängige Beispiele. Aber auch zeitlich aufeinanderfolgende Messwerte können etwa für eine Mittelwertbildung zusammengehalten werden. Für derartige Zwecke verwendet man ein- oder mehrdimensionale Arrays / Felder Deklaration Die Deklaration von Feldern erfolgt in C/C++ mit angehangenen eckigen Klammern und der Dimensionsangabe darin. double Vector[3]; // Vektor der Dimension 3 double Matrix[3][4]; // 3x4-Matrix Initialisierung Felder können auch initialisiert werden. double Rotation2D90Grad[2][2] = 0.0, -1.0, 1.0, 0.0 ; double Rotation2D90Grad[2][2] = 0.0, -1.0, 1.0, 0.0 ; // alternativ Die Initialisierungswerte werden durch Kommas getrennt in geschweiften Klammern geschrieben. Bei mehrdimensionalen Feldern kann man die Zeilen jeweils nacheinander in geschweiften Klammern schreiben. Hier wird berücksichtigt, dass die Elemente einer Matrix in C/C++ (und den meisten anderen Programmiersprachen, jedoch nicht in FORTRAN) zeilenweise gespeichert werden. Es wächst also der letzte Index zuerst. Beispiel Array Ein Feld kann auch durch Angabe seiner Elemente in der Initialisierung dimensioniert werden. double Messung[] = 1, 2, 3 ; // Feld mit 3 Werte initialisert Die Dimensionsangabe darf hier entfallen. Umgekehrt kann man ein Feld auch nur teilweise initialisieren. double Messung[5] = 1, 2 ; // Feld mit 5 Elementen Hier werden nur die ersten beiden Elemente explizit initialisiert mit 1 und 2. Die übrigen 3 Elemente werden vom Compiler automatisch mit 0 initialisiert. Die Dimensionsangabe ist hier natürlich nötig. Wenn in der Initialisierung zu viele Werte angegeben werden, erfolgt eine Fehlermeldung beim Übersetzungsvorgang durch den Compiler. double Messung[3] = 1, 2, 3, 4, 5 ; // falsch

23 Haase, Grundlagen der Software-Entwicklung Verwendung Die Indizierung der Feldelemente erfolgt in C/C++ immer mit 0 beginnend. Auch hier dienen die eckigen Klammern zur Kennzeichnung. double Messung[3]; // Feld für 3 Messwerte In diesem Feld gibt es die Feldelemente Messung[0], Messung[1] und Messung[2]. Insbesondere beachte man, es gibt kein Feldelement Messung[3]. Ein Zugriff auf ein solches nicht existierendes Element ist einer der beliebtesten Fehler, oftmals mit katastrophalen Folgen. Messung[0] = 1.1; Messung[1] = 2.2; Messung[2] = 3.3; Mittelwert = ( Messung[0] + Messung[1] + Messung[2] ) / 3; Statt einen Index unmittelbar als Zahl anzugeben, kann er auch berechnet werden. Es sei N = 1 der Wert einer ganzzahligen Variablen. Dann wird mit Messung[N+1] wird auf das letzte Element Messung[2] zugegriffen. Auch in diesen Fällen achte man darauf, nicht versehentlich auf nicht existierende Feldelemente zuzugreifen. Unsinnige Resultate oder sogar Software-Abstürze sind die Folge Zeichenfelder Sehr häufig werden Felder gebraucht, die Zeichenfolgen enthalten - character arrays. In ihnen können dann Text, Namen, Bezeichnungen etc. in lesbarer Form gespeichert werden. Man sagt statt Zeichenfolge auch String. Aber diese sollten nicht mit dem C++ Datentyp string verwechselt werden. C besitzt für Zeichenfolgen eine spezielle Regel. Die verwendeten Felder sind normalerweise größer als nötig, oftmals erheblich größer. Der enthaltene Text beginnt auf dem Element mit dem Index 0 und hinter dem letzten Element des Textes wird ein Zeichen mit dem binären Wert 0 eingetragen. char VorName[50] = "Tobias"; Hier wird ein Zeichenfeld mit dem Variablennamen VorName definiert. Es besteht aus 50 Speicherplätzen vom Typ char und es wird mit der Zeichenfolge "Tobias" initialisiert. Zeichenfolgen-Konstanten, auch String-Konstanten genannt, werden in doppelten Anführungszeichen eingeschlossen. Die Anführungszeichen gehören nicht zu der Zeichenfolge, sondern sind lediglich ein Hinweis an den Compiler. Die Zeichenfolge "Tobias" besteht aus 6 Zeichen, die in den Feldelementen VorName[0] bis VorName[5] eingetragen sind. In dem Element VorName[6] wird der Wert 0 eingetragen als Kennzeichen für das Ende der Zeichenfolge. Da ein solches 0-Zeichen in jeder Zeichenfolge als Endekennzeichen notwendig ist, kann in einem Zeichenfeld von 50 Elementen wie VorName[50] maximal ein Text/Name bestehend aus 49 Zeichen vorliegen. Auch bei der Definition von Zeichenfolgen kann man dem Compiler die Ermittlung der Feldgröße überlassen. char VorName[] = "Tobias"; In diesem Fall wird der Compiler das Feld VorName auf 7 char festlegen, 6 für den Namen Tobias und ein weiteres für das abschließende 0-Zeichen. Beispiel Char

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

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

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

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

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

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

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

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

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

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

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

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

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

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

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

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

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

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

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) 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

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

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

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

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende. PROGRAMMIEREN IN C - EIN KURZÜBERBLICK 1 Programmieren in C -- ALLE Programmiersprachen sind HÄSSLICH -- Die einfachste Programmstruktur: main () -- was zu tun ist --- Vorgeordnete Definitionen: # include

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

Kurzeinführung in C. Johannes J. Schneider 27.10.2004

Kurzeinführung in C. Johannes J. Schneider 27.10.2004 Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung

Mehr

Kurzeinführung in C++

Kurzeinführung in C++ Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber

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

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

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

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

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

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

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

Mehr

Kapitel 3. Mein erstes C-Programm

Kapitel 3. Mein erstes C-Programm Kapitel 3 Mein erstes C-Programm 1 Gliederung Kapitel 3 Mein erstes C-Programm 3.1 Einleitung 3.2 Mein erstes C-Programm 3.3 Zusammenfassung 2 Problem Algorithmus Mittelwert für Messwerte berechnen DGL

Mehr

MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr. 439.026 SS2007 1 INSTITUT FÜR ELEKTRONIK BIT

MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr. 439.026 SS2007 1 INSTITUT FÜR ELEKTRONIK BIT MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG BIT LV-Nr. 439.026 SS2007 1 Datendefinitionen b) Unterteilung nach Typen: (Teil 2) void leer Pointer 2/4 Bytes Adresse von Objekten Arrays bei allen Datentypen

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

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

Mehr

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

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten

Mehr

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R.

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

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

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

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Eine Einführung in C-Funktionen

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

Mehr

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

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

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

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 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen

Mehr

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes

Mehr

Einführung in die Programmierung Wintersemester 2011/12

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

Mehr

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)

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

C Überlebenstraining

C Überlebenstraining C Überlebenstraining Dies ist nur ein Schnellkurs in C, der genug Einstiegswissen vermitteln soll, daß weiterführende Literatur schnell benutzt werden kann. Dies ist kein vollständiger Programmier oder

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

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

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

Mehr

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

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

Mehr

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

Grundlagen von C. Ausarbeitung von Jonas Gresens

Grundlagen von C. Ausarbeitung von Jonas Gresens Grundlagen von C Ausarbeitung von Jonas Gresens 1 Allgemein Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

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

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

Mehr

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

Die einfachsten Anweisungen

Die einfachsten Anweisungen 2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

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

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

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

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

Mehr

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

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

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

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

Mehr

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

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

Logische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB.

Logische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB. Logische Verknüpfungen. while-schleifen. Zahlarstellung auf dem Computer. Formatierung von Zahlen in MATLAB. Logische Verknüpfungen In der letzten Sitzung haben wir kennengelernt, wie wir Zahlen mit Operationen

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

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

Mehr

Prinzipien der Softwareentwicklung S. Strahringer

Prinzipien der Softwareentwicklung S. Strahringer Gliederung 1 Einführung Was ist ein Programm? Vorteile (und Nachteile) von PHP Erste PHP-Programme Ausführung von PHP-Programmen 2 Grundbegriffe der Programmierung Anweisungen, Variablen, Datentypen und

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

Grundlagen von C# - 1

Grundlagen von C# - 1 Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

Sprachbeschreibung und Erweiterung

Sprachbeschreibung und Erweiterung Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

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

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die

Mehr

Grundlagen der Programmierung

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,

Mehr

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

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

Mehr

Softwareentwicklung 1. Übungsaufgabe 4 Kontrollstrukturen

Softwareentwicklung 1. Übungsaufgabe 4 Kontrollstrukturen Softwareentwicklung Übungsaufgabe 4 Kontrollstrukturen Wintersemester 2006/2007 Prof. Dr. rer.nat. Richard Alznauer Dipl.-Ing. (FH) Joachim Hampel Dipl.-Ing. (FH) Marc Jüttner Version.0.., 2. Dezember

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen

Mehr

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

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

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

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

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

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

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

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

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 Rückblick Schleifen while do-while for Methoden Verfahren: Intervallschachtelung 2 Wo

Mehr

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

6. Bearbeitung von Strings in C Bearbeitung von Strings in C Bearbeitung von Strings in C 6-1 Definition des String: 6. Bearbeitung von Strings in C Zeichenstrings werden als Felder von Zeichen abgespeichert: char [ ] ; Wie die Daten (Zeichenfolge)

Mehr