2016-05-29 22 views
1

Ich bin ein Neuling, und habe Probleme herauszufinden, wie man ein Problem anzugehen (oder die Frage zu stellen - bitte vergeben, wenn ich unklar bin).Rechnen Langlebigkeit zahlen - Zahlen in einer Reihe von Bereichen nachschlagen

Langlebigkeit Lohnsatz auf Dienstjahre berechnet basiert: <10=0 10 but <15 = 0.015 15 but <20 = 0.0225 20 but <25 = 0.325 >=25 = .0450

Ich brauche die Gesamtmenge der Langlebigkeit Lohn für einen Bereich ein Startdienstjahre und eine gegeben berechnen Ende der Dienstjahre.

Zum Beispiel, wenn ich mit 11 Dienstjahren beginne und mit 18 Dienstjahren ende, würde ich das Gehalt multiplizieren mit der Rate für "10 but <15" die Anzahl der Jahre in diesem Bereich (in diesem Fall, 15-11=4) und fügen Sie das zum Gehalt multipliziert mit der Rate für "15 but <20" multipliziert mit der Anzahl der Jahre in diesem Bereich (in diesem Fall 20-18=2).

Ich bin mir nicht sicher, wie man das strukturiert. Ich könnte eine unverschämte Anzahl von if/elseif Aussagen machen, aber ich weiß, dass es einen besseren Weg geben muss. Wenn mir jemand in die allgemeine Richtung zeigen könnte (gibt es eine Möglichkeit, Zahlen in einem Bereich nachzuschlagen und einen Wert zurückzugeben?), Wäre ich dankbar.

Antwort

1

Wenn es sich um Algorithmen handelt, beginnen Sie damit, es auf lange Sicht zu lösen (Sie selbst in Schritten, nicht den Computer).

Tun Sie dies so oft wie Sie brauchen, um klar zu werden, wie es gelöst ist.

Zum Beispiel für die 11 bis 18 Jahre (einschließlich) Szenario würden Sie bekommen:

year 11; 0.015 
    year 12; 0.015 
    year 13; 0.015 
    year 14; 0.015 
    year 15; 0.0225 
    year 16; 0.0225 
    year 17; 0.0225 
    year 18; 0.0225 

Gesamt Langlebigkeit Bezahlung ist (4 * 0,015) + (4 * 0,0225) = 0,15

Achten Sie darauf, dass Sie mit Ihren Zahlen gut aufpassen (die Zahl 0,325, die Sie im Zeitraum von 20 bis 24 Jahren angegeben haben, sollte wahrscheinlich 0,0325 sein).

Sie müssen sehr sicher sein, dass Sie wissen, wie die richtige Antwort für ein paar Testfälle aussehen wird, bevor Sie mit der Programmierung beginnen. Auf diese Weise können Sie überprüfen, ob das Ergebnis Ihres Programms korrekt ist.

Für den Code zu schreiben, gibt es wahrscheinlich zwei Möglichkeiten, wie Sie gehen könnte:

  1. schreiben sie in einer Schleife:

    for ($x = 11; $x <= 18; $x++) { 
        (some if/then statements) 
    } 
    
  2. Berechnen Sie die Anzahl der Jahre, in jedem Bereich und vermehren sich durch das Ergebnis. Sie müssen die Min- und Max-Funktionen zumindest verwenden:

    $totalpay = 0; 
    $totalpay += 0.015 * (you figure out the number of years in 10 to 14 years range); 
    $totalpay += 0.0225 * (you figure out the number of years in 15 to 19 years range); 
    etc 
    

Dieses wie eine Programmierübung ersten Jahr Computer aussieht. Anstatt Ihnen eine funktionierende Lösung zu geben, möchte ich Ihnen lieber erklären, wie Sie es selbst schreiben können (damit Sie von der Übung profitieren).

+1

Danke für Ihre Hilfe!Ja, es sieht wie eine Programmierübung für das erste Jahr aus :-), aber ich bin nicht in der Schule, ich versuche nur herauszufinden, etwas Eigenes zu tun. – whiterabbit

Verwandte Themen