Programmieren in C/C++ und MATLAB

Ähnliche Dokumente
Programmieren in C/C++ und MATLAB

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

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

Java Anweisungen und Ablaufsteuerung

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Unterlagen. CPP-Uebungen-08/

5. Elementare Befehle und Struktogramme

Java Ablaufsteuerung (Beispiele)

if ( Logischer Operator ) { } else { Anweisungen false

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

3. Anweisungen und Kontrollstrukturen

1.8 Kontrollstrukturen 73. default : ziffer = 0; if (ziffer > 0) { cout << "Ziffer = " << ziffer; else { cout << "keine römische Ziffer!

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

Grundlagen der Informatik 4. Kontrollstrukturen I

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

Einführung in die Programmierung Wintersemester 2011/12

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

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Kontrollstrukturen -- Schleifen und Wiederholungen

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Schleifen in C/C++/Java

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen

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

Einführung in die Programmierung

Funktionales C++ zum Ersten

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

Praxisorientierte Einführung in C++ Lektion: "Kontrollstrukturen"

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Kontrollstrukturen und Logik

C++ - Einführung in die Programmiersprache Schleifen

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

Javakurs für Anfänger

Einführung in die Programmierung II. 3. Kontrollstrukturen

Intensivübung zu Algorithmen und Datenstrukturen

Grundlagen der Programmierung

Schleifen in C/C++/Java

Grundlagen der Informatik 5. Kontrollstrukturen II

Einführung in die C++ Programmierung für Ingenieure

Grundlagen der Programmierung

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

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Programmieren in C/C++ und MATLAB

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Schleifenanweisungen

Javakurs für Anfänger

Programmieren I. Kapitel 5. Kontrollfluss

Kontrollstrukturen (1)

Herzlich willkommen!

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

Annehmende Schleife do while

Angewandte Mathematik und Programmierung

Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen.

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme

Algorithmen zur Datenanalyse in C++

Informationsverarbeitung

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

Programmieren in C/C++ und MATLAB

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Programmieren in C/C++ und MATLAB

Vorlesungsprüfung Programmiersprache 1

BKTM - Programmieren leicht gemacht.

Einfache Bedingte Ausführung

Gestrige Themen. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen. Schleifen

Klausur Informatik WS 2012/13

Programmiertechnik Kontrollstrukturen

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

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

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

C-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi

Angewandte Mathematik und Programmierung

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Einführung Programmierpraktikum C Michael Zwick

Webbasierte Programmierung

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

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

Klausur: Informatik, am 11. Juli 2013 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Transkript:

Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1

Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral b a x²dx approximativ auswertet. Nähern Sie die Fläche als Summe schmaler Rechtecke konstanter Breite und mit Höhe x². Eingabe soll sein der obere und der untere Integrationswert a und b sowie die Anzahl der zu verwendenden Stützstellen, Ausgabe die berechnete Fläche. CAU 4-2

Übung: Integralberechnung Numerik: f(x) Näherung des Integralwertes durch Stützstellen bei i/2 δ x, an denen die Höhe des Rechtecks zu f(x) = x 2 = ((i+1./2.) δ x ) 2 berechnet wird. Die Breite des Rechtecks ist jeweils δ x = (b-a)/n, wobei n die Anzahl der Stützstellen ist. Ergänzung: Vergleichen Sie ihr numerisches Ergebnis mit der analytischen exakten Lösung. 0.5 δ x 1.5 δ x 2.5 δ x δ x δ x δ x x CAU 4-3

Übung: Integralberechnung #include <cstdlib> #include <iostream> using namespace std; /* Berechnung des Integrals F = integral von a nach b über x^2 */ int main(int argc, char *argv[]) { // Variablen: double a, b; // Untere und obere Integrationsgrenze int stuetzstellen; // Anzahl der Stuetzstellen double flaeche = 0.0; // Integralwert double delta_x, x; // Integrationsintervall, Integrationsvariable /* Eingabe der Werte über die Tastatur */ cout << " Berechnung des Integrals von a nach b über x^2 anhand von n Stuetzstellen" << endl; // Eingabe der unteren Integrationsgrenze cout << " Bitte geben Sie die untere Integrationsgrenze ein (a): "; cin >> a; // Eingabe der oberen Integrationsgrenze cout << " Bitte geben Sie die obere Integrationsgrenze ein (b): "; cin >> b; // Eingabe der Anzahl der Stuetzstellen cout << " Bitte geben Sie die Anzahl der Stuetzstellen ein (n): "; cin >> stuetzstellen; cout << " Ihre Eingabe: a: " << a << ", b: " << b << ", n: " << stuetzstellen << endl; Programm weiter auf nächster Folie CAU 4-4

Übung: Integralberechnung /* Berechnung des Integrals */ // Berechnung des Integrationsintervalls delta_x = (b-a)/((double)stuetzstellen); // Setzt Startwert für die Stuetzwerte entlang der x-achse a = a + delta_x/2.0; for(int i=0; i < stuetzstellen; i++){ x = a + delta_x*((double)i); flaeche += (x*x)*delta_x; cout << "i: " << i << ", x: " << x << ", Flaeche: " << flaeche << endl; } /* Ergebnisausgabe */ cout << " Der Integralwert betraegt: " << flaeche << endl; /* Vergleich echte Integration */ double flaeche2 = (b*b*b-a*a*a)/3.0; cout << " Analytische Integration ergibt: " << flaeche2 << endl; cout << " Differenz [%]: " << (flaeche2-flaeche)/flaeche2*100.0 << endl; system("pause"); return EXIT_SUCCESS; } CAU 4-5

Kontrollstrukturen Bisher eingeführt: Daten Datentypen (Deklaration, Definition, Variablen) Operatoren Verknüpfung von Daten bzw. Änderung von Daten Zu den grundlegenden Sprachelementen gehören nun auch noch Bedingungen und Kontrollstrukturen, die es erlauben, bestimmte Operationen nur unter bestimmten Umständen oder mit einer bestimmten Struktur auszuführen. Dazu gehören - Bedingungen: Wenn (...) Dann (...) - Schleifen: Solange (...) mache (...) Ohne diese Elemente kommt kein Programm aus! CAU 4-6

Bedingungen Fast kein Programm läuft geradlinig durch, fast immer muss überprüft werden, ob bestimmte Voraussetzungen erfüllt sind, sodass in Abhängigkeit dieser Voraussetzungen sich der Programmablauf verzweigt. Dazu muss im einzelnen jeweils überprüft werden, ob eine bestimmt Bedingung erfüllt ist oder nicht. Die Vorgehensweise ist dabei immer gleich: Wenn die Voraussetzung erfüllt ist wird etwas ausgeführt, sonst etwas anderes. Die if-bedingung (Wenn-Bedingung): if (Bedingung) Anweisung; CAU 4-7

Bedingungen Die if-else-bedingung (Wenn-dann-Bedingung): if (Bedingung) Anweisung1; else Anweisung2; Dabei können mehrere Anweisungen in einem Teil ausführen, diese müssen dann zu einem Block zusammengefasst werden: if (Bedingung) { Anweisung1; Anweisung2; Anweisung3; } else Anweisung4; CAU 4-8

Bedingungen Formulieren einer Bedingung: Eine Bedingung ist ein Ausdruck, der einen Ganzzahltyp oder bool ergibt. Dafür können alle Vergleichsoperatoren (<, >, ==,!=, etc.) verwendet werden. Die Bedingung ist erfüllt, wenn sie true oder verschieden von 0 ist. Ausdrücke können logisch verknüpft werden (&& (und), (oder),! (Negation)) if (a>0) x = x/a; if (p!= 0 && x!= 0) x *= p; else x = 1; if (boolwert == true) i++; CAU 4-9

Bedingungen Bedingungen können geschachtelt werden, d.h. in einem Block einer if-bedingung kann eine weitere if-bedingung gestellt werden. Ebenso sind Sprachkombinationen mit allen anderen Kontrollstrukturen möglich. Kurzformen: if (wert!= 0) ist gleichbedeutend mit if (wert) if (wert == 0) ist gleichbedeutend mit if (!wert) CAU 4-10

Mehrfachbedingungen Es gibt oft Fälle, in denen es mehr als zwei Möglichkeiten gibt. Die Darstellung durch if-abfragen kann sehr kompliziert werden, daher gibt es den folgenden Befehl in C++. switch (Ausdruck) { case: Konstante1 : Anweisung1; break; case: Konstante2 : {Anweisungen2}; break;... default: Standrd Anweisung; } Der Ausdruck muss ganzzahligen Typs sein (char, long, int), ebenso wie die Konstanten, mit denen ja intern verglichen wird. Immer break am Ende eines case verwenden! Die Standard-Anweisung ist für den Fall, dass keine der case- Anweisungen zutrifft. CAU 4-11

Schleifen Oft gibt es in Programmen Aufgaben, die wiederholt ausgeführt werden müssen. Dies geschieht entweder, bis eine bestimmte Bedingung erfüllt oder eine Höchstzahl an Wiederholungen erreicht ist. Für diese Art der Kontrollstruktur gibt es in C++ drei Arten von Schleifen die eng verwandt sind. Schleife mit Anfangsüberprüfung (while-schleife) Hier wird zunächst das Abbruchkriterium überprüft, bevor der Block der Schleife Ausgeführt wird while (Ausdruck) { //Schleifenblock Anweisung; } Der Ausdruck ist wie bei if-bedingung zu verstehen. Bei dieser Art der Schleife kann der Schleifenblock nicht ausgeführt werden. CAU 4-12

Schleifen Schleife mit Endüberprüfung (do-while-schleife) Hier wird das Abbruchkriterium nach Ausführen der Anweisungen im Block der Schleife ausgewertet: do {//Schleifenblock Anweisung; } while (Ausdruck); Der Ausdruck ist wie bei if-bedingung zu verstehen. Bei dieser Art der Schleife wird der Schleifenblock immer mindestens einmal ausgeführt. Die beiden Schleifenformen lassen sich ineinander überführen, oft jedoch mit zusätzlichen Bedingungen. CAU 4-13

Schleifen for-schleife for (Initialisierung; Bedingung; Anpassung;) { // Anweisungen; } Initialisierung: Startwert des Schleifenpoarameters/Laufvariablen, nur zu Beginn der for-schleife ausgewertet Bedingung: Die for-schleife wird ausgeführt, solange die Bedingung erfüllt ist (Ausdruck hat Wert ungleich 0) Anpassung: Nach jeder ausführung des Schleifenblocks kann hier der Schleifenparameter angepasst werden int zaehler=0; for (int i=1; i<=100; i++){ zaehler +=i; cout << Summe bis i: << zaehler << endl; } CAU 4-14

Schleifen Wird kein Block mit {...} verwendet, so gilt die Wiederholung nur für die nächstfolgende Anweisung. Die Zählvariable kann in der for-schleife deklariert werden, sie ist dann nur innerhalb der Schleife gültig. for-schleifen sind in C++ sehr mächtig, und können für alle Datenstrukturen eingesetzt werden. Schleifenkontrolle Abbruch einer Schleife durch break geknüpft an eine Bedingung. Damit wird die Abarbeitung der Schleife unterbrochen. Abbruch der Anweisungen im Schleifenbkörper, aber Fortführen der Schleife mit angepasstem Schleifenparameter: continue CAU 4-15

Vergleich - Schleifen while-schleife do-while-schleife for-schleife CAU 4-16

Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11 approximiert. Schreiben Sie das Programm einmal mit einer for-schleife und einmal mit einer do-while-schleife. Die Schleifen sollen jeweils abbrechen, wenn die gewünschte Genauigkeit (über Benutzereingabe vorgegeben) erreicht ist, und das Ergebnis soll auf den Bildschirm ausgegeben werden. Zusatzaufgabe: Schreiben Sie das Programm so um, dass es eine while-schleife verwendet. CAU 4-17