Umgekehrte Polnische Notation / Postfix-Notation über Stack programmieren, so richtig?

Hallo,

ich soll die umgekehrte polnische Notation / Postfix-Notation in Java mit Hilfe eines Stacks programmieren. Dafür stehen mir nur folgende Informationen zur Verfügung:

public class IntegerStack {
  public boolean emptystack();
  public int head();
  public void push(int i);
  public int pop();
}

Leider zeigt ein Testfall als Fehler Folgendes an:

IntegerStack s = new IntegerStack();
String[] input = {"1", "2", "*", "3", "4", "*", "+"};
Calculator(input, s);
System.out.println(s.compareHistory(new String[] {
  "[1]",
  "[1, 2]",
  "[1]",
  "[]",
  "[2]",
  "[2, 3]",
  "[2, 3, 4]",
  "[2, 3]",
  "[2]",
  "[2, 12]",
  "[2]",
  "[]",
  "[14]",
  "[]" }
));

// erwartet:
true
// erhalten:
wrong history length: target 14 - is 0
false

Ich kann diesen Fehler nicht deuten. Kann mir bitte jemand sagen, was da falsch sein soll? Ich weiß nicht, was ich beheben soll.

Anbei mein Code:

public int Calculator(String[] input, IntegerStack s) {
  s = new IntegerStack();

  for (int i = 0; i < input.length; i++) {
    switch(input[i]) {
      case "+":
        int x = s.pop();
        int y = s.pop();

      
          s.push(y + x);
        
        break;
      case "-":
        x = s.pop();
        y = s.pop();

       
          s.push(y - x);
        
        break;
      case "/":
        x = s.pop();
        y = s.pop();

      
          s.push(y / x);
       
        break;
      case "*":
        x = s.pop();
        y = s.pop();

        
          s.push(y * x);
        
        break;
      case " ":
        break;
      default:
        if (input[i] != null) {
          s.push(Integer.parseInt(input[i]));
        }
        else {
        }
        ;
      }
    }

    int z = s.pop();
    return z;
  }
Computer, Freizeit, Studium, Schule, Mathematik, programmieren, Java, Informatik, Physik, stack, Algorithmen und Datenstrukturen
Warum fallen Feder und Hammer gleich schnell im Vakuum?

Hallo,

jeder kennt ja das typische Beispiel, dass im Vakuum eine Feder genauso schnell fällt wie ein Hammer, da kein Luftwiederstand vorhanden ist. Ist ja alles soweit schön und gut.

Aber eine Sache frage ich mich immer:

Müsste nicht eigentlich die Feder schneller fallen als der Hammer? Denn die Feder hat ja weniger Masse als der Hammer. Der Hammer würde der Masse der Erde nämlich näher kommen als es die Feder tut. Und Massen, die sich ähnlich sind haben ja auch nicht so eine starke Gravitation zu einander.

Hier ein Beispiel:

Auf dem Mond falle ich langsamer, da die Gravitation dort geringer ist. Das liegt daran, dass ich der Masse des Mondes näher komme. Die Erde wiederum ist viel größer als der Mond. Der Erde komme ich also nicht so nah mit meiner Masse wie beim Mond. Also falle ich dort auch schneller runter.

Mir ist natürlich klar, dass der Unterschied der Masse vom Hammer und der Feder bezogen auf die Erde ein Witz ist. Hier kommt es auf astronomisch kleine Werte an. Aber müsste dann die Feder in der Theorie nicht ein paar millionstel Sekunden (oder noch weniger) früher auf der Erde ankommen als der Hammer?

Weil wenn wir statt dem Hammer sagen wir den Mond nehmen würden, ist es doch klar, dass der Mond nicht ansatzweise so schnell auf die Erde wie die Feder fliegen würde, oder!? Und im Grunde verkörpert der Mond doch das selbe Prinzip wie der Hammer(also in diesem Beispiel natürlich): die Masse ist mehr, als die der Feder!

Natur, Allgemeinwissen, Mathematik, Technik, Kraft, Wissenschaft, Astronomie, Astrophysik, Atom, Gravitation, Maße, Naturwissenschaft, Newton, Physik, Relativitätstheorie, Schwerkraft, Albert Einstein, Anziehungskraft, allgemeine Relativitätstheorie, Isaac Newton
Physik: Warum lässt sich die elektrische Spannung multipliziert mit der elektrischen Stromstärke in die Leistungsaufnahme in einer Zeitspanne umrechnen?

Die elektrische Spannung (Volt) und die elektrische Stromstärke (Ampere) sind doch zeitunabhängige Größen. Die elektrische Leistung (Watt) ist die in einer Zeitspanne umgesetzte Energie bezogen auf diese Zeitspanne. Nach dem ohmschen Gesetz ergibt Volt × Ampere = Watt. Warum ergibt die Multiplikation von zwei zeitunabhängigen Größen aber plötzlich eine zeitabhängige Größe?

Vereinfacht ausgedrückt, verstehe ich Folgendes nicht:

Auf einer Glühbirne steht, dass sie 100 Watt Leistung aufnimmt. Ich verstehe darunter einer Dauerleistung, also dass die Glühbirne in jedem Moment, den sie eingeschaltet ist, 100 Watt leistet, dabei ist die Zeitspanne egal, denn sie leistet zu jedem Moment 100 Watt. Wieso kann ich dann aber sagen, dass 100 Watt = 0,10 Kilowattstunden sind? Woher kommt auf einmal der Bezug zu der Zeit? Wenn ich analog hierzu ein Auto fahre, dass höchstens 100 Pferdestärken leistet, dann kann ich diese Leistung doch beliebig abrufen, aber ich kann doch nicht sagen, dass das Fahrzeug 100 Pferdestärken pro Stunde leistet, das ist doch völliger Unsinn. Oder wenn ich höchstens 100 Kilogramm Kartoffeln tragen kann, dann ist das doch auch zeitunabhängig, denn ich trage diese Last meinetwegen eine Minute lang oder 30 Minuten lang, das ist völlig egal, hier kann doch niemand behaupten, ich könnte 3000 Kilogramm Kartoffeln in 30 Minuten tragen, denn das schaffe ich nur, wenn ich dafür die alten Kartoffeln ablade und neue aufnehme und trotzdem schaffe ich dann nur 100 Kilogramm auf einmal. Andersherum verstehe ich sehr gut, dass eine Batterie, die 100 Kilowattstunden elektrische Energie gespeichert hat, an die ein Verbraucher angeschlossen ist, der 1 Kilowattstunde Energie pro Stunde aufnimmt, dass die Batterie nach 100 Stunden leer ist. So ist auch ein Eimer Wasser, der 10 Liter Wasser fasst und pro Stunde einen Liter Wasser durch ein Loch im Boden verliert, nach 10 Stunden leer. Trotzdem ist es so, dass der Eimer 10 Liter Wasser fassen kann und diese Menge Wasser jederzeit ausgegossen werden kann. Die Geschwindigkeit hängt nur davon ab, wie schnell er gekippt wird, so kann er 10 Liter Wasser in 1 Sekunde oder 5 Sekunden verlieren, das ist willkürlich. Wie kann man dann aber sagen, dass eine Glühbirne mit 100 Watt pro Sekunde 100 Watt Leistung aufnimmt, also eine zeitbezogene Leistungsaufnahme (Wattsekunden oder Kilowattstunden) angeben, denn es kann ja auch sein, dass das in 2 oder 3 Sekunden passiert? Bei Wikipedia steht, dass ein Watt gleich der Leistung ist, um pro Sekunde eine mechanische Arbeit von einem Joule zu verrichten. Aber warum pro Sekunde und nicht etwa pro 2 Sekunden oder 12 Sekunden? Wieso genau eine Sekunde? Ist das willkürlich?

Danke!

Technik, Leistung, Strom, Energie, Elektrik, Watt, Formel, Physik, sekunden, Technologie, Zeit

Meistgelesene Beiträge zum Thema Physik