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

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

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

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

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

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

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

Mehr

Einführung in die C-Programmierung

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

Mehr

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

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

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

Mehr

Programmierkurs Java

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

Mehr

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

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

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

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

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

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

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

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

Einführung in die Programmierung

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

Mehr

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

Übungen zu C++ Kapitel 1

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

Mehr

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

1 Vom Problem zum Programm

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

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Übung 9 - Lösungsvorschlag

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

Mehr

Übersicht Programmablaufsteuerung

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

Mehr

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

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

Mehr

Computerarithmetik ( )

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

Mehr

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

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

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

Zahlensysteme: Oktal- und Hexadezimalsystem

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

Mehr

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

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

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

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

FB Informatik. Fehler. Testplan

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

Mehr

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

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

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

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

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

Mehr

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

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

Mehr

Einführung in die Programmierung (EPR)

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

Mehr

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

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

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10 Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754 Berechnung von Gleitkommazahlen aus Dezimalzahlen Die wissenschaftliche Darstellung einer Zahl ist wie folgt definiert: n = f * 10 e. f ist

Mehr

Modellierung und Programmierung 1

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

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

25 kann ohne Rest durch 5 geteilt werden! ist wahr

25 kann ohne Rest durch 5 geteilt werden! ist wahr Lehrbrief 2: Lektion 8 - C -Praxis 4-1 - 5.2 Einfache Entscheidungen mit if und die Vergleichsoperatoren Nun tauchen wir immer tiefer in die Geheimnisse von C ein und beschäftigen uns mit einem sehr wichtigen

Mehr

Einführung in die Java- Programmierung

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

Mehr

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Zahlensysteme. Zahl 0 0 0 0 0 5 5. Stellenwert Zahl 0 0 0 0 0 50 5. Zahl = 55 +50 +5

Zahlensysteme. Zahl 0 0 0 0 0 5 5. Stellenwert Zahl 0 0 0 0 0 50 5. Zahl = 55 +50 +5 Personal Computer in Betrieb nehmen 1/6 Weltweit setzen die Menschen alltäglich das Zehnersystem für Zählen und Rechnen ein. Die ursprüngliche Orientierung stammt vom Zählen mit unseren 10 Fingern. Für

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Zahlensysteme und Datendarstellung Zahlensysteme Problem: Wie stellt man (große) Zahlen einfach, platzsparend und rechnergeeignet

Mehr

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

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

Mehr

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

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

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

Mehr

Kontrollstrukturen - Universität Köln

Kontrollstrukturen - Universität Köln Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,

Mehr

Einführung in die Programmierung

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

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

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

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

Mehr

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

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

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

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

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

Mehr

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

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

Mehr

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

Programmierung in C. Grundlagen. Stefan Kallerhoff

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

Mehr

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

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation

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

Vorkurs C++ Programmierung

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

Mehr

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

1.4.12 Sin-Funktion vgl. Cos-Funktion

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

Mehr

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

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

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

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

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

VisualBasic - Variablen

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

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Binäre Gleitkommazahlen

Binäre Gleitkommazahlen Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72

Mehr

Primzahlen und RSA-Verschlüsselung

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

Mehr

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Hochschule München, FK 03 SS 2014 Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Zulassung geprüft: (Grundlagenteil) Die Prüfung ist nur dann gültig, wenn Sie die erforderliche Zulassungsvoraussetzung

Mehr

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

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

Mehr

Grundlagen der Software-Entwicklung GSE

Grundlagen der Software-Entwicklung GSE 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

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort: Tangentengleichung Wie Sie wissen, gibt die erste Ableitung einer Funktion deren Steigung an. Betrachtet man eine fest vorgegebene Stelle, gibt f ( ) also die Steigung der Kurve und somit auch die Steigung

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

C/C++ Programmierung

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

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

Klausur in Programmieren

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

Mehr

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

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

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

Mehr

Einführung in die Programmierung

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik

Mehr