Skript. Skript zur Vorlesung Prof. Dipl.-Ing. Ulrich Thalhofer. Ingenieurinformatik Grundlagen der Programmierung in C++ WS10/11

Größe: px
Ab Seite anzeigen:

Download "Skript. Skript zur Vorlesung Prof. Dipl.-Ing. Ulrich Thalhofer. Ingenieurinformatik Grundlagen der Programmierung in C++ WS10/11"

Transkript

1 Skript Skript zur Vorlesung Prof. Dipl.-Ing. Ulrich Thalhofer Ingenieurinformatik Grundlagen der Programmierung in C++ WS10/11 Prof. Dipl.-Ing. Ulrich Thalhofer Telefon Fax

2

3 1 Einführung Der Computer ist eine Maschinerie, die in 2 Sekunden ebenso viele Fehler machen kann wie 50 Leute in 200 Jahren, wenn sie Tag und Nacht arbeiten würden! Dieses Zitat aus unbekannter Quelle soll Sie nicht abschrecken, denn wir lernen bekanntlich ja alle vor allem aus Fehlern! Sie haben sich als Maschinenbaustudent sicherlich schon die Frage gestellt, warum denn nun gerade Sie das Programmieren lernen sollen. Es gibt ja schließlich Informatiker, deren Lebensaufgabe darin besteht Programme zu erstellen, die vom nicht programmierenden Teil der Bevölkerung verwendet werden können. Wozu also das Ganze, wozu die Mühe? Mir fallen auf diese Frage nur zwei Antworten ein: Wir arbeiten alle mit Produkten der EDV, vielleicht kann es ja gar nicht schaden etwas hinter die Kulissen zu schauen und etwas mehr Verständnis für dieses moderne Werkzeug zu bekommen. Das hat Sie noch nicht überzeugt? Dann lassen Sie es mich mit Antwort 2 probieren: Wer programmiert, lernt strukturiert zu denken. Wenn Sie das auch noch nicht auf meine Seite gebracht hat, dann noch eine Antwort, die nicht ganz offiziell ist, weil sie als Frage formuliert ist: Vielleicht macht es Ihnen ja auch irgendwann Spaß? Ich wünsche Ihnen in diesem Semester (und natürlich auch später) viel Erfolg und Spaß beim Programmieren! Und nicht vergessen: Aller Anfang ist schwer! 1.1 Die Stufen der Programmierung Alle Programme, die Sie am Computer verwenden (von Textverarbeitung über CAD bis zum Computerspiel) sind von Menschen erstellt worden. Das ist auch der Grund dafür, dass sie fehlerhaft sind! Leider versteht der Computer noch nicht Umgangssprache. Sein Wortschatz ist begrenzt, sehr begrenzt! Er kennt nur die beiden Zustände 1 und 0 oder ein und aus oder wahr oder falsch oder schwarz oder weiß. Wahrscheinlich fallen Ihnen noch mehr Wortpaare ein (gut und böse, Student und Dozent?). Hält man sich jedoch an ein paar Regeln, sogenannte Syntaxregeln, dann klappt die Verständigung. Man nennt das dann eine höhere Programmiersprache, wie z.b. C++. Der Computer kann diese Formulierungen in einfache Anweisungen übersetzen, die speziell auf seine Möglichkeiten zugeschnitten sind. Man nennt das dann Maschinenbefehle, die innerhalb von Prozessorfamilien gleich sind. Als Mensch, besonders als Programmierer kann man diese Kommandos immer noch verstehen und bezeichnet dies als Assembler. Daraus wird dann zuletzt eine Folge von Nullen und Einsen, die sogenannte Maschinensprache, die allerdings für Nichtcomputer so schwer verständlich ist wie Nieselregen für einen Bewohner der afrikanischen Dürrezone. Im nachfolgenden Bild ist dieser Sachverhalt nochmals dargestellt. Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript01(2008/10/06) Kapitel 1 Seite 1

4 Höhere Programmiersprache Assembler Maschinensprache (problemorientiert) (maschinenorientiert) c = a + b; load a add b store c Höhere Programmiersprachen gibt es sehr viele. Die nächste Darstellung zeigt die Entwicklung der Programmiersprachen auf. ALGOL Fortran Pascal BASIC C PL/I Smalltalk COBOL C++ JAVA Die drei folgenden Programme summieren sechs Zahlen. Program Test; Var i : Integer; a, summe : Real; Begin summe := 0; For i:= 1 To 6 Do Begin ReadLn (a); summe := summe + a; End; WriteLn ('Summe : ', summe:10:2); End. Programm 1.1 Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript01(2008/10/06) Kapitel 1 Seite 2

5 SUMME = 0 FOR K = 1 TO 6 INPUT A SUMME = SUMME + A NEXT K PRINT Summe : ; SUMME END Programm 1.2 #include <iostream> using namespace std; int main () { int i; double summe = 0, a; for ( i = 0; i<6; i++){ cin >> a; summe += a; cout << Summe: << summe; return 0; Programm 1.3 Das erste Programm ist in Pascal, das zweite in BASIC und das dritte in C++ programmiert. Ähnlichkeiten mit anderen Programmiersprachen sind nicht zufällig. Irgend jemand hat einmal die Äußerung gemacht, dass C++-Programme so aussehen, wie wenn beim Ausdruck der Drucker unterschiedliche und falsche Zeichen und davon auch nicht alle auf das Papier bringt. C++ ist besser als sein Vorgänger C (hieß ganz früher auch B und noch früher A). ++ bedeutet auch um eins mehr, also C = C+1. C++ ist schwerer zu erlernen als manch andere Sprache und man kann auch leichter Fehler einbauen, die schwer zu finden sind. Warum verwenden wir dann diese Programmiersprache? Die Vorteile sind folgende: weit verbreitet in der Praxis universell einsetzbar schnell standardisiert (hardwareunabhängig) objektorientiert Über die zu verwendende Programmiersprache haben wir uns also geeinigt. Wie erstellt man aber nun ein Computerprogramm? Dazu braucht man einen Editor, einen Compiler und einen Linker. In diesem Skript wird Dev-C++ Version ( verwendet und darin finden sich alle obengenannten Werkzeuge oder Tools, wie man sagt. Der generelle Ablauf sieht so aus: Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript01(2008/10/06) Kapitel 1 Seite 3

6 Erzeugung eines lauffähigen Programmes Problembeschreibung Modellbildung (Entwurf von Datenstrukturen und Algorithmen) Editor (Quellcode) Quellprogramm editieren Compiler (Objektcode) Compilieren (Übersetzen) Fehlerkorrektur/ Vervollständigung Linker (executable) Linken (Binden der Objektprogramme) Ausführen und Testen Fertiges Programm Die Zeit, die auf Fehlerkorrekturen verwendet wird, sollte nicht unterschätzt werden. Auch wenn das Programm läuft, heißt es noch nicht, dass es auch richtig funktioniert. Konkret verläuft die Programmerstellung mit Dev-C++ so ab: Datei Neu Quelldatei Programm eintippen Ausführen Kompilieren+Ausführen Und nicht vergessen: Ab und zu das Erarbeitete sichern! Leider schließt das Programm automatish das DOS-Fenster, in dem das Ergebnis des Programms angezeigt wird. Deshalb sollten in die Datei folgende Zeilen aufgenommen werden: #include <iostream> using namespace std; int main () { // hier stehen die // Anweisungen des Programms system ( pause ); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript01(2008/10/06) Kapitel 1 Seite 4

7 Sollten Sie lieber den Visual C++-Compiler (Version 6.0) von Microsoft verwenden, so sind folgende Schritte zur Programmerstellung nötig: Visual C++ starten Neue CPP-Datei erstellen: Datei > Neu Dateien: C++-Quellcodedatei Datei speichern: Datei > Speichern (z.b. uebung1.cpp) Wichtig: In Ihrem Ordner speichern!! Programm eintippen und speichern Datei kompilieren: Erstellen > Kompilieren von uebung1.cpp Meldung: Der Befehl Erstellen erfordert... > ja Programm ausführen: Erstellen > Ausführen von uebung1.exe Das Grundgerüst sieht dann etwa so aus: #include <iostream> //falls benötigt int main () { // hier stehen die // Anweisungen des Programms return 0; Die include-datei (wird im nächsten Kapitel erklärt) kann als iostream oder iostream.h geschrieben werden. Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript01(2008/10/06) Kapitel 1 Seite 5

8 2 Programmaufbau Beispiel: #include <iostream> using namespace std; int main () { // Einbindung Ein- und // Ausgabefunktionen // legt Standardbereich fest // Beginn des Hauptprogramms /* Berechnung von Umfang und Fläche eines Kreises Erstellt von: am: */ const float PI = ; float radius, flaeche, umfang; cout << "Eingabe Radius: "; cin >> radius; flaeche = radius * radius * PI; umfang = 2 * radius * PI; cout << "Fläche: " << flaeche << endl; cout << "Umfang: " << umfang << endl; system ("pause"); return 0; // konstante Werte // variable Werte // Eingabe // Berechnung // Ausgabe // hält DOS-Fenster offen // Ende des Programms Header-Datei #include <iostream> using namespace std; der Inhalt der Datei iostream.h wird eingefügt Bibliothek mit Definitionen iostream.h: cin, cout Der namespace (Bereich) wird auf Standard eingestellt. main int main () { return 0; // hier beginnt der Computer zu arbeiten // hier endet das Programm Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript02(2006/10/05) Kapitel 2 Seite 1

9 Kommentar nicht nötig, aber sehr nützlich ein Kommentar wird vom Computer nicht beachtet Beispiele: /* Dies sind Infos für den Programmierer. */ y = sqrt(x); // Vorsicht bei negativen x-werten! Konstante const float PI = ; float: Datentyp PI : Bezeichner : Wert ein konstanter reeller Wert mit Namen PI und dem Wert 3,1416 kann im Programm nicht auf einen anderen Wert gesetzt werden Variable float radius; float: Datentyp radius: Bezeichner eine Variable mit Namen radius (kein Wert zugewiesen) float radius = 0; (mit Wertzuweisung) Bezeichner Groß- und Kleinschreibung wird unterschieden Länge des Bezeichners vom verwendeten C++-Compiler abhängig (meist 32 Zeichen signifikant) erstes Zeichen muss Buchstabe sein Sonderzeichen (!, $, ä, +, Leerzeichen,...) nicht erlaubt zulässig: h2s04, uebung1, uebung_1 unzulässig: 1a, V2A-Stahl, main, Übung13, uebung 1 Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript02(2006/10/05) Kapitel 2 Seite 2

10 Block int main () { //ein Block in geschweiften Klammern return 0; geschweifte Klammern fassen Anweisungen zusammen Anweisungen enden mit einem ; z.b.: summe = f1 + f2; a = 3.4; cout << "hallo"; Ein-/Ausgabe #include <iostream.h> cout << "Eingabe Radius:"; Oder: cout << "Eingabe Radius:" << endl; //neue Zeile cin >> radius; ACHTUNG: bei cin können nur Variable stehen!! FALSCH: cin >> radius >> endl; cin >> "hallo"; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript02(2006/10/05) Kapitel 2 Seite 3

11 Übungsaufgaben: Aufgabe 2.1: Schreiben Sie jeweils ein C++-Programm, das die Temperatur in Grad Celsius einliest, die entsprechende Temperatur in Grad Fahrenheit errechnet und ausgibt. die umgekehrte Umrechnung ausführt. Formel: fahrenheit = 9.0/5.0 celsius ; Kontrollieren Sie das Ergebnis! Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript02(2006/10/05) Kapitel 2 Seite 4

12 3 Datentypen und Operatoren 3.1 Einfache Datentypen Alle Daten werden vom Computer im Binärformat gespeichert. Damit der Computer weiß, um welche Daten (Zahlen, Texte, logische Größen) es sich handelt,muß ihm der Datentyp mitgeteilt werden Ganze Zahlen Datentyp Anzahl Bits Wertebereich short unsigned short int unsigned int long unsigned long Achtung: Zahlendarstellung kann von Compiler und Rechner abhängen! Bei Bereichüberschreitung keine Fehlermeldung! Dualsystem: = = = = = = Vorzeichenlose Zahlen mit 3 Bit: (2 3 1) Vorzeichenbehaftete Zahlen mit 3 Bits: linksseitiges Bit für Vorzeichen ( 0: positiv, 1: negativ) positive Zahlen: negative Zahlen: Zweierkomplement (alle Bits invertieren, dann 1 adieren) -1 : = Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript03 (2007/03/17) Kapitel 3 Seite 1

13 3.1.2 Reelle Zahlen Datentyp Anzahl Bits Wertebereich Genauigkeit float 32 ± 3, ± 3, double 64 ± 1, ± 1, long double 80 ± 3, ± 3, Achtung: Wertebereich und Genauigkeit sind auch hier rechner- bzw. compilerabhängig! Die Genauigkeit bezieht sich immer auf die Gesamtanzahl der Stellen der Zahl! Sehr kleine und sehr große Zahlen sind nicht darstellbar! Beispiele zur Ein-/Ausgabe: , E2 0, = e-3 0,0034 Beispiel für Berechnung von Genauigkeit und Wertebereich: Zeichen 64 bit: 1 Vorzeichen Bit + 52 Mantisse-Bits , Stellen Genauigkeit 1 Exp. Vorzeichen Bit + 10 Exponenten Bits 2 10 = Buchstaben, Ziffern und Sonderzeichen werden als Zeichen (Character) in einer Tabelle (ASCII-Tabelle) codiert. ASCII = American Standard Code for Information Interchange Beispiel: '0' = 48 '9' = 57 'A' = 65 'a' = 97 'Z' = 90 'z' = 122 Beispiel zur Verwendung von Zeichen in einem Programmteil: char zeichen, x; zeichen = 'a'; x = '8'; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript03 (2007/03/17) Kapitel 3 Seite 2

14 Unterschied zwischen einer Ziffer und einem Zeichen: char zeichen; int zahl; zeichen = '8'; zahl = 8; // char-variable hat den Wert 56 (das // Zeichen '8') gespeichert // int-variable hat den Wert 8 gespeichert Logischer Datentyp Dieser Datentyp kann nur die beiden Werte wahr (true =1) oder falsch (false = 0) annehmen. bool logisch; logisch = 0; // false 3.2 Operatoren Arithmetische Operatoren für ganze Zahlen: + Addition - Subtraktion * Multiplikation / Division für ganze Zahlen (9/5 ergibt 1, da 5 in 9 1-mal enthalten ist) % Modulo (9 % 5 ergibt 4, bei der Ganzzahldivison bleibt ein Rest von 4) für reelle Zahlen: + Addition - Subtraktion * Multiplikation / Division ( 9.0 / 5 ergibt 1.8 ) Auch in C++ gilt: Punkt vor Strich! Soll die Reihenfolge geändert werden, so sind runde Klammern zu verwenden! a = 9.0/5 + 2; // a enthält den Wert 3.8 b = 8.0 / (5-1); // b enthält den Wert 2 C++ - spezifische Operatoren: i++; i--; ++i; --i; i=i+1; i=i-1; i=i+1; i=i-1; Vorsicht bei Verwendung in Kombination mit dem Zuweisungsoperator: i=5; a =++i; // a enthält 6 und i enthält 6 i=5; a=i++; // a enthält 5 und i enthält 6 Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript03 (2007/03/17) Kapitel 3 Seite 3

15 weitere Beispiele: a += 5; a *= 5; a /= 5; usw. a = a+5; a = a*5; a = a/5; Zuweisungsoperator: a = a + 3; // addiere zur Variablen a den Wert 3 und speichere das Ergebnis // in der Variablen a Logische Operatoren a) Vergleichsoperatoren Operator Bedeutung == gleich (identisch) < kleiner <= kleiner gleich > größer >= größer gleich!= ungleich bool x; x = 3.14 > 3; x = 'A' > 'B'; // x enthält den Wert true // x enthält den Wert false b) Verknüpfungsoperatoren Es können nur logische Werte verknüpft werden! Operator Bedeutung && und oder! nicht Ausführungsreihenfolge:! - && - Wahrheitstabellen NICHT true false false true ODER true false true true true false true false UND true false true true false false false false Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript03 (2007/03/17) Kapitel 3 Seite 4

16 Bereichsdarstellung: mathematisch: 0 < a 2 in C++: 0 < a && a <= Standardfunktionen mathematische Funktionen: #include <cmath> hier werden die math. Funktionen definiert Hinweis: in cmath.h ist auch meistens die Konstante π gespeichert (M_PI) y = x ; y = fabs (x); f y = x ; y = pow (x,f); y = x; y = sqrt (x); y = sin x; y = sin (x); x im Bogenmaß für alle trigonometr. Funktionen! y = cos x; y = tan x; y = arcsin x; y = cosh x; y = cos (x): y = tan (x); y = asin (x); y = cosh (x); x y = e ; y = ln x; y = lg x; y = exp (x); y = log (x); y = log10 (x); Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript03 (2007/03/17) Kapitel 3 Seite 5

17 Übungsaufgaben: Aufgabe 3.1 Schreiben Sie ein C++ - Programm, das das bestimmte Integral ox sin ax 2 ( ) cos( ax) ux dx in den Grenzen ux und ox berechnet. Der Parameter a kann frei gewählt werden. Formel zur Berechnung: sin 2 ( ax) sin( ax) 1 ax π dx = + ln tan + cos( ax) a a 2 4 Benötigte mathematische Formeln in C++: mathematisch sin x tan x ln x x tan x C++ (in cmath) sin (x) tan (x) log (x) fabs (x) tan (x) Aufgabe 3.2: Zahlentauschen Schreiben Sie ein C++ - Programm, das 3 ganze Zahlen einliest und in umgekehrter Reihenfolge wieder ausgibt. Beispiel: Eingabe: Ausgabe: Aufgabe 3.3: Wortdrehung Schreiben Sie ein C++ - Programm, das ein Wort mit vier Buchstaben einliest, die Buchstaben verdreht und das gedrehte Wort ausgibt. Beispiel: Eingabe: RABE Ausgabe: EBAR Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript03 (2007/03/17) Kapitel 3 Seite 6

18 Aufgabe 3.4: Datumsformate Schreiben Sie ein C++ - Programm, das eine Datumsangabe in amerikanischer Form ( MM /TT /JJJJ ) einliest Beispiel: 4/2/2001 oder 11/22/1954 in die deutsche Schreibweise ( TT.MM.JJJJ ) umwandelt und ausgibt. Beispiel: oder Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript03 (2007/03/17) Kapitel 3 Seite 7

19 4 Kontrollstrukturen 4.1 Verzweigungen bisher: Ausführung der Anweisungen in sequentieller Reihenfolge Verzweigung: Überspringen von Anweisungen if-anweisung Beispiel zur Berechnung der Quadratwurzel: #include <iostream> #include <cmath> #include <cstdlib> using namespace std; int main () { /* Berechnung der Quadratwurzel bei negativer Zahl erfolgt eine Fehlermeldung */ double x, y; cout << "Zahl eingeben: "; cin >> x; if (x >= 0) { // geschweifte Klammern nur nötig, wenn hier mehr // als eine Anweisung steht y = sqrt(x); cout << "Ergebnis: " << y << endl; else { // geschweifte Klammern hier eigentlich // nicht nötig cout << "Fehler: Negative Eingabe!" << endl; system ("pause"); return 0; allgemeines Schema: if (Bedingung) { Anweisungsteil 1 else { Anweisungsteil 2 Wenn die Bedingung wahr ist, dann wird Anweisungsteil 1 ausgeführt, andernfalls Anweisungsteil 2. Der else-zweig muss nicht vorhanden sein, dann wird die Anweisung nach dem Anweisungsteil 1 ausgeführt, wenn die Bedingung nicht wahr ist. Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 1

20 if-anweisungen dürfen geschachtelt werden: a > 5 ja nein b = 0 0<= c < 10 ja nein ja nein A B C c >= 10 ja D E nein if (a > 5){ if (b == 0){... //A if (b!= 0){...//B if (a <= 5){ if (0 <= c && c < 10){...//C if (c >= 10){...//D if (c < 0){...//E besser mit else: if (a > 5){ if (b == 0){...//A else {...//B else { if (0 <= c && c < 10){...//C else { if (c >= 10) {...//D else {...//E Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 2

21 Achtung: Fehler 1: Nach der Bedingung der if-anweisung darf kein ; stehen FALSCH: if (a < 0) ; else ; Fehler 2: if (a < 0)... else (a>=0) // bei else darf keine Bedingung stehen! Fehler 3: if (a = b)ist falsch und sollte if (a == b) heißen! Auf richtige Klammerung achten: 1. Fall: 2. Fall: if (x == 1) if (y == 1) cout << "x == 1 y == 1"; else // else gehört zu (y == 1) cout << "x == 1 y!= 1"; if (x == 1){ if (y == 1) cout << "x und y sind 1"; else // else gehört zu (x == 1) cout << "x!= 1 y beliebig"; Beispiel 1: Maximum von 2 Zahlen bestimmen #include <iostream> #include <cstdlib> using namespace std; int main () { double d1, d2, max; cout << "2 reelle Zahlen:"; cin >> d1 >> d2; if (d1 > d2) max = d1; else max = d2; cout << "Maximum: " << max; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 3

22 Beispiel 2: Maximum von 3 Zahlen bestimmen #include <iostream> #include <cstdlib> using namespace std; int main () { double d1, d2, d3, max; cout << "3 reelle Zahlen:"; cin >> d1 >> d2 >> d3; if (d1 > d2 && d1 > d3) max = d1; else if (d2 > d1 && d2 > d3) max = d2; else max = d3; cout << "Maximum: " << max; system ("pause"); return 0; Alternative Lösung: #include <iostream> #include <cstdlib> using namespace std; int main () { double d1, d2, d3, max; cout << "3 reelle Zahlen:"; cin >> d1 >> d2 >> d3; max = d1; if (d2 > max) max = d2; if (d3 > max) max = d3; cout << "Maximum: " << max; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 4

23 Übungsaufgaben: Aufgabe 4.1: if-anweisung (Quadratische Gleichung) Schreiben Sie ein C++ - Programm, das die allgemeine quadratische Gleichung löst: ax 2 + bx + c = 0 Dazu sollen die Koeffizienten a, b und c eingelesen und die Lösungen nach der bekannten Formel berechnet werden: x 1/ 2 b ± = 2 b 2a 4ac Hinweise: Benützen Sie die Diskriminante D = b 2 4ac zur Fallunterscheidung Betrachten Sie reelle und komplexe Lösungen Der Sonderfall a = 0 soll abgefangen werden Test: 4 x² - 36 x + 81 = 0; 2 x² + 2 x - 12 = 0; x² - 2 x + 2 = 0; Aufgabe 4.2: Zahlenfolge (if-anweisung) Schreiben Sie ein C++-Programm, das 4 verschiedene Zahlen vom Bildschirm einliest, die größte und die zweitgrößte Zahl bestimmt und am Bildschirm ausgibt. Beispiel: Eingabe: Ausgabe: größte Zahl: 8 Zweitgrößte Zahl: 4 Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 5

24 Bemerkungen: Bestimmen Sie die größte und die zweitgrößte Zahl nicht getrennt, sondern in einer logischen Struktur. Verarbeiten Sie zunächst 2 Zahlen und nehmen Sie die beiden anderen Zahlen einzeln hinzu. Aufgabe 4.3: Ergänzen Sie das Programm aus Aufgabe 4.2 so, daß Sie alle 4 Zahlen nach fallender Größe ausgeben können. Beispiel: Eingabe: Ausgabe: Bemerkung: Der Algorithmus von Aufgabe 4.2 soll dabei so weit wie möglich verwendet werden. Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 6

25 4.1.2 switch-anweisung Verwendung der switch-anweisung: Auswahl mehrerer Möglichkeiten nur Aufzählungstypen (ganze Zahlen, Zeichen) erlaubt keine Bereichsangaben ( 'A' bis 'Z') möglich Beispiel: In einer Variablen tag wird der Wochentag gespeichert. Je nach Inhalt der Variablen (1,2,..,7) soll der Wochentag (Montag, Dienstag,..., Sonntag) auf dem Bildschirm ausgegeben werden. Programmierung mit if-anweisung: #include <iostream> #include <cstdlib> using namespace std; int main () { int tag; tag = 2; // für Testzwecke if (tag ==1) cout << "Montag" << endl; if (tag ==2) cout << "Dienstag" << endl; if (tag ==3) cout << "Mittwoch" << endl; if (tag ==4) cout << "Donnerstag" << endl; if (tag ==5) cout << "Freitag" << endl; if (tag ==6) cout << "Samstag" << endl; if (tag ==7) cout << "Sonntag" << endl; if (tag <1 tag > 7) cout << "fehlerhafte Eingabe" << endl; system ("pause"); return 0; Programmierung mit switch-anweisung: #include <iostream> #include <cstdlib> using namespace std; int main () { int tag; tag = 2; // für Testzwecke switch (tag){ case 1: cout << "Montag" << endl; break; case 2: cout << "Dienstag" << endl; break; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 7

26 case 3: cout << "Mittwoch" << endl; break; case 4: cout << "Donnerstag" << endl; break; case 5: cout << "Freitag" << endl; break; case 6: cout << "Samstag" << endl; break; case 7: cout << "Sonntag" << endl; break; default: cout << "fehlerhafte Eingabe!" << endl; system ("pause"); return 0; Beispiel: Eingabe der Buchstaben A, B, C in Groß- oder Kleinschreibung Ausgabe der Lage im Alphabet (1,2,3) #include <iostream> #include <cstdlib> using namespace std; int main () { char buchstabe; buchstabe = 'B'; // für Testzwecke switch (buchstabe){ case 'A': case 'a': cout << "1.Buchstabe im Alphabet" << endl; break; case 'B': case 'b': cout << "2.Buchstabe im Alphabet" << endl; break; case 'C': case 'c': cout << "3.Buchstabe im Alphabet" << endl; break; default: cout << "fehlerhafte Eingabe!" << endl; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 8

27 allgemeines Schema: switch (Ausdruck) { // Ausdruck: aufzählbarer // Datentyp (z.b. int, char) case wert11: // wert11 muss konstant sein case wert12: Anweisung1; break; // Verlassen der switch-anweisung case wert21: case wert22: Anweisung2; break; default: alternative Anweisung; // optional switch-anweisungen können geschachtelt werden (statt Anweisung1 kann wieder eine switch-anweisung stehen) Übungsaufgaben: Aufgabe 4.4 Geben Sie einen Monat (1, 2,..., 12) ein und das Programm ermittelt die Anzahl der Tage des Monats (ohne Schaltjahr). Aufgabe 4.5 Wandeln Sie eine römische Ziffer in den zugehörigen Dezimalwert um. I, i 1 V, v 5 X, x 10 L, l 50 Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 9

28 Aufgabe 4.6 Schreiben Sie ein C++ - Programm, das 2 reelle Zahlen einliest. Danach wird einer der Operatoren (+,-,*,/) eingegeben. Je nach Operator werden die beiden Zahlen verknüpft und das Ergebnis ausgegeben. Bei der Division ist zu beachten, dass der Nenner nicht null sein darf. Bei falscher Eingabe des Operators erfolgt eine Fehlermeldung. Das Programm ist in Eingabeteil, Berechnung und Ausgabeteil zu gliedern. Aufgabe 4.7 Ergänzen Sie das Programm aus Aufgabe 4.6 so, dass als weitere Operation die Ganzzahl- Division und die Ermittlung des Restes durchgeführt werden kann. Dazu werden die reellen Zahlen in Ganzzahlen umgewandelt. Bei Ganzzahl-Division erfolgt immer die Ermittlung des Restes (kein weiterer Operator). Beispiel für Ganzzahl-Division: Geben Sie zwei reelle/ganze Zahlen ein: 19 5 Geben Sie einen Operator ein (+,-,*,/,%): % Ergebnis: 3 Rest 4 Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 10

29 4.2 Schleifen Literaturhinweis: Breymann C++ 8.Auflage S Wiederholung einer Teilaufgabe in einem Programm while-schleife Beispiel: Ein Programm wiederholt solange eine Eingabe, bis nicht mehr 'J' eingegeben wird #include <iostream> #include <cstdlib> #include <cctype> // siehe toupper() using namespace std; int main () { char antwort = 'J'; // Vorbelegung ist nötig while (antwort == 'J'){ cout << "Eingabe von J oder j --> weiterfragen "; cin >> antwort; antwort = toupper (antwort); // wandelt Klein- in // Großbuchstaben um system ("pause"); return 0; allgemeines Schema: while (Bedingung) // Bedingung wahr, dann wird Anweisung ausgeführt Anweisung // wenn Bedingung falsch, dann wird Anweisung nicht mehr // ausgeführt Wenn die Bedingung von Anfang an nicht wahr ist, dann wird die Schleife nie durchlaufen! weiteres Beispiel: Bestimmung des größten gemeinsamen Teilers zweier natürlicher Zahlen (Algorithmus nach Euklid) Beispiel: ggt(84,36) = = 2 * 2 * 3 * 7 36 = 2 * 2 * 3 * 3 Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 11

30 Algorithmus nach Euklid: ggt(x,x) = x ggt(x,y) = ggt(x, y-x) falls x<y #include <iostream> #include <cstdlib> using namespace std; int main () { unsigned int x, y; cout << "2 natuerliche Zahlen: "; cin >> x >> y; cout << "ggt von " << x << " und " << y << " ist: " ; while (x!= y){ if (x > y) x = x - y; else y = y - x; cout << x << endl; system ("pause"); return 0; do while-schleife Literaturhinweis: Breymann C++ 8.Auflage S.75f Beispiel: Ein Programm zwingt den Benutzer solange eine Zahl einzugeben, bis sie größer als Null ist. #include <iostream> #include <cstdlib> using namespace std; int main () { int x; do { cout << "Ganze Zahl > 0: "; cin >> x; while (x <= 0); system ("pause"); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 12

31 allgemeines Schema: do { Anweisung while (Bedingung); Die do while-schleife wird immer mindestens ein Mal ausgeführt. Verwendung: Abfrage von Zahlen solange bis richtige Eingabe erfolgt Wiederholung des Programms ohne Neustart (siehe folgendes Beispiel) #include <iostream> #include <cstdlib> #include <cctype> using namespace std; int main () { char weiter; do { cout << "Programm wiederholen? [J/N] "; cin >> weiter; weiter = toupper (weiter); while (weiter == 'J'); // (weiter!= 'N')??? system ("pause"); return 0; for-schleife Literaturhinweis: Breymann C++ 8.Auflage S Beispiel: Ausgabe der Zeichen und Codierungen in der ASCII-Tabelle von 65 bis 122 #include <iostream> #include <cstdlib> using namespace std; int main () { int i; for (i=65; i<= 122; i++){ cout.width(3); // sorgt dafür, dass 3 Stellen Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 13

32 // ausgegeben werden für i cout << i << " " << (char)i << endl; // (char) i gibt das Zeichen und // nicht den Zahlenwert an system ( "pause "); return 0; Allgemeine Syntax: for (Initialisierung; Bedingung; Veränderung) Anweisung Verwendung der for-schleife, wenn die Anzahl der Durchläufe bekannt ist! Weiteres Beispiel: Berechnung der Fakultät einer Zahl 4! = 1 * 2 * 3 * 4 = 24 #include <iostream> #include <cstdlib> using namespace std; int main () { unsigned int n, i; unsigned long fakul = 1; cout << "Positive, ganze Zahl: "; cin >> n; for (i=2; i<= n; i++){ fakul = fakul * i; cout << "Fakultaet von " << n << " ist: " << fakul; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 14

33 4.2.4 break und continue Literaturhinweis: Breymann C++ 8.Auflage S break: continue: Verlassen der Schleife Überspringen des restlichen Schleifenkörpers Beispiel: #include <iostream> #include <cstdlib> using namespace std; int main () { char c; while (true) { // Endlosschleife, auch // for (;;) möglich cout << "Auswahl a, b oder x = Ende : "; cin >> c; if (c == 'a') { cout << "Programm a wird ausgefuehrt! " << endl; continue; // zurück zur Auswahl if (c == 'b') { cout << "Programm b wird ausgefuehrt! " << endl; continue; // zurück zur Auswahl if (c == 'x') break; // Schleife verlassen cout << "Falsche Eingabe! " << endl; cout << "Programmende! " << endl; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 15

34 Übungsaufgaben Aufgabe 4.8 Formulieren Sie das Programm aus Kapitel um, so dass ein äquivalentes Programm entsteht ohne die Verwendung von break und continue. Statt der if-anweisung soll switch benutzt werden. Aufgabe 4.9 Welche Ausgabe liefert folgendes Programm? Schachtelung von for-schleifen #include <iostream> #include <cstdlib> using namespace std; int main () { int i, j, k; for (i=1; i<=2; i++) for (j=1; j<=3; j++) for (k=1; k<=4; k++) cout << i << " " << j << " " << k << endl; system ("pause"); return 0; Ausgabe: i j k i j k Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 16

35 Aufgabe 4.10 Welche Ausgabe liefert folgendes Programm? #include <iostream> #include <cstdlib> using namespace std; int main () { int i, j, k, ksum=0, sum=0; for (i=1; i<=3; i++) for (j=i; j<=3; j++) for (k=j-i; k<=j; k++){ cout << i << " " << j << " " << k << endl; ksum++; sum = sum + k; cout << ksum << " " << sum; system ("pause"); return 0; Ausgabe: i j k ksum = sum = Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 17

36 Aufgabe 4.11 Bisektionsverfahren Bei der Untersuchung des Schubkurbelgetriebes tritt die Bestimmungsgleichung auf f x = x 3 x 2 x 0,04=0 Bestimmen Sie mit Hilfe des Bisektionsverfahrens diese Nullstelle auf 5 Dezimalstellen genau. Ermitteln Sie dabei die Anzahl der Iterationen, die zur Bestimmung notwendig sind. Lösung: x = 0, Aufgabe 4.12 Fünf Leute haben versucht, die Summe der Zahlen von 1 bis 100 zu berechnen. Beurteilen Sie die folgenden Lösungsvorschläge: (a) int n = 1, sum = 0; while (n <= 100) { ++n; sum = sum + n; (b) int n = 1, sum = 1; while (n < 100) n = n + 1; sum = sum + n; (c) int n = 100; int sum = n*(n+1)/2; (d) int n = 1, sum; while (n < 100) { sum = 0; n = n + 1; sum = sum + n; (e) int n = 1, sum = 0; while (n <= 100) { sum = sum + n; n++; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 18

37 Aufgabe 4.13 Schreiben Sie ein C++ - Programm, das für die Funktion π f ( x) = x 0,2 sin x 8 eine Nullstelle im Bereich auszugeben. π 0 < x < berechnet. Die Anzahl der benötigten Iterationsschritte ist 2 Als Iterationsformel ist der Ansatz nach Newton-Raphson zu verwenden. Newton-Raphson: x i+ 1 = x i f ( xi ) f ( x ) i Anmerkungen: Bestimmen Sie die Nullstelle auf 5 Dezimalstellen genau. Verwenden Sie eine do- while Schleife. Geben Sie einen Startwert für x vor, der im angegebenen Bereich liegt. Sollte die Iterationsformel nicht zu einem Ergebnis konvergieren (Die Unterschiede der berechneten x i sollte immer kleiner werden!), so muss das Programm nach einer bestimmten Anzahl von Iterationsschritten abbrechen. Aufgabe 4.14 Unter Primzahlen versteht man natürliche Zahlen, die nur durch 1 und sich selbst teilbar sind. Beispiel: 1, 2, 3, 5, 7, 11, 13, 17, 19, Schreiben Sie ein Programm, das eine natürlich Zahl > 2 einliest und die Primfaktorzerlegung berechnet. Beispiel: Eingabe: 728 Ausgabe: 728 = 2 * 2 * 2 * 7 * 13 Aufgabe 4.15 Numerische Integration (Trapezregel) Schreiben Sie ein Programm, das mit der Trapezregel die Funktion f(x) = sin (x) + cos (2x) innerhalb beliebiger Grenzen a und b numerisch integriert. Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite 19

38 Die Trapezformel lautet: n: Anzahl der Intervalle T(n): Integralwert bei n Intervallen a: linke Integrationsgrenze b: rechte Integrationsgrenze h: Schrittweite h = (b-a)/n Geben Sie a, b und n ein! Aufgabe 4.16 Numerische Integration (Simpsonformel) Berechnen Sie das Integral obiger Funktion mit der Simpson-Formel. 1 für i = 0 oder i = n C i = 4 für i ungerade 2 für i gerade, i 0, i n Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript04 (2007/03/17) Kapitel 4 Seite = = 1 1 ) ( 2 ) ( ) ( 2 ) ( n i h i a f b f a f h n T = + = n i i h i a f c h n S 0 ) ( 3 ) (

39 5 Erweiterte Datentypen 5.1 Arrays Eindimensionale Felder Aufgabe: Belegung von 4 Variablen mit den Werten int z1, z2, z3, z4; z1 = 1; z2 = 2; z3 = 3; z4 = 4; Erweiterung der Aufgabenstellung: Belegung von 100 Variablen mit den Werten int z[100], i; for (i=0; i<100; i++) z[i] = i+1; Definition von eindimensionalen Feldern: Datentyp Feldname [ Anzahl_der_Elemente ]; Anzahl_der_Elemente muss ein konstanter Wert sein! Beispiel: int a[100]; // 100 ganzzahlige Werte double x[3000], messwerte [67]; // 3000 x-werte (reelle Zahlen),... const int ANZ = 100; double werte[anz]; Initialisierung von Feldern: int feld[3] = {-1, 300, 6; Zugriff auf einzelne Elemente des Feldes: feld[0] = -1; feld[1] = 300; feld[2] = 6; WICHTIG: Die untere Feldgrenze ist immer Null, somit ist der höchste Index Anzahl_der_Elemente 1! Bereichsüberschreitungen werden vom Compiler nicht gemeldet! Dies kann zu unvorhersehbaren Fehlern im Programm führen! Ingenieurinformatik FH Augsburg/FMaschinenbau/Prof. U.Thalhofer/ini_skript05 (2006/10/05) Kapitel 5 Seite 1

40 Initialisierung eines Teiles der Elemente: int a[100] = {1, 2, 3; // die restlichen Elemente werden mit null belegt!! Ein- und Ausgabe von Feldern: int a[20]; cout << "Geben Sie 20 ganzzahlige Werte ein: "; for (i=0; i<20; i++) cin >> a[i]; cout << "Elemente des Feldes :" << endl; for (i=0; i<20; i++) cout << a[i]; Eine Ausgabe cout << a; ist nicht möglich! Beispiel: Lösung: Erstellen Sie ein Programm, das aus der Zahlenfolge 10, -3.5, 4, 6, 9, -1, 22, 11, 4.9, 10.6 die größte und kleinste Zahl ermittelt und ausgibt. #include <iostream> #include <cstdlib> using namespace std; int main () { const int N = 10; double x[n] = {10, -3.5, 4, 6, 9, -1, 22, 11, 4.9, 10.6, xmax, xmin; int i; xmax = x[0]; xmin = x[0]; for (i=0; i<n; i++){ if (x[i] > xmax) xmax = x[i]; if (x[i] < xmin) xmin = x[i]; cout << "Maximum: " << xmax << endl << "Minimum: " << xmin << endl; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/FMaschinenbau/Prof. U.Thalhofer/ini_skript05 (2006/10/05) Kapitel 5 Seite 2

41 5.1.2 Mehrdimensionale Felder Definition eines zweidimensionalen Feldes: int m[2][3] = {{ 2, 4, -5, {10, -1, 11; m=[ ] Eingabe eines zweidimensionalen Feldes: cout << "Matrix mit 2 Zeilen und 3 Spalten eingeben: " << endl; for (i=0; i<2; i++) for (j=0; j<3; j++) cin >> m[i][j]; Ausgabe eines zweidimensionalen Feldes: cout << "Matrix m = " << endl; for (i=0; i<2; i++){ for (j=0; j<3; j++) cout << m[i][j]; cout << endl; Beispiel: Lösung: Erstellen Sie ein Programm, das zwei Matrizen addiert. #include <iostream> #include <cstdlib> using namespace std; int main () { const int ZEILEN = 3, SPALTEN = 4; int a[zeilen][spalten] = {10, -3, 4, 6, 9, -1, 22, 11, 4, 9, 10, 6, b[zeilen][spalten] = { 1, 14, 7, 5, 2, 12,-11, 0, 7, 2, 1, 5, c[zeilen][spalten], i, j; Ingenieurinformatik FH Augsburg/FMaschinenbau/Prof. U.Thalhofer/ini_skript05 (2006/10/05) Kapitel 5 Seite 3

42 for (i=0; i<zeilen; i++) for (j=0; j<spalten; j++) c[i][j]=a[i][j] + b[i][j]; for (i=0; i<zeilen; i++){ for (j=0; j<spalten; j++){ cout.width(4); // 4 Stellen pro Matrixelement cout << c[i][j]; cout << endl; // nach jeweils 4 Spalten eine neue // Zeile system ("pause"); return 0; Zeichenketten Texte können in char-arrays gespeichert werden. Beispiel: Konstanter Text mit max. 19 Zeichen: #include <iostream> #include <cstdlib> using namespace std; int main () { char z[20] = "Text mit 19 Zeichen"; // 19 Zeichen + Terminator (ASCII-Null) cout << z << endl; system ("pause"); return 0; Text wird eingelesen: #include <iostream> #include <cstdlib> using namespace std; int main () { char z[20]; cout << "Text mit 19 Zeichen:"; cin >> z; //Leerzeichen beendet Eingabe cout << z << endl; system ("pause ); return 0; Ingenieurinformatik FH Augsburg/FMaschinenbau/Prof. U.Thalhofer/ini_skript05 (2006/10/05) Kapitel 5 Seite 4

43 Eingabe mit Leerzeichen: #include <iostream> #include <cstdlib> using namespace std; int main () { char z[20]; cout << "Text mit 19 Zeichen: "; cin.getline(z,20); //liest auch Leerzeichen cout << z; system ("pause"); return 0; Belegung der einzelnen Elemente des Feldes: #include <iostream> #include <cstdlib> using namespace std; int main () { char z[20]; int i; cout << "Text mit 19 Zeichen: "; for (i=0; i<19; i++) cin >> z[i]; z[19]='\0'; cout << z; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/FMaschinenbau/Prof. U.Thalhofer/ini_skript05 (2006/10/05) Kapitel 5 Seite 5

44 5.2 Aufzählungstypen Will man die Wochentage nicht mit Zahlen bezeichnen, so kann man einen Datentyp Wochentag definieren. #include <iostream> #include <cstdlib> #include <cstring> using namespace std; int main () { enum Wochentag {Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag; Wochentag heute; //char *ausgabe = "Donnerstag"; char ausgabe [20]; heute = Montag; cout << heute; //besser: switch (heute) { case Montag: strcpy(ausgabe, "Montag"); break; case Dienstag: strcpy(ausgabe, "Dienstag"); break; // usw. cout << "Heute ist " << ausgabe << endl; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/FMaschinenbau/Prof. U.Thalhofer/ini_skript05 (2006/10/05) Kapitel 5 Seite 6

45 Übungsaufgaben: Aufgabe 5.1 Schreiben Sie ein Programm, das zwei quadratische (3 x 3) Matrizen A und B einliest und das Matrixprodukt C = A * B berechnet. Formel: = = = , * j jk ij ik k i b a c Programmablauf: Einlesen der Matrix A Einlesen der Matrix B Berechnung der Matrix C = A * B nach obiger Formel Ausgabe der Matrix C (in bekanntem Matrixschema) Beispiel: = * Ingenieurinformatik FH Augsburg/FMaschinenbau/Prof. U.Thalhofer/ini_skript05 (2006/10/05) Kapitel 5 Seite 7

46 6 Modulare Programmierung (Functions) 6.1 Definition Programmteile, die öfter in einem Programm verwendet werden, können als Unterprogramme vereinbart werden. Bei der Verwendung von Unterprogrammen (Functions) sind folgende Regeln einzuhalten: 1. Definition eines Prototypen vor dem Aufruf der Function 2. Aufruf mit passenden Argumenten Die Definition von Prototypen sieht folgendermaßen aus: Datentyp Function-Name (Datentyp Argument1, Datentyp Argument2,...); Vor jedem Argument muss der Datentyp stehen, auch wenn alle Argumente vom gleichen Datentyp sind! So kann bereits der Compiler feststellen, dass Prototyp und Aufruf der Function nicht übereinstimmen und das Programm merkt dies nicht erst bei der Programmausführung. Die Namen der Argumente (Argument1 und Argument2) können weggelassen werden. Der Aufruf der Function geschieht über den Function-Namen. In runden Klammern folgen dahinter die Argumente. Hat die Function keine Argumente, so werden nur die leeren Klammern angegeben. Die Syntax eines Function-Aufrufs kann folgendermaßen geschrieben werden: Function-Name (Arument1, Arument2,...); Nach Ausführung der Function wird die Programmausführung automatisch bei der auf den Function-Aufruf folgenden Anweisung fortgesetzt. Liefert die Function einen Wert (Funktionswert) zurück, dann muss sie die Anweisung return Funktionswert; enthalten. An dieser Stelle erfolgt die Rückkehr ins aufrufende Programm, unabhängig davon, ob die Function komplett abgearbeitet wurde oder nicht. In Programm 6.1 wird eine einfache Function verwendet, die als Funktionswert das Doppelte des Arguments liefert, wenn das Argument positiv ist. Bei negativem Argument wird als Funktionswert der doppelte positive Wert zurückgegeben. Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript06 (2007/03/17) Kapitel 6 Seite 1

47 #include <cstdlib> #include <iostream> using namespace std; // Ist für Haupt- und int doppelt (int x); // Prototyp int main () { int i, r; cout << "Eingabe ganze Zahl: "; cin >> i; r = doppelt (i); cout << r << endl; system ("pause"); return 0; // Unterprogramm gültig! // Hier endet das Hauptprogramm! // Aufruf des Unterprogramms, // mit dem Argument i // und dem Funktionswert r // Hier beginnt die Definition des Unterprogramms int doppelt (int x) { //der Wert von i wird in x eingesetzt int d; if (x > 0 ) else d = 2*x; d = -2*x; return d; Programm 6.1 // der Wert von d wird an das aufrufende Programm // zurückgegeben Programm 6.2 entspricht Programm 6.1 bis auf folgende Änderungen: 1. Der Prototyp verwendet keinen Argumentnamen, was zulässig ist. 2. Das Argument ist eine Konstante (der Zahlenwert 7). 3. Es gibt keine Variable, die den Funktionswert aufnimmt (wie r im vorigen Beispiel). Es erfolgt direkt die Weitergabe des Funktionswertes an cout. 4. Im Unterprogramm wird keine zusätzliche Variable (d) benötigt, da direkt in der Verzweigung der Wert für das Produkt zurückgegeben wird. #include <iostream> #include <cstdlib> using namespace std; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript06 (2007/03/17) Kapitel 6 Seite 2

48 int doppelt (int ); // Prototyp ohne Argument int main () { cout << doppelt (7) << endl; system ("pause"); return 0; int doppelt (int x) { if (x > 0 ) else return 2*x; return -2*x; Programm 6.2 In Programm 6.2 wird deutlich, dass der Name des Arguments x in der Function nicht mit dem Namen der Variablen im Hauptprogramm in der Parameterliste (hier die Konstante 7)übereinstimmen kann und auch nicht muss. Auch der Name des Funktionswertes, den es hier gar nicht gibt, ist im Unterprogramm völlig unabhängig vom Namen im Hauptprogramm. Am Besten stellt man sich das Unterprogramm als Black Box vor. Man weiß, was reingeht (in unserem Beispiel ein ganzzahliges Argument) und was rauskommt (ein ganzzahliger Funktionswert). Function doppelt Eingabe: int Ausgabe: int (Argument) Funktionswert Wenn man die Beschreibung der Function und den Prototypen kennt, dann kann man ohne Kenntnis des Unterprogramms damit arbeiten. Beschreibung des Unterprogramms: Das Unterprogramm doppelt verlangt einen Eingabewert vom Datentyp int. Dieser Wert wird, wenn er positiv ist, verdoppelt und zurückgegeben. Ist er negativ, dann wird er auch verdoppelt, jedoch mit -1 multipliziert. Der Funktionswert ist vom Datentyp int. Prototyp: int doppelt (int); Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript06 (2007/03/17) Kapitel 6 Seite 3

49 Es sind natürlich auch mehrere Argumente möglich. Es gibt jedoch immer nur einen Funktionswert. Sollen mehrere Werte zurückgegeben werden, dann geschieht dies nicht über den Funktionswert (siehe 6.2). In Programm 6.3 werden zwei Argumente benötigt. Wenn das erste Argument (int) gerade ist, dann wird das zweite Argument (double) mit 2 multipliziert, andernfalls mit 4. Der Funktionswert ist somit auch ein double-wert. #include <iostream> #include <cstdlib> using namespace std; double faktor (int f, double x ); int main () { cout << faktor (3, 4.2) << endl; system ("pause"); return 0; double faktor (int f, double x) { if (f%2 == 0 ) else return 2*x; return 4*x; Programm 6.3 Gibt es Unterprogramme, die keine Argumente haben und vielleicht auch keinen Funktionswert zurückgeben? Programm 6.4 gibt dazu ein einfaches Beispiel, da es nur einen Text auf den Bildschirm schreibt. #include <iostream> #include <cstdlib> using namespace std; void nurtextaufschirm (); Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript06 (2007/03/17) Kapitel 6 Seite 4

50 int main () { nurtextaufschirm (); system("pause"); return 0; void nurtextaufschirm () { cout << "Nur Text auf Schirm! " << "Keine Argumente und auch kein Funktionswert!"; Programm 6.4 void bedeutet, dass kein Funktionswert zurückgegeben wird und die leeren Klammern, die unbedingt angegeben werden müssen, enthalten keine Argumente. Functions können nicht nur von einem Hauptprogramm aufgerufen werden. In Programm 6.5 wird die Function f(x) in der Function sumf verwendet, um Funktionswerte einer mathematischen Funktion aufzusummieren. #include <iostream> #include <cstdlib> using namespace std; // Prototypen double f(double x); double sumf (double start, double end, int inkr); // Hauptprogramm int main () { // Summation der Funktionswerte von f(x) = sin(x) + 2*x // zwischen linkegrenze und rechtegrenze double linkegrenze, rechtegrenze, summe; int n; cout << "Eingabe linker x-wert und rechter x-wert: "; cin >> linkegrenze >> rechtegrenze; cout << "Eingabe Anzahl der Werte: "; cin >> n; summe = sumf (linkegrenze, rechtegrenze, n); cout << summe; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript06 (2007/03/17) Kapitel 6 Seite 5

51 // Function f #include <cmath> double f(double x) { return sin(x) + 2*x; // Function sumf // wird nur in f benötigt double sumf (double start, double end, int inkr) { int i; double h, s=0; h = (end-start)/(inkr-1); for (i=0; i<inkr; i++) s = s + f(start+i*h); return s; Programm 6.5 Beachten Sie bitte, dass in Programm 6.5 nur die Werte in der Variablenliste stehen, die von außen angegeben werden müssen. Die Variablen, die nur in sumf benötigt werden (i, h, s) werden dort intern verwendet und gehen nicht nach draußen! Übungsaufgaben: Aufgabe 6.1 Schreiben Sie ein Unterprogramm, das zwei double-werte addiert und das Ergebnis als Funktionswert zurückgibt. Der Aufruf im Hauptprogramm sieht z.b. folgendermaßen aus: y = add1 (2.3, 4.5); Aufgabe 6.2 Schreiben Sie ein Unterprogramm, das die x-werte und die y-werte der Funktion y = x² + 3x am Bildschirm ausgibt. Der Benutzer definiert linke Grenze, rechte Grenze und die Anzahl der auszugebenden Werte. Die Funktionswerte sollen in einer eigenen Function berechnet werden. Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript06 (2007/03/17) Kapitel 6 Seite 6

52 6.2 Werteparameter und Variablenparameter Bisher konnten mehrere Werte an das Unterprogramm übergeben, jedoch nur ein Wert per Funktionswert an das aufrufende Programm zurückgegeben werden. Soll mehr als ein Wert an das aufrufende Programm gegeben werden, so benötigt man variable Parameter, die in der Parameterliste stehen. Beispiel: Ein Programm bekommt drei Werte und berechnet den Mittelwert (3 Eingabewerte, 1 Ausgabewert) #include <iostream> #include <cstdlib> using namespace std; double mittel (double, double, double ); int main () { cout << mittel (2.3, 4.5, 6.0); system ("pause"); return 0; double mittel (double m1, double m2, double m3) { return (m1+m2+m3)/3; Programm 6.6 Das Programm 6.7 soll nun den Mittelwert und die Summe zurückgeben. Bisher wurden die Parameter per Wert (by value) definiert, jetzt kann nicht mehr nur der Wert, sondern die Variable selbst (by reference) muss zum Ändern an das Unterprogramm gegeben werden. Dies geschieht in der Parameterliste durch Voranstellen eines & vor den Parameter. #include <iostream> #include <cstdlib> using namespace std; void mittel (double, double, double, double &, double & ); int main () { double m, s; mittel (2.3, 4.5, 6.0, m, s); cout << "Mitelwert: " << m << " Summe: " << s; system ("pause"); return 0; Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript06 (2007/03/17) Kapitel 6 Seite 7

53 void mittel (double m1, double m2, double m3, double &mit, double &sum) { sum = m1+m2+m3; mit =sum / 3; Programm 6.7 Man könnte in Programm 6.7 auch einen Wert (z.b. den Mittelwert) als Funktionswert und einen als variablen Parameter (z.b. die Summe) zurückgeben. Man kann Werteparameter in einem Unterprogramm nicht ändern, Variablenparameter jedoch schon. Programm 6.8 zeigt ein einfaches Beispiel. #include <iostream> #include <cstdlib> using namespace std; void test (int, int & ); int main () { int wert=10, variabel=12; test (wert, variabel); cout << wert << " " << variabel; // Ausgabe: system ("pause"); return 0; void test (int w, int &v) { w = 33; v = 66; Programm 6.8 Der erste Parameter wird nur als Wert übergeben, er kann im Unterprogramm also nicht verändert werden, da nur eine Kopie der Variablen an das Unterprogramm gegeben wird, auf das Original kann nicht zugegriffen werden. Der zweite Parameter wird als Variable, also im Original an das Unterprogramm übergeben und kann somit beliebig geändert werden. In Programm 6.8 kann man auch schreiben: test (10, variabel); Es ist jedoch nicht möglich zu schreiben: test (10,66); Der zweite Parameter muss, wie der Name (Variablenparameter) schon sagt, eine Variable sein! Ingenieurinformatik FH Augsburg/Maschinenbau/Prof. U.Thalhofer/ini_skript06 (2007/03/17) Kapitel 6 Seite 8

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

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

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

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

Kontrollstrukturen und Funktionen in C

Kontrollstrukturen und Funktionen in C Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren

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

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

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

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

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

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

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

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

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

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

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

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

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

Diana Lange. Generative Gestaltung Operatoren

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

Mehr

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

Ü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

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

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

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

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Ü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

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

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

Mehr

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

Hochschule München, FK 03 FA SS 2012. Ingenieurinformatik

Hochschule München, FK 03 FA SS 2012. Ingenieurinformatik Hochschule München, FK 03 FA SS 2012 Ingenieurinformatik Zulassung geprüft vom Aufgabensteller: Teil 1/Aufgabe 1: 30 Minuten ohne Unterlagen, Teil 2/Aufgaben 2-4: 60 Minuten, beliebige eigene Unterlagen

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

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

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

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

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

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

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

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Projektverwaltung Problem Lösung: Modulare Programmierung

Projektverwaltung Problem Lösung: Modulare Programmierung Projektverwaltung Problem Der Sourcecode ür ein Programm wird immer länger und unübersichtlicher Eine Funktion, die in einem alten Projekt verwendet wurde, soll auch in einem neuen Projekt verwendet werden

Mehr

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München MANUEL KALLWEIT & FABIAN KINDERMANN Literaturempfehlung: Vorlesungsskript von Heidrun Kolinsky zu FORTRAN 90/95: http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html Schmitt, Günter (1996):

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

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

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

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

Klausur in Programmieren

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

Mehr

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

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

Mehr

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die

Mehr

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

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

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

3 Die Grundrechenarten

3 Die Grundrechenarten 3 Die Grundrechenarten In diesem Kapitel wollen wir uns unter anderem mit folgenden Themen beschäftigen: Operatoren für die Addition, Subtraktion, Multiplikation und Division Modulooperator, auch Restoperator

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

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

Ü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

Kontrollstrukturen, Strukturierte Programmierung

Kontrollstrukturen, Strukturierte Programmierung , Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort

Mehr

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

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

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

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

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

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

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Darstellung von Algorithmen Aus den Einführungsbeispielen und

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Tage des Unterrichts in Mathematik, Naturwissenschaften und Technik Rostock 2010 Prof. Dr. Hans-Dieter Sill, Universität Rostock, http://www.math.uni-rostock.de/~sill/

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

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 15. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Die reellen Lösungen der kubischen Gleichung

Die reellen Lösungen der kubischen Gleichung Die reellen Lösungen der kubischen Gleichung Klaus-R. Löffler Inhaltsverzeichnis 1 Einfach zu behandelnde Sonderfälle 1 2 Die ganzrationale Funktion dritten Grades 2 2.1 Reduktion...........................................

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

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

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

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

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

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

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

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

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

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

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

Java-Programmierung mit NetBeans

Java-Programmierung mit NetBeans Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende

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

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

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

5. Übung: PHP-Grundlagen

5. Übung: PHP-Grundlagen 5.1. Erstes PHP-Programm 1. Schreiben Sie PHP-Programm innerhalb einer Webseite, d.h. innerhalb eines HTML-Dokument. Ihr PHP-Programm soll einen kurzen Text ausgeben und Komentare enthalten. Speichern

Mehr

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

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

Mehr

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

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Prüfung Computation, Programming

Prüfung Computation, Programming Prüfung Computation, Programming 1. Computation: Reguläre Ausdrücke [5 Punkte] Zusammenfassung reguläre Ausdrücke a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a,

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

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen Gleichungen Ungleichungen. Lineare Gleichungen Sei die Gleichung ax = b gegeben, wobei x die Unbekannte ist a, b reelle Zahlen sind. Diese Gleichung hat als Lösung die einzige reelle Zahl x = b, falls

Mehr

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

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

Mehr

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

Mehr

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen. 13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen. Sie heißt linear, wenn sie die Form y (n) + a n 1 y (n 1)

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen. Programmierung in C++ Seite: 1 Beispielprogramm 1: Programmierung in C++ int main() int hoehe = 3; int grundseite = 5; double flaeche = hoehe*grundseite*0.5; cout

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Mathematischer Vorbereitungskurs für Ökonomen

Mathematischer Vorbereitungskurs für Ökonomen Mathematischer Vorbereitungskurs für Ökonomen Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Gleichungen Inhalt: 1. Grundlegendes 2. Lineare Gleichungen 3. Gleichungen mit Brüchen

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

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

Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b Aufgabe 1: Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. (a) Nehmen Sie lineares Wachstum gemäß z(t) = at + b an, wobei z die Einwohnerzahl ist und

Mehr