Benutzer-Werkzeuge

Webseiten-Werkzeuge


bwinf:bwinf40a5:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
bwinf:bwinf40a5:start [2023/07/03 09:38] Martin Pabstbwinf:bwinf40a5:start [2023/07/03 10:27] (aktuell) Martin Pabst
Zeile 8: Zeile 8:
  
 <script type="text/plain" title="Main Program.java"> <script type="text/plain" title="Main Program.java">
 +new Hauptprogramm("gewichtsstücke0.txt").start();
  
 +
 +
 +
 +class Hauptprogramm {
 +
 +   Data data;
 +
 +   boolean[] istMessbar;   // istMessbar[i] == true <=> i * 10g messbar sind
 +
 +
 +   Hauptprogramm(String filename) {
 +      data = new Data(filename);
 +
 +      istMessbar = new boolean[1001];  // anfangs mit [false, false, false, ... ] belegt.
 +
 +   }
 +
 +
 +   void start() {
 +      legeHinzu(0, 0);
 +      ausgabe(); 
 +   }
 +
 +
 +
 +   void legeHinzu(int indexNächstesGewicht, int bisherigesGesamtgewicht) {
 +
 +      int anzahlAktuellesGewicht = data.anzahlListe[indexNächstesGewicht];
 +
 +      for (int i = -anzahlAktuellesGewicht; i <= anzahlAktuellesGewicht; i++) {
 +
 +         int neuesGesamtgewicht = bisherigesGesamtgewicht + i * data.gewichte[indexNächstesGewicht];
 +
 +         if(neuesGesamtgewicht > 0 && neuesGesamtgewicht <= 10000 && neuesGesamtgewicht % 10 == 0) {
 +            istMessbar[neuesGesamtgewicht / 10] = true;
 +         }
 +
 +         // Abbruchbedingung für die Rekursion
 +         if(indexNächstesGewicht < data.anzahl - 1) {
 +            legeHinzu(indexNächstesGewicht + 1, neuesGesamtgewicht); 
 +         }
 +
 +      }
 +
 +   }
 +
 +   void ausgabe() {
 +
 +      int count = 0;
 +
 +      for (int i = 0; i <= 1000; i++) {
 +         
 +         if(istMessbar[i]) {
 +            println(i * 10 + " g");
 +            count++;
 +         }
 +         
 +      }
 +
 +      println(count + " Gewichte im Bereich 10 g bis 10000 g sind mit dem vorgegebenen Gewichtssatz erreichbar.");
 +   }
 +
 +
 +}
 </script> </script>
  
bwinf/bwinf40a5/start.1688377118.txt.gz · Zuletzt geändert: 2023/07/03 09:38 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki