Modellierung und Simulation - Wiederholung 1-6

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Autor: Prof. Dr.-Ing. Schneider
Termin: 11.04.2025

Aufgabe 7.1 - Funktionen

Schreiben Sie die Funktion Celsius im m-File Celsius.m, die eine übergebene Fahrenheit-Temperatur in den zugehörigen Celsius-Wert umrechnet und diesen zurückgibt:

function c = Celsius(fahr)

Zur Umrechnung von Grad Fahrenheit in Grad Celsius dient die Formel:

c = (5.0/9.0) * (fahr − 32)

Testen Sie Ihre Funktion mit mehreren Temperaturen.

Schreiben Sie eine weitere Funktion Fahrenheit, die eine übergebene Celsius-Temperatur in den Fahrenheit-Wert umrechnet:

function f = Fahrenheit(c)

Rufen Sie die beiden Funktionen auch hintereinander auf, also beispielsweise

>> f = Fahrenheit( Celsius( fahr ) )

Aufgabe 7.2 - Funktionen

Erstellen Sie die Funktion Pythagoras im m-File Pythagoras.m, die aus den zwei übergebenen Argumenten a und b die Zahl c nach dem Satz von Pythagoras berechnet, also a2+b2=c2. Vor der Zuweisung des Rückgabewerts c müssen Sie natürlich noch die Wurzel aus c2 ziehen:

function c = Pythagoras(a, b)

Testen Sie Ihre Funktion mit mehreren Zahlenpaaren.

Aufgabe 7.3 - Ein- und Ausgabe

Schreiben Sie die Funktion function u = UmfangInput(prompt). Die Daten für den Radius sollen über input von der Tastatur abgefragt werden. Die neue Funktion mit dem Namen UmfangInput muss in dem neuen m-File UmfangInput.m abgespeichert werden.

Als Eingabe-Aufforderung für den Radius dient der an die Funktion übergebene Text, der im Parameter prompt abgelegt ist. Nach der Berechnung des Umfangs werden der Radius und der Umfang mithilfe der Funktion fprintf ausgegeben.

Aufgabe 7.4 - Ein- und Ausgabe

Erweitern Sie die Funktion UmfangInput, damit sie außer dem Umfang auch noch die Kreisfläche berechnet. Die beiden Ergebnisse sollen sowohl mit fprintf ausgegeben als auch von der Funktion zurückgegeben werden.

Experimentieren Sie mit unterschiedlichen Formatanweisungen bei der Ausgabe mit fprintf, beispielsweise durch eine Variation der Zahl der Nachkommastellen.

Aufgabe 7.5 - Ein- und Ausgabe

rstellen Sie die Funktion AdditionInput, die nacheinander zwei Zahlen über den Aufruf von input anfordert und in den Variablen a und b speichert. Diese Zahlen werden danach addiert. Ihre Summe wird in der Variablen c zurückgegeben:

function c = AdditionInput()

Verwenden Sie zur Eingabe-Aufforderung einen geeigneten Prompt und testen Sie Ihre Funktion mit unterschiedlichen Zahlenpaaren.

Schreiben Sie eine zweite Funktion zur Addition, die analog UmfangVar mit einer variablen Übergabeliste arbeitet:

function c = AdditionVar(varargin)

Aufgabe 7.6 - Verzweigung

Schreiben Sie eine Funktion QuotientInput, die zwei Zahlen a und b von der Tastatur einliest. Prüfen Sie, ob b gleich null ist. Geben Sie in diesem Fall eine Fehlermeldung aus. Berechnen Sie ansonsten den Quotienten a/b und geben Sie das Ergebnis mit fprintf aus. Testen Sie die Funktion mit mehreren Zahlenwerten.

Aufgabe 7.7 - Verzweigung

Schreiben Sie die Funktion intervall, die von der Tastatur eine Zahl einliest. Liegt diese Zahl im Intervall zwischen 10 und 99, wird sie zurückgegeben. Anderenfalls erfolgt eine Fehlermeldung. Testen Sie die drei möglichen Fälle mit mehreren Zahlenwerten.

Schreiben Sie die weitere Funktion intervall2, die analog nur Eingabewerte außerhalb des Intervalls von 1 und 2 bearbeitet. Testen Sie die Funktion.

Aufgabe 7.8 - Verzweigung

Erstellen Sie die Funktion Auswahl, die als Erstes von der Tastatur ein Zeichen c einliest. Mit einer verschachtelten if-else-Abfrage soll dann in Abhängigkeit von c wie folgt verfahren werden: Ist c das Zeichen „k“, wird von der Tastatur ein Radiuswert r abgefragt und die Kreisfläche πr2 berechnet. Ist c das Zeichen „q“, wird von der Tastatur die Kantenlänge a abgefragt und die Quadratfläche a2 berechnet. Ist c das Zeichen „r“, werden von der Tastatur die Länge l und die Breite b abgefragt und die Rechteckfläche lb berechnet. Kommt ein anderes Zeichen, wird eine Fehlermeldung ausgegeben. Zu jedem der regulären Fälle sollen die Lösung und der Flächentyp mit fprintf ausgegeben werden.

Schreiben Sie eine weitere Funktion Auswahl2, die anstelle der verschachtelten if-else-Abfragen eine switch-Anweisung verwendet, und testen Sie alle möglichen Fälle.

Aufgabe 7.9 - Verzweigung

Erstellen Sie die Funktion Umfangsprache, die wie UmfangInput aus Aufgabe 7.4 arbeitet, die jedoch einen Eingabeparameter besitzt, mit dem man für die Aufforde rung zur Radiuseingabe unterschiedliche Sprachen wählen kann, zum Beispiel mit „g“ für Deutsch: „Bitte Radius eingeben: “, mit „e“ für Englisch: „Please type in radius value: “ etc.

Aufgabe 7.10 - Schleifen

Erstellen Sie eine Funktion, die mit einer Zählschleife rückwärts die Kubikwerte x3 für x = 5 bis x = 2 ausgibt. Formatieren Sie die Ausgabe übersichtlich und erzeugen Sie auch eine aussagekräftige Überschrift.

Aufgabe 7.10 - Schleifen

Aufgabe 7.10 - Schleifen


MATLAB® Befehlsübersicht
→ zurück zum Hauptartikel: BSE Modellierung und Simulation - SoSe25