Programmieren. Aufgabe 1 (Eine erste Datenstruktur)

Ähnliche Dokumente
Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Informationsverarbeitung im Bauwesen

Anwendungssoftware III (MATLAB)

Welche Informatik-Kenntnisse bringen Sie mit?

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

MATLAB Onlinevorlesung. Dipl.-Inf. (FH) Patrick Rogge Seite 1

EiP Übung

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

2. Programmierung in C

3 Kurzeinführung in Matlab

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

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

Hochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.

Probeklausur Informatik 2 Sommersemester 2010

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Einführung in die Programmierung

JAVA-Datentypen und deren Wertebereich

Grundlagen der Informatik Übungen 1.Termin

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

Quadrieren Sie die Zahlen 3, pi, 1 und i mit Hilfe des Operators ^ und ziehen Sie aus den Ergebnissen jeweils die Wurzel.

Programmieren in MATLAB Mehr als nur ein Taschenrechner

Grundlagen der Programmierung

Installation. Arbeiten mit der MATLAB-Entwicklungsumgebung. MATLAB als Taschenrechner mit Matrix- und Vektorrechnung.

Sin-Funktion vgl. Cos-Funktion

Einführung in MATLAB

Übungen zu Informatik 1

Lösungsvorschlag zu 1. Übung

Termin 4: Programmieren in MATLAB

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

Informatik Repetitorium SS Volker Jaedicke

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Informatik B von Adrian Neumann

Grundlagen der Informatik (BSc) Übung Nr. 5

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am

1. 4-Bit Binärzahlen ohne Vorzeichen 2. 4-Bit Binärzahlen mit Vorzeichen 3. 4-Bit Binärzahlen im 2er Komplement 4. Rechnen im 2er Komplement

Numerische Datentypen. Simon Weidmann

Statistisches Programmieren

Kurze Einführung in die Programmiersprache C++ und in Root

Funktionen in Matlab. Lehrstuhl für Angewandte Mathematik Sommersemester und 29. Mai 2008

Numerisches Programmieren

Entwurf von Algorithmen - Kontrollstrukturen

Eine kurze Einführung in scilab

Einführung in die Programmierung

Probeklausur: Programmierung WS04/05

Dr. Monika Meiler. Inhalt

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Zahlen- und Buchstabencodierung. Zahlendarstellung

Grundbegriffe der Informatik

10 Lesen und Schreiben von Dateien

Binärzahlen. Vorkurs Informatik. Sommersemester Institut für Informatik Heinrich-Heine-Universität Düsseldorf

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

Lösung 1. Übungsblatt

Matlab Einführung. Tobias Wunner

Grundlagen der Informatik

Übungen Programmieren 1 Felix Rohrer. Übungen

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Hochschule München, FK 03 FA SS Ingenieurinformatik

10:Exkurs MATLAB / Octave

Objektorientierte Programmierung

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

Mikrocontroller effektiv in C programmieren - ein noch unbekanntes Land

Informatik I Übung, Woche 40

Programmieren in C/C++ und MATLAB

Information in einem Computer ist ein

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = binär

Greenfoot: Verzweigungen

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

Primitive Datentypen

Die Programmiersprache C

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Inhalt. Peter Sobe 63. Felder in C

Werkzeuge zur Programmentwicklung

Running R. Windows Aus Menü. Lese R Code ein führt den Code auch gleich aus, eventuell muss vorher das Verzeichnis gewechselt werden.

Tag 9: Datenstrukturen

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Schleifenanweisungen

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

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

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

Erwin Grüner

Universität Duisburg - Essen

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Kapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik

Programmierung mit NQC: Kommunikation zwischen zwei RCX

2D-Transformationen. Kapitel Translation. 6.2 Skalierung

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Suchen und Sortieren Sortieren. Heaps

Probeklausur: Programmierung WS04/05

4.4. Rang und Inversion einer Matrix

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Daten, Informationen, Kodierung. Binärkodierung

Unterprogramme, Pointer und die Übergabe von Arrays

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Processing Info zu Variablen und Bedingungen

Multimedia im Netz Wintersemester 2011/12

Transkript:

Prof. Dr. S.-J. Kimmerle (Vorlesung) Dipl.-Ing. (FH) V. Habiyambere (Übung) Institut BAU-1 Fakultät für Bauingenieurwesen und Umweltwissenschaften Herbsttrimester 2016 Aufgabe 1 (Eine erste Datenstruktur) Programmieren Übung 2 a) Programmieren Sie die in der Vorlesung in Abschnitt 2.3.5 vorgestellte Datenstruktur student. Benutzen Sie hierzu ein Editor-Fenster und speichern diese ab. b) Ergänzen Sie die Datenstruktur um einen weiteren Zweig Matrikelnummer wie in Abb. 2.3 des Skripts angedeutet. Ergänzen Sie bei den beiden bisher angelegten Studenten Mayer und Mustermann jeweils die Matrikel-Nummern 0017001123 und 0017001130. c) Legen Sie einen weiteren Test-Studenten mit fiktiven Daten in der Struktur an. d) Testen Sie ihre Eingaben durch Abrufen verschiedener Daten. Speichern Sie dann Ihr Skript unter Blatt2 Aufgabe1.m. Wir werden in einer späteren Übung zur Objektorientierung darauf zurückkommen. a) student.name.nachname = Mayer ; student.name.vorname = Michael ; student.note.klausur1 = 4.7; student.note.klausur2 = 1.0; student.uebungsschein = Ja ; student(2).name.nachname = Mustermann ; student(2).name.vorname = Markus ; student(2).note.klausur1 = 1.7; student(2).uebungsschein = Nein ; b) Man beachte, dass man jetzt auf student(1) zugreifen muss und student allein nicht mehr funktioniert (wie noch in a)), da es jetzt ja bereits 2 Datensätze gibt. student(1).matrikelnummer = 0017001123 ; student(2).matrikelnummer = 0017001130 ; 1

c) Hier folgt man analog den Schritten in a) und b). Aufgabe 2 (Wahrheitstafel) Man definiere zwei logische Variablen Wahr and Falsch. Wie in Matlab üblich wird Wahr der Wert 1 und Falsch der Wert 0 zugewiesen. Benutzen Sie dazu die in Matlab vorgegebene Funktion boolean. Berechnen Sie für die logischen Operatoren UND (a && b), ODER (a b) und XOR (exklusives Oder: xor(a, b)) alle verschiedenen Kombinationen. Beispiel: Für UND hat man zu betrachten: Wahr && Wahr, Wahr && Falsch, Falsch && Wahr, Falsch && Falsch. Versuchen Sie Ihre Ausgabe wie in einer sogenannten Wahrheitstafel formatiert zu gestalten. Wir definieren zuerst Wahr = boolean(1) Falsch = boolean(0) Eine Wahrheitstafel lautet dann z.b. für XOR fprintf( a XOR b Wahr Falsch \n ) fprintf( Wahr %d %d \n, xor(wahr, Wahr), xor(wahr, Falsch)) fprintf( Falsch %d %d \n, xor(falsch, Wahr), xor(falsch, Falsch)) Für die anderen Fälle muss man den Operator entsprechend ersetzen. Aufgabe 3 (Matrizen und Vektoren) Berechnen Sie Sinus und Kosinus von 0 bis 2π in Schritten von π/6. Gehen Sie dazu folgendermaßen vor: a) Definieren Sie einen Zeilenvektor namens alpha, der die Winkel von 0 bis 2π in Schritten von π/6 enthält (in Bogenmaß). b) Berechnen Sie Sinus und Kosinus zu dem Winkel-Vektor alpha. Weisen Sie die Ergebnisse den Variablen si und co zu. c) Fassen Sie die Winkel alpha und die berechneten Stützstellen si und co in einer Matrix M in dieser Reihenfolge spaltenweise zusammen. d) Welche Dimension hat die Matrix? e) Plotten Sie die berechneten Näherungen si und co in ein gemeinsames Fenster. 2

f) Indizieren Sie von den letzten beiden Zeilen der Matrix M die Spalten 1 und 3 und weisen diese einer Untermatrix UM zu. a) >> alpha = 0:pi/6:2*pi alpha = 0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416... 3.6652 4.1888 4.7124 5.2360 5.7596 6.2832 b) >> si = sin(alpha) si = 0 0.5000 0.8660 1.0000 0.8660 0.5000... 0.0000-0.5000-0.8660-1.0000-0.8660-0.5000-0.0000 >> co = cos(alpha) co = 1.0000 0.8660 0.5000 0.0000-0.5000-0.8660... -1.0000-0.8660-0.5000-0.0000 0.5000 0.8660 1.0000 c) >> M = [alpha si co ] M = 0 0 1.0000 0.5236 0.5000 0.8660 1.0472 0.8660 0.5000 1.5708 1.0000 0.0000 2.0944 0.8660-0.5000 2.6180 0.5000-0.8660 3.1416 0.0000-1.0000 3.6652-0.5000-0.8660 4.1888-0.8660-0.5000 4.7124-1.0000-0.0000 5.2360-0.8660 0.5000 5.7596-0.5000 0.8660 6.2832-0.0000 1.0000 d) >> size(m) 13 3 e) >> plot(alpha, si, alpha, co) 3

1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0 1 2 3 4 5 6 7 f) >> UM = M(end-1:end, [1 3]) UM = 5.7596 0.8660 6.2832 1.0000 Aufgabe 4 (Maximum und Minimum) Schreiben Sie ein eigenes Skript, dass das Maximum und das Minimum zu einem gegebenen Vektor a mit 10 Komponenten ermittelt. Testen Sie Ihr Programm an folgendem Vektor a = [3.3 4.4-0.2 6.0-10.33 5.2 7.0 -.2 4.0 8.1] und auch an weiteren Vektoren (mit 10 Komponenten). Finden Sie heraus, welche Befehle Matlab hierzu zur Verfügung stellt und vergleichen Sie. Das Skript min = a(1); a(1); for j=2:10 if a(j) > max a(j) end if a(j) < min min = a(j) end end fprintf( Das Maximum in Vektor a ist %.4f, das Minimum ist %.4f. \n, max, min); 4

liefert folgende Ausgabe: >> Blatt2_Aufgabe3 4.4000 min = -0.2000 6 min = -10.3300 7 8.1000 Das Maximum in Vektor a ist 8.1000, das Minimum ist -10.3300. Mit den Matlab-Befehlen max() und min() findet man dasselbe Ergebnis. Aufgabe 5 (Auflistung durch eine Schleife) Geben Sie eine formatierte Liste mit allen Binärzahlen und Hexadezimalzahlen, die den Dezimalzahlen von 0 bis 30 entsprechen, aus. Benutzen Sie dazu eine for-schleife, dec2bin(), dec2hex() und fprintf(). Beachten Sie dabei, dass dec2bin() und dec2hex() Zeichenketten zurückliefern. Können Sie Ihren Code so umschreiben, dass eine while-schleife verwendet wird? fprintf( Dezimal Binär Hexadezimal \n ); for i=1:50 fprintf( %2d %6s %2s \n, i, dec2bin(i), dec2hex(i)); end; Mit einer while-schleife lautet der Code fprintf( Dezimal Binär Hexadezimal \n ); i = 0; while i <= 50 fprintf( %2d %6s %2s \n, i, dec2bin(i), dec2hex(i)); i = i+1; end; 5

Aufgabe 6 (Überlauf) Die Matlab-Standardfunktion bin2dec() wandelt Binärzahlen in Dezimalzahlen um. Berechnen Sie mit Hilfe dieser Funktion die größte positive Zahl für die Datentypen int8 (8 bit) und int16 (16 bit)! Denken Sie daran, daß eine Bitposition für das Vorzeichen (+ oder -) steht. >> bin2dec( 111111 ) 127 >> 2^7-1 127 >> bin2dec( 111111111111111 ) 32767 >> 2^15-1 32767 Bearbeitung der Aufgaben in der Übung am 21.10.2016 bzw. am 28.10.2016. 6