Knapsack problem/Continuous: Difference between revisions
m
move PL/I to proper position
Walterpachl (talk | contribs) (add PL/I and REXX (version 2)) |
Walterpachl (talk | contribs) m (move PL/I to proper position) |
||
Line 1,335:
</pre>
=={{header|PicoLisp}}==▼
<lang PicoLisp>(scl 2)▼
(de *Items▼
("beef" 3.8 36.0)▼
("pork" 5.4 43.0)▼
("ham" 3.6 90.0)▼
("greaves" 2.4 45.0)▼
("flitch" 4.0 30.0)▼
("brawn" 2.5 56.0)▼
("welt" 3.7 67.0)▼
("salami" 3.0 95.0)▼
("sausage" 5.9 98.0) )▼
(let K▼
(make▼
(let Weight 0▼
(for I (by '((L) (*/ (caddr L) -1.0 (cadr L))) sort *Items)▼
(T (= Weight 15.0))▼
(inc 'Weight (cadr I))▼
(T (> Weight 15.0)▼
(let W (- (cadr I) Weight -15.0)▼
(link (list (car I) W (*/ W (caddr I) (cadr I)))) ) )▼
(link I) ) ) )▼
(for I K▼
(tab (3 -9 8 8)▼
NIL▼
(car I)▼
(format (cadr I) *Scl)▼
(format (caddr I) *Scl) ) )▼
(tab (12 8 8)▼
NIL▼
(format (sum cadr K) *Scl)▼
(format (sum caddr K) *Scl) ) )</lang>▼
Output:▼
<pre> salami 3.00 95.00▼
ham 3.60 90.00▼
brawn 2.50 56.00▼
greaves 2.40 45.00▼
welt 3.50 63.38▼
15.00 349.38</pre>▼
=={{header|PL/I}}==
<lang pli>*process source xref attributes;
Line 1,431 ⟶ 1,472:
-----------------------
total 15.000 349.378</pre>
▲=={{header|PicoLisp}}==
▲<lang PicoLisp>(scl 2)
▲(de *Items
▲ ("beef" 3.8 36.0)
▲ ("pork" 5.4 43.0)
▲ ("ham" 3.6 90.0)
▲ ("greaves" 2.4 45.0)
▲ ("flitch" 4.0 30.0)
▲ ("brawn" 2.5 56.0)
▲ ("welt" 3.7 67.0)
▲ ("salami" 3.0 95.0)
▲ ("sausage" 5.9 98.0) )
▲(let K
▲ (make
▲ (let Weight 0
▲ (for I (by '((L) (*/ (caddr L) -1.0 (cadr L))) sort *Items)
▲ (T (= Weight 15.0))
▲ (inc 'Weight (cadr I))
▲ (T (> Weight 15.0)
▲ (let W (- (cadr I) Weight -15.0)
▲ (link (list (car I) W (*/ W (caddr I) (cadr I)))) ) )
▲ (link I) ) ) )
▲ (for I K
▲ (tab (3 -9 8 8)
▲ NIL
▲ (car I)
▲ (format (cadr I) *Scl)
▲ (format (caddr I) *Scl) ) )
▲ (tab (12 8 8)
▲ NIL
▲ (format (sum cadr K) *Scl)
▲ (format (sum caddr K) *Scl) ) )</lang>
▲Output:
▲<pre> salami 3.00 95.00
▲ ham 3.60 90.00
▲ brawn 2.50 56.00
▲ greaves 2.40 45.00
▲ welt 3.50 63.38
▲ 15.00 349.38</pre>
=={{header|Prolog}}==
Line 1,837 ⟶ 1,834:
</pre>
===
<lang rexx> /*--------------------------------------------------------------------
* 19.09.2014 Walter Pachl translated from FORTRAN
|