Themen: Skripte, if-else, for-Schleifen,
while-Schleifen und Funktionen
Lernziele:
MATLAB-Skripte schreiben und ausführen
Bedingungen mit if, elseif und else verwenden
for- und while-Schleifen programmieren
Eigene Funktionen schreiben und aufrufen
Programme testen und Fehler finden
1. MATLAB-Skripte
Ein Skript ist eine MATLAB-Datei mit der Endung .m.
Die Befehle werden normalerweise von oben nach unten ausgeführt.
% Beispiel: grundlagen.m
a = 5;
b = 3;
summe = a + b;
disp(summe);
Aufgabe 1: Grundrechenarten
Erstelle ein Skript namens grundlagen.m.
Speichere die Zahlen 12 und 7 in den Variablen a und b.
Berechne Summe, Differenz, Produkt und Quotient.
Gib die Ergebnisse mit disp oder fprintf aus.
Berechne den Mittelwert der beiden Zahlen.
Aufgabe 2: Vektoren
Erstelle den Vektor x = [2 4 6 8 10].
Berechne die Summe aller Elemente.
Bestimme Minimum und Maximum.
Berechne den Mittelwert.
Erstelle einen Vektor mit doppelt so großen Elementen.
2. Bedingungen: if, elseif und else
temperatur = 18;
if temperatur < 0
disp('Frost');
elseif temperatur < 20
disp('Kuehl');
else
disp('Warm');
end
Wichtige Operatoren:
== gleich
~= ungleich
> größer als
< kleiner als
>= größer oder gleich
<= kleiner oder gleich
Aufgabe 3: Positive und negative Zahlen
Schreibe ein Programm, das eine Zahl x überprüft.
Bei einer positiven Zahl: Ausgabe „positiv“.
Bei einer negativen Zahl: Ausgabe „negativ“.
Bei null: Ausgabe „Null“.
Teste das Programm mit 5, -3 und 0.
Aufgabe 4: Notenbewertung
Eine Punktzahl zwischen 0 und 100 soll bewertet werden.
90 bis 100: Sehr gut
75 bis unter 90: Gut
60 bis unter 75: Befriedigend
50 bis unter 60: Bestanden
Unter 50: Nicht bestanden
Verwende if, elseif und else. Gib eine Fehlermeldung aus,
wenn die Punktzahl außerhalb von 0 bis 100 liegt.
Teste die Werte 49, 50, 60, 75, 90 und 100.
Aufgabe 5: Schaltjahr
Schreibe ein Programm, das erkennt, ob ein Jahr ein Schaltjahr ist.
Ein Jahr ist ein Schaltjahr, wenn es durch 400 teilbar ist oder
wenn es durch 4, aber nicht durch 100 teilbar ist.
Verwende mod und teste die Jahre 2000, 1900, 2024 und 2025.
3. For-Schleifen
for i = 1:5
disp(i);
end
Aufgabe 6: Zahlen ausgeben
Gib die Zahlen von 1 bis 20 aus.
Gib nur die geraden Zahlen von 2 bis 20 aus.
Gib die Zahlen von 20 bis 1 rückwärts aus.
Verwende jeweils eine for-Schleife.
Aufgabe 7: Summe und Fakultät
Berechne mit einer for-Schleife die Summe von 1 bis 100.
Berechne die Fakultät von 6: 6! = 1·2·3·4·5·6.
Vergleiche die Ergebnisse mit sum(1:100) und factorial(6).
Initialisiere die Summenvariable mit 0 und die Produktvariable mit 1.
Aufgabe 8: Multiplikationstabelle
Erzeuge mit zwei verschachtelten for-Schleifen eine
Multiplikationstabelle für die Zahlen 1 bis 10.
Gib die Ergebnisse mit fprintf aus.
Versuche, die Ausgabe als Tabelle zu formatieren.
4. While-Schleifen
i = 1;
while i <= 5
disp(i);
i = i + 1;
end
Aufgabe 9: Zählen mit while
Schreibe eine while-Schleife, die die Zahlen von 1 bis 10 ausgibt.
Initialisiere eine Zählvariable und erhöhe sie in jedem Durchlauf.
Erkläre, was passiert, wenn die Erhöhung fehlt.
Aufgabe 10: Bis 1000 summieren
Addiere die natürlichen Zahlen 1, 2, 3 usw., bis die Summe
erstmals größer als 1000 ist.
Verwende eine while-Schleife.
Speichere die Summe und die Anzahl der addierten Zahlen.
Gib beide Werte aus.
Zusatz: Gib die letzte hinzuaddierte Zahl aus.
Aufgabe 11: Newton-Verfahren
Berechne die Quadratwurzel einer positiven Zahl a näherungsweise.
Verwende die Iteration:
x_neu = 0.5 * (x_alt + a/x_alt)
Setze a = 25 und den Startwert x = a.
Wiederhole die Berechnung mit einer while-Schleife.
Beende die Schleife, wenn die Änderung kleiner als 1e-6 ist.
Begrenze die Iterationen auf 100.
Vergleiche mit sqrt(a).
5. MATLAB-Funktionen
Funktionen können Eingaben entgegennehmen und Ergebnisse zurückgeben.
Üblicherweise werden sie in einer eigenen .m-Datei gespeichert.
% Datei: quadrat.m
function y = quadrat(x)
y = x^2;
end
Aufruf:
ergebnis = quadrat(5);
disp(ergebnis);
Aufgabe 12: Quadratfunktion
Schreibe die Funktion quadrat.m, die eine Zahl x erhält
und ihr Quadrat zurückgibt.
Teste sie mit 3, -4 und 0.
Aufgabe 13: Mittelwertfunktion
Schreibe eine Funktion mittelwert2.m, die zwei Zahlen a
und b erhält und ihren Mittelwert zurückgibt.
Zusatz: Erstelle eine Funktion für den Mittelwert eines Vektors.
Aufgabe 14: Fakultät als Funktion
Schreibe fakultaet.m. Die Funktion erhält eine
nichtnegative ganze Zahl n und gibt n! zurück.
Verwende eine for-Schleife.
Berücksichtige den Sonderfall n = 0.
Prüfe, ob n eine nichtnegative ganze Zahl ist.
Teste n = 0, 1, 5 und 10.
Aufgabe 15: Primzahlprüfung
Schreibe eine Funktion istPrimzahl.m, die einen logischen
Wert zurückgibt.
Primzahlen sind ganze Zahlen größer als 1.
Prüfe die Teilbarkeit durch Zahlen von 2 bis sqrt(n).
Gib true für Primzahlen und false für andere Zahlen zurück.
Teste 1, 2, 9, 17 und 25.
Zusatz: Gib mit dieser Funktion alle Primzahlen von 1 bis 100 aus.
6. Abschlussprojekt: Zahlenanalysator
Aufgabe 16: Gemischtes Projekt
Erstelle einen Vektor mit mindestens zehn Zahlen und analysiere ihn.
Berechne Minimum, Maximum und Mittelwert.
Zähle mit einer Schleife positive, negative und nullwertige Zahlen.
Prüfe für ganze Zahlen, ob sie gerade oder ungerade sind.
Schreibe eine eigene Funktion, die prüft, ob eine Zahl positiv ist.
Speichere Hauptskript und Funktion in getrennten Dateien.
Teste dein Programm mit verschiedenen Vektoren.
Abgabe: Hauptskript, Funktionsdatei und eine kurze Erklärung.
7. Verständnisfragen
Was ist der Unterschied zwischen einem Skript und einer Funktion?
Wann eignet sich eine for-Schleife, wann eine while-Schleife?
Welche Aufgabe hat end in MATLAB?
Was passiert, wenn eine while-Bedingung nie falsch wird?
Was ist der Unterschied zwischen = und ==?
Warum sollte der Dateiname einer Funktion ihrem Namen entsprechen?
Was berechnet mod(a,b)?
8. Selbstkontrolle
☐ Ich kann ein MATLAB-Skript erstellen und ausführen.
☐ Ich kann if, elseif und else verwenden.
☐ Ich kann for- und while-Schleifen schreiben.
☐ Ich kann verschachtelte Schleifen verwenden.
☐ Ich kann eigene Funktionen schreiben und aufrufen.