unwissend
Goto Top

Problem mit erstellen einer Rechenaufgabe

Hallo,

ich habe folgendes Problem ( für mich zumindestens ), ich möchte mir ein Programm schreiben mit dem ich den Minimalen Verschnitt berechnen kann. Ich habe soweit alles fertig, bis auf das Sortieren der Maße und der Rechnung halt.

Also ich gebe ein das ich z.B. 30 stck einer 6000 mm lange Dachlatte zur verfügung habe,
weiter gebe ich dann ein wie dick mein Sägeblatt ist idR. 15 mm, weiter gebe ich ein das ich für mein Projekt 3 stck von 300 mm, 2 stck von 450 mm und 10 stck von 535 mm länge brauche.
Jetzt soll das Prog mit der größten länge anfangen und mir den min Verschnitt ausgeben, sprich 10x 535 mm + 1x 450 mm aus der 6000mm stange schneiden und 3x 300 mm und 1x 450 mm länge aus einer 6000mm stange schneiden, am ende möchte ich die gesamt stangen haben die von den 6000mm bräuchte und den Gsamtverschnitt den ich habe.

Ich möchte keine Komplettlösung, ich brauche nur einen Codeschnipsel oder bzw. einen Anfang oder so ähnlich, etwas halt worauf ich aufbauen kann.

Mfg

der Unwissende (Marc)

Content-Key: 31116

Url: https://administrator.de/contentid/31116

Printed on: April 16, 2024 at 15:04 o'clock

Member: Biber
Biber Apr 25, 2006 at 12:01:03 (UTC)
Goto Top
Moin marc,
dann poste doch wenigstens den Ansatz (das Roh-skriptchen mit den Variablennamen), dann brauchen wir nicht alle Räder neu zu erfinden.

Gruß Biber
Member: Unwissend
Unwissend Apr 25, 2006 at 18:01:45 (UTC)
Goto Top
So, hier mal ein kleiner Ausschnitt aus dem Prog:

Private Sub stangl_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
b = stangl.Text
c = klemm.Text
verwend.Text = b - (c * 2)
stanlstck.SetFocus
End If
End Sub

Private Sub stanlstck_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
b = stangl.Text
c = klemm.Text
verwend.Text = b - (c * 2)
optstanl.SetFocus
End If
End Sub

Private Sub optstanl_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
b = stangl.Text
c = klemm.Text
verwend.Text = b - (c * 2)
optstanlstck.SetFocus
End If
End Sub

Private Sub optstanlstck_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
b = stangl.Text
c = klemm.Text
verwend.Text = b - (c * 2)
klemm.SetFocus
End If
End Sub

Private Sub klemm_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
b = stangl.Text
c = klemm.Text
verwend.Text = b - (c * 2)
schnittbr.SetFocus
End If
End Sub

Private Sub schnittbr_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
posi.SetFocus
End If
End Sub

Private Sub laenge_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
stck.SetFocus
End If
End Sub

Private Sub stck_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
sart.SetFocus
End If
End Sub

zur Erklärung:
stangl.Text = Variable Länge der Dachlatte

stanlstck.text = Für den Fall das nur eine bestimmte Menge der Dachlatten zur Verfügung steht

optstanl.text = Für den Fall das eine zweite Länge von Dachlatten zur Verfügung steht

optstanlstck.text = Stückzahl der zur Verfügungstehenden zweiten Länge

klemm.Text = nicht Verwendbare Länge die von stangl.Text abgezogen wird

verwend.Text = Wirklich Verwendbare Länge der Dachlatten

schnittbr.Text = Verschnitt durch Sägeblatt bei jedem Sägen

laenge.Text = Länge die ich benötige

stck.Text = Stückzahl der Länge die ich benötige

Die Daten Sammel ich in einem FlexGrid, die Daten sollen in einer ListBox nach Größe sortiert werden (arbeite ich gerade dran), die berechnung soll so aussehen das immer das längste benötigste stück zuerst abgezogen wird bis die stückzahl auf null steht, danach das dann noch längste benötigte stück, usw. Es wäre schön wenn man mitreinbringen könnte das ein max. verschnitt wenn möglich von 1,5 % erreicht wird bei jeder stange.
Kein wunder das ich da nicht klar komme, oder?

DANKE für die Hilfe zu einer Lösung. Wie schon gesagt, keine Komplettlösung, nur einen Ansatz mit dem ich weiter Arbeiten kann.