Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

FOR ... NEXT Ich komme nicht weiter

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
alej



Anmeldungsdatum: 02.10.2009
Beiträge: 9

BeitragVerfasst am: 02.10.2009, 13:29    Titel: FOR ... NEXT Ich komme nicht weiter Antworten mit Zitat

Hallo zusammen,

Ich schreibe ein kleines Programm was mir den Jährlichen Abschreibungsbetrag den Buchwert am Jahresende und den Abschreibungssatz berechnen soll.

Das Problem ist nur,dass in meiner FOR ... NEXT Schleife sich der Buchwert nicht um den Abschreibungsbetrag verringert, außer im ersten Jahr...

Im ersten Jahr passt alles, nur dann müsste eigentlich der Buchwert am Jahresende als Buchwert des Jahresanfangs im 2. Jahr stehen usw.

Vielleicht ist es auch nur ein Logikfehler, mache das sonst immer auf Papier lächeln... Und da ich recht neu bin in Sachen Basic-Programmierung, will ich ein Logikfehler nicht ausschließen.

Code:

DIM Anschaffungskosten AS INTEGER
DIM Nutzungsdauer AS INTEGER
DIM Abschreibungssatz AS INTEGER
DIM BuchwertJahresanfang AS INTEGER
DIM BuchwertJahresende AS INTEGER
DIM AbschreibungProJahr AS INTEGER
DIM Buchwert AS INTEGER
DIM Schleife AS INTEGER

input "Anschaffungskosten :     ", Anschaffungskosten
input "Nutzungsdauer :          ", Nutzungsdauer

print "Abschreibung pro Jahr :  ", Anschaffungskosten / Nutzungsdauer
Abschreibungssatz = 100 / Nutzungsdauer
print "Abschreibungssatz :      ", Abschreibungssatz

BuchwertJahresanfang = Anschaffungskosten
AbschreibungProJahr = Anschaffungskosten / Nutzungsdauer
BuchwertJahresende = BuchwertJahresanfang - AbschreibungProJahr

print "Jahr           Anfang        Ende          Abschreibung"
print "======================================================="
for Schleife=1 to Nutzungsdauer
    Buchwert = BuchwertJahresanfang - AbschreibungProJahr
    print Schleife, BuchwertJahresanfang, BuchwertJahresende, AbschreibungProJahr
next Schleife
print "======================================================="
sleep


MfG
alej
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
frebas



Anmeldungsdatum: 20.06.2008
Beiträge: 245

BeitragVerfasst am: 02.10.2009, 13:57    Titel: Antworten mit Zitat

In deiner For schleife ändert sich die variable "schleife", deine Variablen haben alle sehr lange namen...
Für mal am ende der schleife folgenedes ein:
"BuchwertJahresanfang=buchwert"
Vielleicht ist es das was du erreichen willst, ich verstehe nicht was dein programm machen soll.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 02.10.2009, 13:59    Titel: Antworten mit Zitat

Hi und willkommen im Forum.

Dein Problem ist, dass du die Werte nur einmal berechnest, du musst sie aber in der Schleife aktualisieren:

Code:
FOR Schleife=1 TO Nutzungsdauer
    Print Schleife, BuchwertJahresanfang, BuchwertJahresende, AbschreibungProJahr
    BuchwertJahresanfang = BuchwertJahresanfang - AbschreibungProJahr
    BuchwertJahresende = BuchwertJahresanfang - AbschreibungProJahr
NEXT Schleife


Übrigens muss nach dem NEXT nichts stehen, würde also auch ohne das "Schleife" gehen.


Noch ein Tipp für die Variablen:
Code:
DIM AS Integer Anschaffungskosten, Nutzungsdauer, Abschreibungssatz, BuchwertJahresanfang, AbschreibungProJahr, Schleife

So lässt es sich schneller arbeiten.

edit: mist, war nicht erster Zunge rausstrecken

Aja und noch eine Sache, du berechnest nur lineare Afa, versuch noch die degressive einzubauen zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alej



Anmeldungsdatum: 02.10.2009
Beiträge: 9

BeitragVerfasst am: 02.10.2009, 14:21    Titel: Antworten mit Zitat

Hi,

danke für die schnelle Antwort.

Ich will vorerst auch nur die lineare berechnen die degressive soll dann später kommen, inklusive des idealen Wechselzeitpunktes.

Danke @MOD

Code:

Print Schleife, BuchwertJahresanfang, BuchwertJahresende, AbschreibungProJahr
    BuchwertJahresanfang = BuchwertJahresanfang - AbschreibungProJahr
    BuchwertJahresende = BuchwertJahresanfang - AbschreibungProJahr


Genau das wars lächeln Vielen Dank!!!!!

@frebas

Bin noch am üben und deshalb die langen Namen für die Variablen, erleichtert mir etwas die Übersicht...

MfG
alej
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 02.10.2009, 14:28    Titel: Antworten mit Zitat

Der ideale Wechselzeitpunkt ist in 99,999% der Fälle nach (Nutzungsdauer - 4) Jahren. Da gibt es zwar eine Rechnung, wie man auf den Wert kommt, aber das entsprach eigentlich immer dem, was ich mit meiner Art gerechnet hab, kann mich an keine Ausnahme erinnern.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alej



Anmeldungsdatum: 02.10.2009
Beiträge: 9

BeitragVerfasst am: 02.10.2009, 14:44    Titel: Antworten mit Zitat

@Mod

ich habe das mit dem idealen Wechselzeitpunkt so gelernt...

i = n - 100 / p + 1

n = Nutzungsdauer
p = degressiver Abschreibungssatz

MfG
alej
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 02.10.2009, 14:55    Titel: Antworten mit Zitat

i = 8 - 100/20 + 1 = 4, womit meine Aussage stimmt.

Zu meiner Zeit war der Höchstsatz 20%, vor kurzem gab es keine degressive Afa mehr und jetzt ist der Höchstsatz glaub 25%.

Die Formel muss man halt dem Prozentsatz angleichen grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alej



Anmeldungsdatum: 02.10.2009
Beiträge: 9

BeitragVerfasst am: 02.10.2009, 15:04    Titel: Antworten mit Zitat

@Mod

x 2,5 des linearen bzw. max. 25 % ...

Unglaublich, da ist man in einem Programmierforum und trifft gleichgesinnte Rechnungswesen-Fanatiker lächeln

Na mal schauen was man mit FreeBasic noch so alles anstellen kann, wollte mal wegkommen von den ewigen Excel-Spielerein...

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Luke



Anmeldungsdatum: 14.01.2009
Beiträge: 92
Wohnort: Ostfriesland !

BeitragVerfasst am: 03.10.2009, 12:56    Titel: Antworten mit Zitat

Die ganze Programmiererei hat zur Folge, dass man gut rechnen, oder zu mindest sehr interessiert in Mathe ist, denke ich. durchgeknallt Kann natürlich auch andersherum sein lachen
Ich zu mindest "liebe" Mathe. Ich mach meinen Lehrer damit manchmal richtig fertig. grinsen
_________________
ICH war mal schizophren, aber jetzt sind WIR okay.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alej



Anmeldungsdatum: 02.10.2009
Beiträge: 9

BeitragVerfasst am: 03.10.2009, 18:28    Titel: Antworten mit Zitat

Hi,

so weit so gut, die lineare Abschreibung wird wunderbar berechnet, allerdings hakt es bei der degressive Abschreibung, da der jährliche Abschreibungsbetrag ja keine Konstante ist.

Nut wie sage ich das FreeBasic, auf dem Papier wie immer kein Problem nur mit der Umsetzung tue ich es mir noch etwas schwer...

Code:

dim as integer anschaffungskosten, nutzungsdauer, afasatz
dim as integer buchwertanfang, buchwertende, abschreibung
dim as integer schleife
dim as integer anfang, ende

anschaffungskosten = 40000
nutzungsdauer = 4
afasatz = 20

buchwertanfang = anschaffungskosten
abschreibung = buchwertanfang*afasatz/100
buchwertende = anschaffungskosten - abschreibung

print "Jahr           Anfang        Ende          Abschreibung"
print "======================================================="
for schleife = 1 to nutzungsdauer
    print schleife, buchwertanfang, abschreibung, buchwertende
    buchwertanfang = buchwertanfang - abschreibung
    buchwertende = buchwertanfang - abschreibung
next
print "======================================================="
sleep


Buchwert Jahresanfang stimmt, auch der Abschreibungsbetrag nur ab dem 2. nicht mehr, da irgendwie der Betrag aus dem ersten übernommen wird... verwundert

Auf dem Papier sieht das wunderbar aus

1. Jahr 40.000 * 0,2 (=8.000) = 32.000
2. Jahr 32.000 * 0,2 (=6.400) = 25.600
usw.

nur in Basic nicht... mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 03.10.2009, 18:31    Titel: Antworten mit Zitat

Abschreibungsbetrag muss in der Schleife aktualisiert werden:

Code:
FOR schleife = 1 TO nutzungsdauer
    PRINT schleife, buchwertanfang, abschreibung, buchwertende
    buchwertanfang = buchwertanfang - abschreibung
    abschreibung = buchwertanfang*afasatz/100
    buchwertende = buchwertanfang - abschreibung
NEXT
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz