• Keine Ergebnisse gefunden

Aufgabe2(EnumsundStructs, 6Punkte ) Aufgabe1(Matrixmultiplikation, 8Punkte ) Abgabevom21.12.2005bis10.1.2006inderangemeldeten¨Ubung ¨UbungenzuGrundlagenderProgrammierunginC-BlattVII

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgabe2(EnumsundStructs, 6Punkte ) Aufgabe1(Matrixmultiplikation, 8Punkte ) Abgabevom21.12.2005bis10.1.2006inderangemeldeten¨Ubung ¨UbungenzuGrundlagenderProgrammierunginC-BlattVII"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. G. Zachmann

Dipl.-Inf. C. Giesemann

TU Clausthal Institut f¨ur Informatik

15. Dezember 2005

Wintersemester 2005/2006

Ubungen zu Grundlagen der Programmierung in C - Blatt VII ¨

Abgabe vom 21.12.2005 bis 10.1.2006 in der angemeldeten ¨ Ubung

Aufgabe 1 (Matrixmultiplikation, 8 Punkte)

Hinweise:

Das Produkt von zwei N x N MatrizenA = (aij)1≤i≤N,1≤j≤N und B = (bij)1≤i≤N,1≤j≤N zu Matrix C= (cij)1≤i≤N,1≤j≤N :

a11 a12 ... a1N

a21 a22 ... a2N

... ... . .. ... aN1 aN2 ... aN N

·

b11 b12 ... b1N

b21 b22 ... b2N

... ... . .. ... bN1 bN2 ... bN N

=

c11 c12 ... c1N

c21 c22 ... c2N

... ... . .. ... cN1 cN2 ... cN N

l¨aßt sich wie folgt berechnen:

cij=

N

X

k=1

aik·bkj,∀i, j: 1≤i≤N,1≤j≤N

N soll als Konstante mit const int N = <Wert>; im Programm deklariert werden. ¨Uberall, wo die Gr¨oßeNben¨otigt wird, soll mit der Konstante gearbeitet werden.

Speichern Sie die Matrizen als 2-dimensionale Arrays. Verwenden Sie die KonstanteNals Arraygr¨oße.

Beachten Sie den Unterschied zwischen Index (von 0 bis N-1) und der zugeh¨origen mathematischen Darstellung (von 1 bis N).

Mittels 3 ineinander geschachtelterforSchleifen kann die Multiplikation durchgef¨uhrt werden.

1. Schreiben Sie ein Programm, das zwei 3 x 3 Matrizen in Arrays einliest, das Produkt berechnet und, wie oben angedeutet, Matrizen und Produkt (in Spalten angeordnet, ohne Klammern) ausgibt.

2. ¨Andern Sie das Programm, um zwei 5 x 5 Matrizen einzulesen.

Aufgabe 2 (Enums und Structs, 6 Punkte)

Gegeben seien folgende Typ-Definitionen:

enum S t a t e {

DOWN, UP };

1

(2)

s t r u c t MachineRec {

i n t i d ;

f l o a t f a i l R a t e ; S t a t e s t a t e ;

f l o a t d o w n T i m e I n S e c o n d s ; f l o a t c o s t ;

};

1. Schreiben Sie ein Programm, in dem folgende Werte in 2 Variablen vom TypMachineRecgespei- chert werden. Die Werte sollen im Programm fest zugewiesen werden. Geben Sie im Programm den Inhalt dieser Records auf dem Bildschirm aus. Dabei soll der Wert von state im Klartext ausgegeben werden (“DOWN” oder “UP”). Diedown timesoll nur dann ausgegeben werden, wenn state den Wert DOWN hat.

Maschine 1:

• id: 17

• failRate: 0.01

• state: DOWN

• downTimeInSeconds: 70

• cost: 599,90 Maschine 2:

• id: 26

• failRate: 0.06

• state: UP

• downTimeInSeconds: 0

• cost: 399,00

Aufgabe 3 (Filmdatenbank, 8 Punkte)

Hinweise:

Man kann mitscanfMinuten:Sekunden einlesen, in dem man den:als Trennzeichen im Formatstring verwendet: scanf ( ”%d:%d”, &arg1, &arg2);

1. Schreiben Sie ein Programm, das eine kleine Filmdatenbank mit maximal 100 (als Konstante siehe Aufgabe 1 deklariert) Filmen realisiert. Zu jedem Film m¨ussen folgende Daten gespeichert werden:

• Titel

• Genre

• Regisseur

• Produktionsjahr (alsint)

• Produktionsland

• Laufzeit in Minuten:Sekunden (als weitere eingebundenestructmit zweiint)

Die M¨oglichkeiten bei Genre sollen zuvor als enum deklariert werden. Zul¨assig sind nur Action, Thriller, Science-Fiction, Drama, Horror und Musical. Der Benutzer soll angeben, wie viele Filme eingegeben werden sollen. Das Programm soll ¨uberpr¨ufen, ob der Wert zul¨assig ist und dann den Benutzer nacheinander auffordern, was er als n¨achstes eingeben soll. Nach dem letzten Eintrag soll der zuvor eingelesene Inhalt der Datenbank ausgegeben werden. ¨Uberlegen Sie sich, wie Sie das Genre einlesen wollen. Bei der Ausgabe soll das Genre im Klartext ausgegeben werden. Weisen Sie den Benutzer darauf hin, wie er die Laufzeit einzugeben hat und geben Sie diese mit :getrennt auch wieder aus.

2

Referenzen

ÄHNLICHE DOKUMENTE

ls Pfadname kann man alle Dateien und Unterverzeichnisse innerhalb eines Verzeichnisses anzeigen.. (Pfadname = File, relativer Pfad oder

Lesen Sie sich die Man-Page zu ls durch und geben Sie den Befehl an, mit dem der Inhalt des Verzeichnisses /usr/bin aufsteigend der Gr¨ oße nach sortiert aufgelistet wird (also mit

¨ Andern Sie jetzt das Programm so ab, daß es statt World Ihre Namen nach Hello ausgibt.. Spei- chern Sie dieses Programm als hello2.cpp und ¨ ubersetzen Sie es

Schreiben Sie ein Programm, das zwei integer Zahlen einliest und entsprechend der Werte die beiden boolean Variablen x und y auf true oder false setzt. Dabei soll die Eingabe einer

Schreiben Sie ein Programm, das eine 3 x 3 Matrix einliest, diese in einem 2-dimensionalen array speichert und die zugeh¨ orige Determinante berechnet.. Anschließend soll sowohl

Verwenden Sie eine Funktion f¨ ur die Umwandlung der Buchstaben, welche einen Buchstaben und den Verschiebewert k als Parameter erh¨ alt und den verschl¨ usselten Buchstaben als

Schreiben Sie ein Programm, das ein Labyrinth als array ([y Dimension][x Dimension]) nach Bild A enth¨ alt und eine Funktion druckeLabyrinth benutzt, um das Labyrinth auf dem

Schreiben Sie eine Funktion, welche eine Person (oder alternativ einen Pointer auf eine Person) als Parameter erh¨ alt und f¨ ur diese Person folgende Daten ausgibt:. •