none
Wo liegt der Fehler? (For-Schleife) RRS feed

  • Frage

  • Hey meine Schleife funktioniert nicht kann mir da jemand weiterhelfen?

    $anschaffungswert, $anfangswert = Read-Host
    $nutzungsdauer = Read-Host
    "Anschaffungswert: $anschaffungswert "Nutzungsdauer: $nutzungsdauer
    for ($nutzungsdauer; $nutzungsdauer lt 2; $nutzungsdauer--)
    {
    Write-Host "$nutzungsdauer"
    }

    Mittwoch, 11. Dezember 2013 09:29

Antworten

  • $Anschaffung = $RestWert = 10401.46
    $Nutzungsdauer = 5
    $Abschreibung = $Anschaffung / $Nutzungsdauer 
    Write-Host "Anschaffungswert: $Anschaffung                       Nutzungsdauer: $Nutzungsdauer Jahre"
    $Head = "Jahr           Wert   Abschreibung       Restwert" 
    Write-Host $Head`n$("=" * $Head.Length) 
    for ($i = $Nutzungsdauer; $i -ge 1; $i--) {
    	if ($i -eq 1) {
    		$Abschreibung = ((1 - $Abschreibung) * -1)
    	}
    	"{0} {1,14:#,0.00} {2,14:#,0.00} {3,14:#,0.00}" -f $i, $RestWert, $Abschreibung, ($RestWert = $RestWert - $Abschreibung) 
    }
    "{0} {1,14:#,0.00}" -f $i, $RestWert

    Beste Gruesse
    brima

    Montag, 16. Dezember 2013 09:28

Alle Antworten

  • Du hast bei dem lt den Bindestrich vergessen!

    Siehe unbedingt hier: http://www.colorconsole.de/PS_Windows/de/about_Comparison_Operators.htm

    $anschaffungswert, $anfangswert = Read-Host
    $nutzungsdauer = Read-Host
    "Anschaffungswert: $anschaffungswert "Nutzungsdauer: $nutzungsdauer
    for ($nutzungsdauer; $nutzungsdauer -lt 2; $nutzungsdauer--)
    {
    Write-Host "$nutzungsdauer"
    }

    Da wir nicht wissen was bei den beiden Read-Host eingegeben wird können wir die schlecht helfen.

    Da du in deiner Schleife -- benutzt nehme ich mal an das du hier nicht -lt (für Kleiner als) meinst sonder -gt (für größer als)

    $anschaffungswert, $anfangswert = 12
    $nutzungsdauer = 9
    
    "Anschaffungswert: $anschaffungswert Nutzungsdauer: $nutzungsdauer"
    
    for ($nutzungsdauer; $nutzungsdauer -gt 2; $nutzungsdauer--) {
        Write-Host "$nutzungsdauer"
    }


    PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    auf der deutschsprachigen PowerShell Community

    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+

    Mittwoch, 11. Dezember 2013 10:00
  • so hab ich es gemacht aber ich möchte das es ungefähr so aussieht:

    Also die Nutzungsjahre von 34 Abwärts dann den Anfangswert anzeigen dann die Abschreibung und diese dan von den Anfangswert abziehen = Restwert und dan den Restwert als Anfangswert für das i.d.F. 33 Jahr ausgeben
    Donnerstag, 12. Dezember 2013 07:05
  • $anschaffungswert, $anfangswert = Read-Host #z.B. 5000
    $nutzungsdauer = Read-Host   #z.B. 34
    "Anschaffungswert: $anschaffungswert     Nutzungsdauer:$nutzungsdauer"
    for ($nutzungsdauer; $nutzungsdauer -lt 2; $nutzungsdauer--)
    {
        Write-Host "$nutzungsdauer"
    }
    $abschreibung = $anschaffungswert/$nutzungsdauer
    "Abschreibung: $abschreibung"
    $Restwert=$anfangswert - $abschreibung
    "Restwert: $Restwert"

    Donnerstag, 12. Dezember 2013 07:08
  • Hallo,

    Peter hat doch schon gesagt dass du nicht -lt sondern wohl groesser meinst -gt , deine FOR-Schleife funktioniert nicht, den er gibt die Nutzungsdauer nicht aus.

    for ($nutzungsdauer; $nutzungsdauer -lt 2; $nutzungsdauer--) bedeutet das die Schleife solange laufen soll, wie deine Nutzungsdauer kleiner ist wie 2, in deinem Beispiel verwendest du 34 und 34 ist nicht kleiner wie 2 sondern groesser, deshalb wird die Forschleife nich ausgefuehrt!

    Beste Gruesse
    brima

    Donnerstag, 12. Dezember 2013 08:38
  • Hallo,

    ich glaube Du willst so was in der Form:

    $Anschaffung = $RestWert = 1000
    $Nutzungsdauer = 5
    $Abschreibung = $Anschaffung / $Nutzungsdauer 
    "AnfangsWert: $Anschaffung"
    for ($i = 1; $i -lt $Nutzungsdauer; $i++) {
    	"RestWert: {0,10:#,0.00} Abschreibung: {1,10:#,0.00} RestWert: {2,10:#,0.00}" -f $RestWert, $Abschreibung, ($RestWert = $RestWert - $Abschreibung)
    }
    "RestWert: $RestWert"

    AnfangsWert: 1000
    RestWert:    1.000,00 Abschreibung:     200,00 RestWert:     800,00
    RestWert:     800,00 Abschreibung:     200,00 RestWert:     600,00
    RestWert:     600,00 Abschreibung:     200,00 RestWert:     400,00
    RestWert:     400,00 Abschreibung:     200,00 RestWert:     200,00
    RestWert: 200

    Beste Gruesse
    brima




    • Bearbeitet brima Donnerstag, 12. Dezember 2013 11:29
    Donnerstag, 12. Dezember 2013 08:57
  • Dankeschön für die schnellen hilfreichen Antworten :-)
    Freitag, 13. Dezember 2013 07:13
  • Aber so ganz funktioniert das nicht.. das einzige was noch fehlt ist wie ich den Anfangswert - den Restwert mache sodass dieses Ergebnis in Jahr 2 steht.

    [int]$Anschaffung = $Read-Host
    [int]$nutzungsdauer = Read-Host
    $abschreibung = $Anschaffung / $nutzungsdauer
    Write-Host "Anfangswert: $Anschaffung"
    for ($nutzungsdauer; $nutzungsdauer -gt 0; $nutzungsdauer--)
    {
        Write-Host "NutzungsjahrAnfangswertAbschreibung Restwert 
    $nutzungsdauer   $anschaffungswert $abschreibung $restwert
    #also alles untereinander eine art tabelle
    }

    Freitag, 13. Dezember 2013 07:49
  • Hallo,

    jetzt hast du hier wieder Code gepostet der nicht funktionieren kann, $Read-Host gibt es zum Beispiel nicht.

    Vorschlag:

    Poste doch einfach mal ein Beispiel, wie es aus sehen soll!

    Beste Gruesse
    brima



    $Anschaffung = $RestWert = 1000
    $AnschaffungsJahr = 2013
    $Nutzungsdauer = 5
    $Abschreibung = $Anschaffung / $Nutzungsdauer 
    $Head = "Jahr           Wert   Abschreibung       Restwert" 
    Write-Host $Head`n$("=" * $Head.Length) 
    "{0} {1,14:#,0.00}" -f $AnschaffungsJahr, $Anschaffung
    for ($i = 1; $i -lt $Nutzungsdauer; $i++) {
    	"{0} {1,14:#,0.00} {2,14:#,0.00} {3,14:#,0.00}" -f ++$AnschaffungsJahr, $RestWert, $Abschreibung, ($RestWert = $RestWert - $Abschreibung) 
    }
    "{0} {1,14:#,0.00}" -f ++$AnschaffungsJahr, $RestWert

    Jahr           Wert   Abschreibung       Restwert
    =================================================
    2013       1.000,00
    2014       1.000,00         200,00         800,00
    2015         800,00         200,00         600,00
    2016         600,00         200,00         400,00
    2017         400,00         200,00         200,00
    2018         200,00
    • Bearbeitet brima Freitag, 13. Dezember 2013 08:58
    Freitag, 13. Dezember 2013 08:29
  • So sollte es aussehen:

    Anschaffungswert: xxxxx,xx                       Nutzungsdauer: xx Jahre

    Nutzungsjahr        Anfangswert         Abschreibung      Restwert

    Z.B. 30                      z.b. 5000,00                xxx,xx       x.xxx,xx

    29                            xxxx,xx                        xxx,xx         x.xxx,xx

    28 .....

    und bei Nutzungsjahr 1 wird ja glaub ich 1 Euro oder wars beim ersten Nutzungsjahr? :-) Abgezogen

    Montag, 16. Dezember 2013 06:59
  • $Anschaffung = $RestWert = 10401.46
    $Nutzungsdauer = 5
    $Abschreibung = $Anschaffung / $Nutzungsdauer 
    Write-Host "Anschaffungswert: $Anschaffung                       Nutzungsdauer: $Nutzungsdauer Jahre"
    $Head = "Jahr           Wert   Abschreibung       Restwert" 
    Write-Host $Head`n$("=" * $Head.Length) 
    for ($i = $Nutzungsdauer; $i -ge 1; $i--) {
    	if ($i -eq 1) {
    		$Abschreibung = ((1 - $Abschreibung) * -1)
    	}
    	"{0} {1,14:#,0.00} {2,14:#,0.00} {3,14:#,0.00}" -f $i, $RestWert, $Abschreibung, ($RestWert = $RestWert - $Abschreibung) 
    }
    "{0} {1,14:#,0.00}" -f $i, $RestWert

    Beste Gruesse
    brima

    Montag, 16. Dezember 2013 09:28
  • Vielen Dank für die Hilfe so funktioniert es :-)

    Aber könntest du die Schritte ab der Zeile

    Write-Host $Head`n$("=" * $Head.Length)

    erklären.

    Montag, 16. Dezember 2013 09:42
  • Hallo,

    das hier Schritt fuer Schritt zu erklaeren wuerde IMHO zu weit gehen. Es geht hier eher um die Hilfesstellung bei Problemen mit der PowerShell, nicht um das grundsaetzliche erlernen.

    Das Thema PowerShell, oder auch Programmieren im alllgemeinen scheint neu fuer dich zu sein, da hilft immer ein gutes Buch weiter. Siehe die Links
    im Beitrag von Peter Kriegel, dort gibt es entps. Empfehlungen und er hat auch z.B.: einen schoenen Videokurs auf YouTube.

    Und beachte bitte auch folgenden Forenbeitrag.

    Antworten makieren

    Beste Gruess
    brima

    Montag, 16. Dezember 2013 10:19
  • Ok, dankeschön :-)
    Montag, 16. Dezember 2013 10:23