Hilfe bei der Programmierung eines VB Programms

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Hilfe bei der Programmierung eines VB Programms

    Hallo liebe User,
    ich bin neu im Forum und brauche eure Hilfe bezüglich einer Aufgabe die ich erledigen soll. Ich habe allgemein Probleme Textaufgaben in ein Quellcode umzusetzen. Es geht erstmal um eine Schleife und als nächstes um eine sequentielle If Else Verzweigung.

    Da ich ein bisschen VB lernen möchte, erspare ich mir das Lösungsbuch für diese Aufgaben zu kaufen sondern es selber lernen möchte.

    Ich programmiere hauptsächlich mit Visual Studio

    1. aufgabe:
    Das Programm soll eine Wertminderung eines Anlagebestandes berechnen. Ich gebe den Anschaffungswert ein, die Jährliche Wertminderung in Prozent und den voraussichtlichen Restwert am Ende der Nutzung in verschiedenen Textboxen ein. Das heißt erstmal 3 Labels und 3 Textboxen. Anschließend gibt das Programm den Wert am Ende eines Jahres aus, solange er Größer als der eingegebene Restwert ist.

    Das heißt als Ergebnis gibt es z.B. mit folgenden Wertangaben folgendes aus:
    Anschaffungswert: 1000 Euro
    Järhlcieh Wertmindeurng von 15%
    Voraussichtlicher Restwert: 400 Euro

    Wert nach 0 Jahren: 1000 Euro
    Wert nach 1 Jahr: 850 Euro
    Wert nach 2 Jahren: 722.50 Euro
    Wert nach 3 Jahren: 614,12 Euro
    Wert nach 4 Jahren: 522,01 Euro
    .
    .
    .

    Diese Ergebnisse sind das Ergebnis von den Werten die ich oben eingetippt habe, also sind die schonmal richtig.

    Ich habe bisher nur die Form.

    Was ich nun schon weiß, ist das eine While Schleife eingebunden werden muss und diese erst wenn der Wert größer als der eingegebene Restwert ist?
    Stimmt das?


    Vielen Dank schonmal!
    Müsst ihr es mit Schleifen lösen? Wenn nicht würde eine mathematische lösung in Frage kommen:
    A = Anschaffungswert
    Wm = Wertminderung
    x = Anzahl der Jahre

    nun lässt sich die Wertminderung durch eine Expotential-Funktion modellieren (hierzu muss bei zum Beispiel Wertmindeung=15% Wm = 0.85 sein):
    Wert=A*Wm^x

    Nun ein wenig Äquivalenz-Umformung:
    log(Wert/A)/log(Wm) = x
    nun musst du x einfach nur abrunden und du hast das Jahr in dem der Wert über den vorraussichtlichen Restwert liegt.

    VB.NET-Quellcode

    1. Private Function YearOfNearlyEquality(ByVal value As Double, ByVal impairment As Double, ByVal estimatedrestvalue As Double) As Double
    2. Return Math.Floor(Math.Log10(estimatedrestvalue / value) / Math.Log10(impairment))
    3. End Function


    8-) faxe1008 8-)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „faxe1008“ ()

    Ja, also wir sollten eine Schleife machen...
    Ich weiß schon das es eine While Schleife wird und es sollte auch nicht so schwer sein... Die Schleife durchläuft alles und es gibt eine Formel dafür :P

    Ich habe echt Probleme hierbei wie ich die Anweisung angeben soll.

    programmofficer schrieb:

    Ich habe echt Probleme hierbei wie ich die Anweisung angeben soll.


    Schau mal auf MSDN da wird alles haarklein erklärt - Wenn du uns nicht verrätst woran es genau hängt, wie sollen wir dir helfen können? ;)

    8-) faxe1008 8-)

    programmofficer schrieb:

    Ich programmiere hauptsächlich mit Visual Studio
    Seit wann?
    Wie oft?
    Was verstehst Du unter "hauptsächlich" :?:
    ---
    Über welche Programmierkenntnisse verfügst Du?
    Kann es sein, dass Du Dir hier Deine Hausaufgaben machen lassen willst?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nein, das sind keine Hausaufgaben :)
    Ich verstehe nicht wie ich die Schleife anweisen soll...

    Ich habe bereits im Quellcode die Variablen als Double deklariert und alles fertig. Jetzt fehlt mir nur noch die Schleifenformel und die Ausgabe in Jahren...

    Wenn es Hausaufgaben wären, dann würde ich nicht schreiben das ich VB lernen möchte. Ich bin in dr Ausbildung zum Fachinformatiker und möchte gerne vorarbeiten. Zurzeit arbeiten wir an Verzweigungen, die ich bisher ganz gut beherrsche!
    @programmofficer

    RodFromGermany schrieb:

    Über welche Programmierkenntnisse verfügst Du?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    programmofficer schrieb:

    Ich verstehe nicht wie ich die Schleife anweisen soll...
    ja, zum Kuckuck!
    Ich gab dir doch den msdn-Link, wo du das nachlesen kannst.
    Was können wir dir mehr erklären, als was inne MSDN-Referenz dokumentiert ist?

    Allenfalls, wenn du fragen zu dem Artikel hast, ergäbe es Sinn, weil vlt. verwendet msdn begriffe, die dir noch nicht geläufig sind.