Den Anhalteweg berechnen

Vielleicht verstehe ich gerade etwas falsch, aber hier stinkt etwas:

    public static void main(String[] args) {
        double[] coordinates = new double[31];
        for (int i = 0; i < coordinates.length; i++) {
            int kmh = i * 10;
            coordinates[i] = kmh * 3 / 10.0 + kmh / 10.0;
            System.out.println("Bei " + kmh + "kmh beträgt der Anhalteweg " + coordinates[i] + " Meter.");
        }
    }
Bei 0kmh beträgt der Anhalteweg 0.0 Meter.
Bei 10kmh beträgt der Anhalteweg 4.0 Meter.
Bei 20kmh beträgt der Anhalteweg 8.0 Meter.
Bei 30kmh beträgt der Anhalteweg 12.0 Meter.
Bei 40kmh beträgt der Anhalteweg 16.0 Meter.
Bei 50kmh beträgt der Anhalteweg 20.0 Meter.
Bei 60kmh beträgt der Anhalteweg 24.0 Meter.
Bei 70kmh beträgt der Anhalteweg 28.0 Meter.
Bei 80kmh beträgt der Anhalteweg 32.0 Meter.
Bei 90kmh beträgt der Anhalteweg 36.0 Meter.
Bei 100kmh beträgt der Anhalteweg 40.0 Meter.
Bei 110kmh beträgt der Anhalteweg 44.0 Meter.
Bei 120kmh beträgt der Anhalteweg 48.0 Meter.
Bei 130kmh beträgt der Anhalteweg 52.0 Meter.
Bei 140kmh beträgt der Anhalteweg 56.0 Meter.
Bei 150kmh beträgt der Anhalteweg 60.0 Meter.
Bei 160kmh beträgt der Anhalteweg 64.0 Meter.
Bei 170kmh beträgt der Anhalteweg 68.0 Meter.
Bei 180kmh beträgt der Anhalteweg 72.0 Meter.
Bei 190kmh beträgt der Anhalteweg 76.0 Meter.
Bei 200kmh beträgt der Anhalteweg 80.0 Meter.
Bei 210kmh beträgt der Anhalteweg 84.0 Meter.
Bei 220kmh beträgt der Anhalteweg 88.0 Meter.
Bei 230kmh beträgt der Anhalteweg 92.0 Meter.
Bei 240kmh beträgt der Anhalteweg 96.0 Meter.
Bei 250kmh beträgt der Anhalteweg 100.0 Meter.
Bei 260kmh beträgt der Anhalteweg 104.0 Meter.
Bei 270kmh beträgt der Anhalteweg 108.0 Meter.
Bei 280kmh beträgt der Anhalteweg 112.0 Meter.
Bei 290kmh beträgt der Anhalteweg 116.0 Meter.
Bei 300kmh beträgt der Anhalteweg 120.0 Meter.

Bei 200kmh beträgt der Anhalteweg doch nicht nur 80 Meter?! Wäre das nicht etwas wenig? Also, ich hätte jetzt mit 500m oder so gerechnet.

Allerdings kenne ich auch noch die halbe Tacho Regel, sprich Tachowert durch 2 teilen… Was wäre denn nun richtig?

Herzlich willkommen im Forum.

Ja, da stimmt was nicht:

Anhalteweg berechnen: Die wichtigsten Formeln | ADAC

Reaktionsweg + Bremsweg = Anhalteweg
Um den Anhalteweg mit der Formel zu berechnen, muss man zuerst die Länge des Reaktionswegs bestimmen. Dafür teilt man die Geschwindigkeit durch zehn, das Ergebnis nimmt man mal drei.
Der Bremsweg eines Fahrzeugs ist auf waagerechter Strecke – also ohne Steigung oder Gefälle – abhängig von einigen Faktoren. Sehr konservativ abschätzen lässt sich bei Normalbremsungen der Bremsweg, wenn man die Ausgangsgeschwindigkeit in km/h durch zehn teilt und das Ergebnis mit sich selbst multipliziert.

In Deiner Rechnung fehlt also eine Multiplikation.

Moin, wie kann ich das am besten und einfachsten umsetzen?

Ich weiß das es Pi-Mal-Daumen-Regeln sind, aber irgendetwas muss man den wissbegierigen Lehrlingen doch vermitteln…

So eine einfache Textaufgabe solltest Du schon alleine richtig in eine Rechnung umsetzen können. Andernfalls steht die Frage im Raum, ob Programmieren wirklich die richtige Beschäftigung für Dich ist…

BTW: die Techniken zum Erschleichen von Hausaufgaben sind hier durchaus bekannt, kannst Du Dir also schenken:

bye
TT

Wo kommt denn der ursprüngliche Code her? (Und was ist das Ziel der Frage?)
Im gegebenen Code ist ja nur ein „kleiner“ Fehler, wenn man sich die verlinkten Definitionen so anschaut…

1 Like

Edit: Ignoriert mich ich bin ein CB Clone

Klingt ein bisschen so, als wüsstest du selber nicht genau bescheid… und es ist unfreundlich.

Hier ist es etwas besser beschrieben: Bremsweg berechnen | Reaktions- & Anhalteweg Formeln

Das wäre jetzt meine Rechnung gewesen:

    public static void main(String[] args) {
        double[] coordinates = new double[31];
        for (int i = 0; i < coordinates.length; i++) {
            int kmh = i * 10;
            coordinates[i] = kmh * 3 / 10.0 + kmh * kmh / 100.0;
            System.out.println("Bei " + kmh + "kmh beträgt der Anhalteweg " + coordinates[i] + " Meter.");
        }
    }

Ich bin mir nicht sicher, ob das aus der Beschreibung des ADAC hervorgeht.

Jetzt noch mal alles zusammen:

import cern.colt.Arrays;

public class Anhalteweg {
    public static double bremswegNormal(int kmh) {
        return kmh * kmh / 100.0;
    }

    public static double bremswegGefahr(int kmh) {
        return bremswegNormal(kmh) / 2.0;
    }

    public static double reaktionsweg(int kmh) {
        return kmh * 3 / 10.0;
    }

    public static double anhaltewegNormal(int kmh) {
        return reaktionsweg(kmh) + bremswegNormal(kmh);
    }

    public static double anhaltewegGefahr(int kmh) {
        return reaktionsweg(kmh) + bremswegGefahr(kmh);
    }

    public static void main(String[] args) {
        double[][] coordinates = new double[31][6];
        for (int i = 0; i < coordinates.length; i++) {
            int kmh = i * 10;
            coordinates[i] = new double[]{
                    kmh, reaktionsweg(kmh), bremswegNormal(kmh), bremswegGefahr(kmh), anhaltewegNormal(kmh), anhaltewegGefahr(kmh)
            };
        }
        for (double[] a : coordinates) {
            System.out.println(Arrays.toString(a));
        }
    }
}
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[10.0, 3.0, 1.0, 0.5, 4.0, 3.5]
[20.0, 6.0, 4.0, 2.0, 10.0, 8.0]
[30.0, 9.0, 9.0, 4.5, 18.0, 13.5]
[40.0, 12.0, 16.0, 8.0, 28.0, 20.0]
[50.0, 15.0, 25.0, 12.5, 40.0, 27.5]
[60.0, 18.0, 36.0, 18.0, 54.0, 36.0]
[70.0, 21.0, 49.0, 24.5, 70.0, 45.5]
[80.0, 24.0, 64.0, 32.0, 88.0, 56.0]
[90.0, 27.0, 81.0, 40.5, 108.0, 67.5]
[100.0, 30.0, 100.0, 50.0, 130.0, 80.0]
[110.0, 33.0, 121.0, 60.5, 154.0, 93.5]
[120.0, 36.0, 144.0, 72.0, 180.0, 108.0]
[130.0, 39.0, 169.0, 84.5, 208.0, 123.5]
[140.0, 42.0, 196.0, 98.0, 238.0, 140.0]
[150.0, 45.0, 225.0, 112.5, 270.0, 157.5]
[160.0, 48.0, 256.0, 128.0, 304.0, 176.0]
[170.0, 51.0, 289.0, 144.5, 340.0, 195.5]
[180.0, 54.0, 324.0, 162.0, 378.0, 216.0]
[190.0, 57.0, 361.0, 180.5, 418.0, 237.5]
[200.0, 60.0, 400.0, 200.0, 460.0, 260.0]
[210.0, 63.0, 441.0, 220.5, 504.0, 283.5]
[220.0, 66.0, 484.0, 242.0, 550.0, 308.0]
[230.0, 69.0, 529.0, 264.5, 598.0, 333.5]
[240.0, 72.0, 576.0, 288.0, 648.0, 360.0]
[250.0, 75.0, 625.0, 312.5, 700.0, 387.5]
[260.0, 78.0, 676.0, 338.0, 754.0, 416.0]
[270.0, 81.0, 729.0, 364.5, 810.0, 445.5]
[280.0, 84.0, 784.0, 392.0, 868.0, 476.0]
[290.0, 87.0, 841.0, 420.5, 928.0, 507.5]
[300.0, 90.0, 900.0, 450.0, 990.0, 540.0]

Ich lag also mit 500m bei 200kmh gar nicht so falsch. Allerdings kommt mir das etwas Spanisch vor, weil sich der Anhalteweg wohl zwischen 260m und 460m bewegen soll. Ist das nicht etwas ungenau, bzw. heutzutage nicht mehr zeitgemäß?

Also das hier ist ein technisches Forum. Wenn du über den Sinn und Unsinn gegebener mathematischer Formeln diskutieren willst, dann schlage ich vor ein entsprechendes Forum aufzusuchen.

Wenn du fragen zur Implementierung hast, dann sind diese hier Willkommen.

Nein, war sie nicht, denn diese ist im Gegensatz zu der im Eröffnungspost richtig.

bye
TT