Programmieren in C/C++ und Matlab



Ähnliche Dokumente
Programmieren in C/C++ und MATLAB. Programmieren in C/C++ und MATLAB. Sebastian Bauer Sven Willert Sabine Schmidt

Einführung in die Programmierung (EPR)

Die Regelungen zu den Einsendeaufgaben (Einsendeschluss, Klausurzulassung) finden Sie in den Studien- und Prüfungsinformationen Heft Nr. 1.

3 Module in C. 4 Gültigkeit von Namen. 5 Globale Variablen (2) Gültig im gesamten Programm

Übungen zu C++ Kapitel 1

Informatik Repetitorium SS Volker Jaedicke

Benutzung der LS-Miniscanner

Domäne und Bereich. Relationen zwischen Mengen/auf einer Menge. Anmerkungen zur Terminologie. r Relationen auf/in einer Menge.

Grundlagen. Kapitel 1

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

2. Programmierung in C

Funktionen und Mächtigkeiten

Angewandte Mathematik und Programmierung

Lehrgang: Digitaltechnik 1 ( Grundlagen ) - Im Lehrgang verwendete Gatter ( Übersicht ) Seite 3

Hausaufgabe 2 (Induktionsbeweis):

Internet Explorer Version 6

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

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

FB Informatik. Fehler. Testplan

Installation und Inbetriebnahme von Microsoft Visual C Express

Einführung in die Programmierung

Programmierkurs Java

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

Verarbeitung von ZV-Dateien im Internetbanking. Inhalt. 1. Datei einlesen Datei anzeigen, ändern, löschen Auftrag ausführen...

Seriendruck mit der Codex-Software

Übungsblatt 1 zum Propädeutikum

Seriendruck mit der Codex-Software

Neuerungen in ReviPS Version 12g

Programmieren in C/C++ und MATLAB

Klausur in Programmieren

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Übung 9 - Lösungsvorschlag

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

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Inventur. mit Microsoft Dynamics NAV 2013 R2

Zahlensysteme. von Christian Bartl

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

Wegleitung Homepage ZSHAM

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Kühlzeitberechnungsprogramm WinCooL

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

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

Installations und Bedienungsanleitung

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

Subpostfächer und Vertretungen für Unternehmen

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

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

GRS SIGNUM Product-Lifecycle-Management

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Arrays. PHP JavaScript Kapitel 9

Abschnitte. Abschnittswechsel einfügen

Musterlösungen (ohne Gewähr) Aufgabe 1 ( 7 Punkte) Geben Sie die Koordinaten des Flächenschwerpunktes des dargestellten Querschnitts an!

Kurzanleitung /Kompalitätstest Barcode. Sie haben zwei Möglichkeiten unsere Barcode/Strichcodes für Ihren eigenen stationären Einzelhandel zu nutzen.

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Klicken Sie auf Weiter und es erscheint folgender Dialog

Anleitung Typo3-Extension - Raumbuchungssystem

Formale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009

Grundlagen der Programmierung Prof. H. Mössenböck. 7. Arrays

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Outlook Erstellen einer aus einer HTML - Vorlage INHALT

Kontrollstrukturen und Funktionen in C

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

teischl.com Software Design & Services e.u. office@teischl.com

ClubWebMan Veranstaltungskalender

Einführung in Mathcad H.

Einrichtung von Regeln in Outlook 2003

NTN-SNR elektronischer Katalog unter Achtung!

Jahresabschluss Finanzbuchhaltung INGARA. Provisorisch und Definitiv. INGARA Version

Einführung in die Programmierung

GPS Navigation für PPC

Erwin Grüner

Summenbildung in Bauteiltabellen mit If Then Abfrage

2. Installation der minitek-app auf einem Smartphone. 3. Verbindung zwischen minitek-app und minitek herstellen

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Securebox. > Anwenderleitfaden.

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

4.1 Download der App über den Play Store

1 Vom Problem zum Programm

Tutorial. Wie kann ich meinen Kontostand von meinen Tauschpartnern in. übernehmen? Zoe.works - Ihre neue Ladungsträgerverwaltung

Anleitung zum Umgang:

Klausur in Programmieren

Handbuch ZfEditor Stand

Zugriff Remote Windows Dieses Dokument beschreibt die Konfiguration von Windows für den Zugriff auf

XPubInDesign CS2-PlugIn

SOZIALVORSCHRIFTEN IM STRAßENVERKEHR Verordnung (EG) Nr. 561/2006, Richtlinie 2006/22/EG, Verordnung (EU) Nr. 165/2014

Anleitung zur Konstruktion eines Stegs mit Preci-Geschieben auf Klebebasis.

Zertifikat in dakota einlesen Wie lese ich mein Zertifikat in dakota.le ein?

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

Stud.IP. Inhalt. Rechenzentrum. Vorgehen zur Eintragung in Veranstaltungen / Gruppen. Stand: Januar 2015

Der digitale. Workflow Workflow. [PDF-Erstellung aus CorelDraw für Windows]

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

SILVERBALL MAX. Technische Info V10 Update

Dokumentation für das Spiel Pong

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Excel Funktionen durch eigene Funktionen erweitern.

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

Transkript:

Progrmmieren in C/C und Mtl Sine Schmidt & Sestin Buer Institut für Geowissenschften Christin-Alrechts-Universität zu Kiel Progrmmieren in C/C und Mtl CAU, SS 08

for- / while-schleifen: - numerische Integrlerechnung - numerische Berechnung von Felder / Arrys Letzte Woche - Deklrtion, Dimensionierung, mehrdimensionle Felder [i][j] - Initilisierung - Indizierung, Indexopertor [ ] - fixe Größe, ei Progrmmstrt zu definieren Continer / Vektoren - Deklrtion und Initilisierung - Indizierung, Itertor pos - flexile Größe, während des Pogrmmlufs vriel Progrmmieren in C/C und Mtl CAU, SS 08

Progrmmieren in C/C und Mtl CAU, SS 08 Üung 1

Progrmmstruktur: Üung 1 - Vrilendeklrtion - Vrileninitilisierung - Routine zum Einlesen der eiden 2x2-Mtrizen von der Tsttur - Einge der gewünschten Opertion (Addition/Multipliktion) - Ausführen der Opertion: Fllunterscheidung - Routine zur Ausge der neu erechneten Mtrix uf den Bildschirm Progrmmieren in C/C und Mtl CAU, SS 08

Vrilendeklrtion: Üung 1 Die Art der enötigte Vrilen richtet sich nch den uszuführenden Opertionen und Kontrollstrukturen. Es werden enötigt: 3 Mtrizendtenstrukturen: zweidimensionle Arrys des Typs doule [...][...] Wie groß müssen die Arrys sein? Kontrollvrile für die Fllunterscheidung Addition/Multipliktion: ei 2 möglichen Opertionen ist eine if / else Struktur sinnvoll. Tip: Benutzen Sie eine Vrile des Typs int ls Kontrollvrile ( Flg ). Mtrizenopertionen sind effizient mit Hilfe von geschchtelten for-loops zu implementieren: for(i=0;i<2;i) for(j=0;j<2;j)... Hierzu werden sog. Lufvrilen (Typ int) enötigt: i,j,... Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Vrileninitilisierung: Die deklrierten Vrilen müssen initilisiert werden. Dies knn ei einfchen Vrilen direkt ei der Deklrtion erledigt werden: int i = 0; Arrys können effizient durch for-loops initilisiert werden: for(i=0;i<2;i) for(j=0;j<2;j) doule [i][j]=0; Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Routine zum Einlesen der Mtrizen von der Tsttur: Benutzen Sie die iostrem Opertoren cout / cin : cout <<...Anweisung... " << endl; cin >> [0][0] >> [0][1];... Einge der gewünschten Opertion Benutzen Sie die iostrem Opertoren cout / cin um die Flg für die gewünschte Opertion zu setzen Ausführen der Opertion: Fllunterscheidung Benutzen Sie deine if / else Struktur sinnvoll mit der een eingelesenen Flg ls Kontrollvrile. Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Ausführen der Opertion: Fllunterscheidung Für eide Fälle (Addition/Multipliktion) sind geschchtelte forloops zu implementieren. Ausge der erechneten Mtrix Benutzen Sie den iostrem Opertoren cout und einen for-loop Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Progrmmieren in C/C und Mtl CAU, SS 08 Mtrizenddition = = = 11 11 01 01 00 00 11 01 00 11 01 00 c ij ij ij c = = = = 11 11 11 00 11 01 01 00 01 00 00 11 01 00 11 01 00 0 c n k kj ik ij c Mtrizenmultipliktion

Üung 1 Deklrtion & Initilisierung #include <cstdli> #include <iostrem> using nmespce std; int min(int rgc, chr *rgv[]) { // Vrilendeklrtion int fll=0; // flg zur Fllunterscheidung Addition / Multipliktion int i,j,k; // Lufvrilen doule [][], [][], c[][]; // 3 x Arrys // Initilisierung for(i=0;i<;i) for(j=0;j<;j) [i][j]=[i][j]=c[i][j]=0.0; Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Einlesen der Anweisungen // Einlesen der Mtrizen von der Tsttur cout << "Bitte die erste 2 x 2 Mtrix zeilenweise eingeen "; cout << "und jeweils Enter druecken. " << endl; cin >> [0][0] >> [0][1]; cin >> [1][0] >> [1][1]; cout << "Bitte die zweite 2 x 2 Mtrix zeilenweise eingeen "; cout << "und jeweils Enter druecken. " << endl; cin >> [0][0] >> [0][1]; cin >> [1][0] >> [1][1]; // Einlesen der Mtrizenopertion von der Tsttur cout << "Geen sie eine 0 fuer eine Addition oder eine 1 fuer "; cout << "eine Multipliktion der Mtrizen ein und drücken Sie Enter." << endl; cin >> fll; Flg fll Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Ausführung der Mtrizenerechnung: Fllunterscheidung // Afngen von Eingefehlern if(fll!= 0 && fll!= 1 ) // ist nicht... und ist uch nicht... { cout << "Sie hen gewehlt: Flsche Einge. "; cout << "Progrmmruch." << endl; system("pause"); return 0; } // Fllunterscheidung Addition / Multipliktion else if(fll == 0) { cout << "Sie hen gewehlt: Addition " << endl; for(i=0;i<2;i) for(j=0;j<2;j) c[i][j] = [i][j] [i][j]; } else if(fll == 1) { cout << "Sie hen gewehlt: Multipliktion " << endl; for(i=0;i<2;i) for(j=0;j<2;j) for(k=0;k<2;k) c[i][j] = [i][k] * [k][j]; } Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Ausführung der Mtrizenerechnung: Fllunterscheidung // Ausge der Mtrix C if(fll == 0) cout << "Die Addition der Mtrizen erg:" << endl; else cout << "Die Multipliktion der Mtrizen erg:" << endl; for(i=0;i<2;i) { for(j=0;j<2;j) cout << c[i][j] << " "; cout << endl; } cout << endl; system("pause"); return EXIT_SUCCESS; } Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Progrmmieren in C/C und Mtl CAU, SS 08 Üerprüfen Sie Ihr Progrmm nhnd der folgenden Mtrizen: = = 12 8 6 8 4 7 3 6 2 5 1 8 7 6 5 4 3 2 1 = = 50 43 22 19 4*8 3*6 4*7 3*5 2*8 1*6 2*7 1*5 8 7 6 5 4 3 2 1

Üung 1 Erweiterung uf Mtrizen (fst) elieiger Größe: Um den Code für die Berechnung von Mtrizen verschiedener Größen (z.b. 1x1 is x) zu verllgemeinern wird zusätzlich eine Routine zur Afrge der gewünschten Mtrizengröße enötigt: int dim = 0; // Einlesen der Dimension der Mtrizen von der Tsttur cout << "Bitte die Dimension der Mtrizen eingeen und "; cout << "Enter druecken. " << endl; cin >> dim; if(dim >= 1 && dim <= ) // ist größer gleich... oder kleiner gleich... cout << "Sie hen gewehlt: " << dim << endl; else { cout << "Sie hen gewehlt: " << dim << endl; cout << "Die Diemnsion der Mtrix ist nicht zwischen 1 x 1 "; cout << "und x. Progrmmruch." << endl; system("pause"); return EXIT_FAILURE; } Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Erweiterung uf Mtrizen (fst) elieiger Größe: Auch ds Einlesen der Mtrizen vom Bildschirm muss verllgemeinert werden: Es werden for-loops zur Einge enötigt. // Einlesen der Mtrizen von der Tsttur cout << "Bitte die erste Mtrix zeilenweise eingeen und "; cout << "jeweils Enter druecken. " << endl; for(i=0;i<dim;i) for(j=0;j<dim;j) cin >> [i][j]; cout << "Bitte die zweite Mtrix zeilenweise eingeen "; cout << "jeweils Enter druecken. " << endl; for(i=0;i<dim;i) for(j=0;j<dim;j) cin >> [i][j]; Progrmmieren in C/C und Mtl CAU, SS 08

Üung 1 Erweiterung uf Mtrizen (fst) elieiger Größe: Auch ei der Mtrizenerechnung und der Mtrizenusge müssen die for-loops verllgemeinert werden: Die hrt definierte Oergrenze der loops wird durch dim ersetzt for(i=0;i<dim;i) for(j=0;j<dim;j) Progrmmieren in C/C und Mtl CAU, SS 08

Progrmmieren in C/C und Mtl CAU, SS 08 Üung 2

Progrmmstruktur: Üung 2 - Vrilendeklrtion - Vrileninitilisierung - Routine zum Einlesen des Vektorinhlts - Einge der Anzhl der neu einzufügenden Vektorelemente - Einge der Position und des Wertes für jedes einzufügende Element - Routine zur Ausge des neuen Vektors uf den Bildschirm Progrmmieren in C/C und Mtl CAU, SS 08

Üung 2 Deklrtion & Initilisierung & Einlesen d. Vektors: #include <cstdli> #include <iostrem> #include <vector> // Extr Deklrtion im heder notwendig using nmespce std; int min(int rgc, chr *rgv[]) { // Vrilendeklrtion int n=0, wert, index; // Anzhl einzufuegende Werte int lenge; // Lenge des Vectors für Ausge vector < int> v_int(,0); // Vector mit int Zhlen, lle initilisiert std::vector<int>::itertor pos; // Itertor uf den Vector v_int // Einlesen der Zhlen von der Tsttur cout << "Bitte integer Zhlen eingeen. "; cout << "Nch jeder Zhl Enter druecken " << endl; for(int i=0;i<;i) cin >> v_int[i]; Progrmmieren in C/C und Mtl CAU, SS 08

Üung 2 Einfügen der neuen Elemente des Vektors: // Einfuegen von n Werten; Afrge n von Tsttur cout << "Wie viele Werte sollen eingefuegt werden? " ; cin >> n; // Einlesen des Wertes und der Position, n der der Wert eingefügt werden soll: cout << " Wert und Index, hinter dem eingefuegt werden soll, ngeen: " << endl; for(int i=0; i<n;i){ cin >> wert >> index; // Einlesen wert und index pos = v_int.egin() index; // Berechnung der Itertorposition mit // implizite Typumwndlung von int nch // std::vector<int>::itertor if(index <= i) // Bereichsprüfung - git es den Index? v_int.insert(pos, wert); // Einfuegen von wert n index else cout << " Index existiert nicht" << endl; } Progrmmieren in C/C und Mtl CAU, SS 08

Üung 2 Bildschirmusge des erweiterten Vektors: // Ausge, vriler oerer Zehlindex cout << "Vector neu: " << endl; // Zunächst muss estimmt werden, wie groß der erweiterte Vektor nun ist: lenge = v_int.size(); // Bestimmung der Schleifenoergrenze durch die Funktion //.size() des Dtenkontiners vector for(int i=0;i<lenge;i){ cout << v_int[i] <<" "; } cout << endl; system("pause"); return EXIT_SUCCESS; } Progrmmieren in C/C und Mtl CAU, SS 08