Erstellen sie mit VBA eine
Funktion zur Berechnung der Menge einer radioaktiven Substanz
Details
Achten sie weniger auf die vorgegebene Formel - es kommt in der Praxis
öfters vor, dass sie eine Formel oder einen Algorithmus ("Rechenvorschrift")
programmieren müssen, ohne die Formel zu "verstehen". Eine
der Künste der Programmierung ist es, beliebige "Formeln",
die andere Leute erfunden haben, durch Programme ausführbar zu machen.
Die Menge einer radioaktiven Substanz ist durch folgende Funktion zu
berechnen: A(t) = A(0) * exp(-lambda * t) A ... Aktivitäts-Menge t ... Zeit lambda ... Zerfallskonstante des jeweiligen
Nuklids
Die Zerfallskonstante können sie aus der Halbwertszeit berechnen:
lambda = ln(2) / tH tH ... Halbwertszeit
Stellen sie
die Funktion in einem Kalkulations-Arbeitsblatt als Tabelle und Grafik
dar. Vorgaben: A(0), tH, weiters ein beliebiger
Zeit-Bereich.
Die Tabelle sollte folgende Spalten enthalten: Zeit, (noch) vorhandene
Menge. Die Menge zu
jedem der etwa 50 vorgegebenen Zeitpunkte aus der Tabelle berechnen sie
mit Hilfe einer eigenen VBA-Funktion Beginnen sie
mit A(0)=100, tH=10 und einem Zeitbereich von
t=0 bis t=100. Experimentieren
sie nach Fertigstellung mit verschiedenen anderen Werten (d.h. entsprechend
verschiedenen Mengen und Halbwertszeiten) Erstellen sie
ein Diagramm Aktivitätsmenge gegen Zeit, das den Zerfall einer
radioaktiven Substanz zeigt Dokumentieren
sie ihre Lösung auf einer Webseite: Standard-Daten, VBA-Quellcode,
Tabelle, Grafik, Link zu einem Archiv (ZIP) ihrer Lösung.
Optional: Berechnen sie
zusätzlich die bereits zerfallene Menge und das Verhältnis "Zerfallen/Vorhanden"
in einer eigenen Spalte. Erstellen sie ein Diagramm Verhältnis(Zerfallen/Vorhanden)
gegen Zeit: Wenn man dieses Verhältnis in der Probe einer Substanz
bestimmen kann (z.B. chemisch), dann kann man das Alter der Substanz
so wie in ihrer Tabelle berechnen - Die Grundlage einiger Methoden
zur Altersbestimmung.
Hilfe
finden sie u.a. auf der
VBA-Funktionen-Seite
von PS-Trainer. - Achtung:
Diese Seite wird kurzfristig durch eine weitere Hilfs-Seite ergänzt.
Sehen sie bei Gelegenheit dort nochmals nach !
Einige Tipps als Rückmeldung der Programmier-Praxis: Eine VBA-Funktion
beginnt immer mit dem WortFunction und
endet bei End Function. Falls sie in ihrem VBA-Blatt
Sub bzw. End Sub finden,
so handelt es sich dabei um ein Macro, nicht um eine Function
! Unmittelbar nach dem Wort Function folgt der
Name der Function (von ihnen vergeben) sowie ein Paar von (Klammern).
Beispiel: Function Test ()
End Function Sie können
so viele Variable verwenden, wie sie brauchen. Verwenden sie "sprechende"
Namen für ihre Variablen, beginnen sie die Namen immer mit einem
Buchstaben, verwenden sie keine Sonderzeichen (Leerzeichen, Klammern,
Punkte, ...) in den Namen. Alle Werte, die
sie zur Berechnung benötigen, müssen von Excel an VBA als "Parameter"
übergeben werden. Sie fügen dazu die Parameter in die (Klammern)
der ersten Function-Zeile ein, mehrere Parameter trennen sie durch Beistriche.
Beispiel: Function Test (Wert1, Wert2)
Mittelwert = (Wert1 + Wert2 ) / 2
Test = Mittelwert
End Function Jede Function
muss genau einen Wert an Excel zurückgeben.
Sie programmieren das durch die Zuweisung eines Wertes an eine Variable,
die genau den Namen der Function trägt (obiges Beispiel).
Normalerweise geschieht das am Ende der Function,
unmittelbar vor End Function. Die Exponential-Funktion
lautet in Excel und VBA exp(). Der natürliche
Logarithmus lautet in Excel LN(), in VBA dagegen
log(). Wenn ihre VBA-Function
erstmals überhaupt existiert (auch wenn sie noch nichts "berechnet"),
dann kann sie in Excel wie jede andere (eingebaute) Funktion verwendet
werden. Sie finden ihre Funktion in der Gruppe "Benutzerdefinierte
Funktionen".
Ergebnis
Stand vom 2002-12-10
Aufgabe gelöst von 7 StudentInnen, nicht gelöst von 2 StudentInnen.
Vergebene Punkte: Mittelwert = 14.4 von 20Punkten. (72 %)