Lohnberechnung

Ama33

Mitglied
Es soll ein einfaches Programm „Lohnberechnung“ folgender Art erstellt werden: Eingegeben wird die Anzahl der pro Woche gearbeiteten Stunden sowie der Stundenlohn. Für jede über 40 Wochenstunden gearbeitete Stunde soll der anderthalbfache Stundenlohn zugeschlagen werden. Abzüge für zu wenig geleistete Stunden sind nicht vorgesehen. Bei 42 Arbeitsstunden und 18 € Stundenlohn beträgt der Lohn z. B. 40 ⋅ 18 € + 2 ⋅ 27 €.
 

mihe7

Top Contributor
Das ist ja schon mal ein Anfang (bitte Code-Tags zum Posten von Code verwenden (im Editor oben links auf </> klicken)).

Benennen wir die Variablen mal sauber:
Java:
double arbeitsstunden = InputBox.readDouble("Anzahl der pro Woche gearbeiteten Stunden ");
double stundenlohn = InputBox.readDouble("Stundenlohn ");

Als nächstes könnte man sich überlegen, dass alle Arbeitsstunden bis 40 Stunden "normale Stunden" sind und alles, was darüber liegt, Überstunden sind.
Java:
double normalstunden;
double ueberstunden;

if (arbeitsstunden <= 40) {
    // Dein Code
} else {
    // Dein Code
}
Überleg Dir, was beim Kommentar ("Dein Code") stehen müsste und ergänze das.
 

Ama33

Mitglied
Java:
if (arbeitsstunden < 40) {
    stundenlohn  = ueberstunden
} else {
   stundenlohn = normalstunden
}

ist das richtig?
 
K

kneitzel

Gast
Wie wäre es, wenn Du einfach erst einmal in Worten formulierst, wie man das berechnen soll.

Also vergiss Java. Du erklärst eine Grundschülern, die das alles nicht versteht aber halt in Mathe die Grundrechenarten kennt, was sie machen muss.
 
K

kneitzel

Gast
Und hier irgendwelchen Java Code zu raten dürfte auch nicht zielführend sein. Daher: Immer erst den Algorithmus überlegen ehe man überhaupt anfängt, Code zu schreiben.
 

temi

Top Contributor
Also, weil die 15 Arbeitsstunden kleiner sind als 40 Arbeitsstunden sind es 15 Normalstunden. Richtig?
Java:
if (arbeitsstunden <= 40) {
    // Dein Code
}
 

temi

Top Contributor
Wie würdest du "was darüber kommt" berechnen?

Tipp: Es ist eine der vier Grundrechenarten, du kannst dich also nicht herausreden, dass es komplizierte Mathematik ist.
 

temi

Top Contributor
Überstunden = Arbeitsstunden - Normalstunden
Dann hast du ja jetzt alles was du benötigst. Auf geht's!
Java:
double normalstunden;
double ueberstunden;

if (arbeitsstunden <= 40) {
    // Dein Code
} else {
    // Dein Code
}

Die Aufgabe ist es aus den arbeitsstunden die normalstunden und die überstunden (falls vorhanden) zu berechnen.
 

Ama33

Mitglied
Dann hast du ja jetzt alles was du benötigst. Auf geht's!
Java:
double normalstunden;
double ueberstunden;

if (arbeitsstunden <= 40) {
    // Dein Code
} else {
    // Dein Code
}

Die Aufgabe ist es aus den arbeitsstunden die normalstunden und die überstunden (falls vorhanden) zu berechnen.
Java:
double normalstunden;
double ueberstunden;

if (arbeitsstunden < 40) {
    normalstunden = arbeisstunden - ueberstunden
} else {
   ueberstunden = abeitsstunden - normalstunden
}
 

temi

Top Contributor
Äh, nein.

Schau dir die Bedingung der if-Abfrage an (die übrigens richtig gewesen ist und von dir falsch geändert wurde). Was bedeutet die genau?
weil alles bis 40 sind Normalstunden und was kommt darüber ist Überstunden
Wenn du weißt, dass alle Arbeitsstunden bis 40 (inklusive) Normalstunden sind, was muss dann im ersten Block der if-Abfrage stehen?
 
Zuletzt bearbeitet:

temi

Top Contributor
Also noch ein Tipp und dann geh ich ins Bett.

Der erste Teil der Lösung lautet:

Wenn die Anzahl der Arbeitsstunden kleiner oder gleich 40 ist, dann entsprechen die Normalstunden den Arbeitsstunden und es gibt keine Überstunden.

Der zweite Teil gilt dann für den Fall, dass es mehr als 40 Arbeitsstunden sind.


Java:
    public static double berechneGehalt(double a, double s) {
        return (a <= 40 ? a : 40) * s + (a - 40 > 0 ? a - 40 : 0) * s * 1.5;
    }
 
Zuletzt bearbeitet:

Ama33

Mitglied
Java:
public static void main(String[] args) {
        double arbeitsstunden = InputBox.readDouble("Anzahl der pro Woche gearbeiteten Stunden ");
        double stundenlohn = InputBox.readDouble("Stundenlohn ");
        double normalstunden;
        double ueberstunden;

        if (arbeitsstunden <=  40)
             arbeitsstunden = normalstunden;
        
         else {
             ueberstunden = arbeitsstunden - normalstunden;
            
            
        }   

    }

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Programm zur Lohnberechnung HILFE! Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben