Die Webseiten der Fachschaft Informatik am ERG Saalfeld
Lösung einer diophantische Gleichung (Steinkohlenaufgabe)
Durch 2 LKW sollen 61 Tonnen Steinkohle abtransportiert werden.
Der erste LKW hat eine Ladefähigkeit von 4 Tonnen und der zweite LKW kann maximal mit 3 Tonnen beladen werden.
Beide LKW sollen möglichst nur voll beladen und mit der gleichen Geschwindigkeit fahren. Eine rein mathematische Lösung ist hier angegeben.
Programm
#!/usr/bin/perl
use strict;
use warnings;
foreach my $anz1 (0 .. 20 ) {
foreach my $anz2 (0 .. 20 ) { # 21 * 3 ist schon mehr als 61
# es gilt anz1 * 4 t + anz2 * 3 t = 61 t
if ($anz1 * 4 + $anz2 * 3 == 61) {
print "4-Tonner: $anz1 \t 3-Tonner: $anz2 \n";
}
}
}
__END__
Der Aufruf sah bei mir so aus:
Aufgaben
- Bringen Sie das Programm zum Laufen.
- Zeichnen Sie zu diesem Programm ein Struktogramm.
- Ändern Sie das Programm so, dass nur die beiden Anzahlen ausgegeben werden, sodass
- die Gesamtanzahl der Fahrten minimal ist,
- bei gleichzeitigem Einsatz die Gesamtzeit minimal ist,
- der zweite LKW möglichst wenig eingesetzt wird.
- Ändern Sie das Programm zusätzlich so ab, dass die Masse der Steinkohle als Parameter übergeben werden kann.
- Ändern Sie das Programm zusätzlich so ab, dass auch die Tragfähigkeit der beiden LKW als Parameter übergeben werden kann.
zurück
© ERG Saalfeld - Hans-Dietrich Kirmse 10.01.2015
|