VBA Reihenentwicklung < Tabellenkalkulationen < Anwendungsprogramme < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:53 Sa 21.01.2012 | Autor: | Clone |
Aufgabe | Es ist folgende Reihenentwicklung mit Hilfe eines VBA-Programmes zu lösen:
f(x) = 1 + [mm] \bruch{1}{2}x [/mm] + [mm] \bruch{2}{3}x [/mm] + [mm] \bruch{3}{4}x [/mm] + [mm] \bruch{4}{5}x [/mm] + [mm] \ldots [/mm] mit x [mm] \le [/mm] 1.0
Die Reihenberechnung soll enden, wenn die Differenz zwischen dem jeweils vorletzten und dem jeweils letzten Element der Reihe einen vorgegebenen Wert (z.B 1E-10) unterschreitet. Dieser Wert ist in einer Variablen d von Typ double vorgegeben. Der Wert für x ist in einer Variblen x von Typ double vorgegeben.
Alle anderen Variablennamen dürfen Sie sich selbst ausdenken. Es ist keine vollständige Prozedur verlangt, sondern nur der Programmcode für die Reihenentwicklung. Auch auf eine Ausgabe soll verzichtet werden. |
Hallo,
ich habe diese Frage in keinem anderen Forum gestellt.
Leider finde ich hierfür keinen richtigen Ansatz.
Mit If ... Then GoTo hab ich wenig Erfahrung und weiß nicht wie ich Ansetzen soll.
So weit bin ich bisher gekommen
Sub Reihenentwicklung()
Dim ergebnis,x As Integer
ergebnis=0
x=0
anfang:
x=x+1
ergebnis=...
Würde mich freuen, wenn mir jemand weiterhelfen könnte.
Gruß
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:42 Di 24.01.2012 | Autor: | chrisno |
Es soll so lange gerechnet werden, bis eine Bedinung erfült ist. Dafür gibt es die While Schleife.
f=1 berechnest Du außerhalb der Schleife. Als Zählindex nimmst Du n=0.
In der Schleife
- erhöhst Du den Zählindex um 1
- berechnest Du den Vorfaktor aus dem Zählindex
- berechnest Du den Summanden
- addierst Du den Summanden zu f.+
In der Bediungung schaust Du nun nach, wie groß der Summand gewesen ist.
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 20:37 Mi 25.01.2012 | Autor: | Clone |
Hallo chrisno,
danke für den Hinweis.
Leider habe ich noch nicht so viel Erfahrung mit Programmieren. Würdest du das bitte etwas genauer erläutern?
Das ist das was ich bisher habe.
Option Explicit
Dim i As Double
Dim x As Double
Dim n, ergebnis As Double
Sub Reihenentwicklung()
i = 1
x = 1
Do While ergebnis
Vielen Dank im Voraus.
Gruß
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:30 Mi 25.01.2012 | Autor: | chrisno |
Das wird sehr mühsam. Ich kann dir schlecht das ganze Programm hier schreiben. Das liegt auch daran, dass meine VBA Zeit nun neun Jahre zurück liegt und ich auch keines auf dem Rechner habe.
Wenn Du noch gar nicht programmiert hast, gibt zuerst den Variablen aussagekräftige Namen. Der Zählindex kann bei einem Buchstaben bleiben, ist aber normalerweise ein Integer. x ist auch ok.
Nun musst Du etwas mehr Mut haben und das, was ich geschrieben habe versuchen umzusetzen. Wie wird die Abfrage in der while-Schleife hingeschrieben?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:20 Mo 30.01.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|