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

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

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

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt 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 Wiederholungen - while - do-while - for

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Eine Einführung in C-Funktionen

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

Mehr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kapitel 1: Einführung

Kapitel 1: Einführung 10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was

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

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

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

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

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

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

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

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

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

Linux Tutorium. 12. Shellprogrammierung. Version vom 02.07.2008 13:38:56

Linux Tutorium. 12. Shellprogrammierung. Version vom 02.07.2008 13:38:56 Linux Tutorium 12. Shellprogrammierung Version vom 02.07.2008 13:38:56 im Grunde ist ein Shell-Skript nichts anderes als eine Textdatei, welche Befehlsfolgen enthält Shell-Skripte werden im Wesentlichen

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte

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

Vorlesung 2: Programmieren mit C

Vorlesung 2: Programmieren mit C Vorlesung 2: Programmieren mit C URL zur Lehrveranstaltung http://www.fbmnd.fh-frankfurt.de/~raimann Folien zur Vorlesung, Übungsaufgaben,... Dr. J. Raimann 1 Dev C++ Kostenlose C/C++-Entwicklungsumgebung

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

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

Gliederung Programmiersprachen. Programmiersprachen Einführung in C. Kontrollstrukturen. Verzweigung mit IF. Beispiel: Zahlenklassifizieren

Gliederung Programmiersprachen. Programmiersprachen Einführung in C. Kontrollstrukturen. Verzweigung mit IF. Beispiel: Zahlenklassifizieren Programmiersprachen Einführung in C Teil 5: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen

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

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

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

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe

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

Inhalt. 4.7 Funktionen

Inhalt. 4.7 Funktionen Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 19.12.2012 IAM Institut für Angewandte Mathematik Funktionszeiger: Vorüberlegungen Funktionsaufrufe sind bis jetzt im Code mit Name explizit angegeben

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

2.4 Das erste C++-Programm *

2.4 Das erste C++-Programm * 2.4 Das erste C++-Programm * 11 2.4 Das erste C++-Programm * Den besten Lernerfolg erzielen Sie, wenn Sie alle Beispiele dieses Buchs selbst nachvollziehen. Sie können hierzu einen Compiler verwenden,

Mehr

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11

Mehr

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

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

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

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr