Aaaaaaaalso. Die Aufgabe hab ich in der Schule bekommen. Es ging eigentlich darum die Summen von allen Zahlen miteinander in einer Menge (also jeweils nur 2 Zahlen).
Das ganze hab ich so gelöst:
Delphi-Quellcode:
[code:1:06509b420c]program algorithmus;
{$APPTYPE CONSOLE}
uses SysUtils;
type
menge = set of byte;
var
neu, alt, zwischen :menge;
eingabe,i,obergrenze :integer;
eingaben: array [1..10] of integer;
procedure dazutun(wert :integer);
begin
for i:=1 to obergrenze do
begin
if i in alt then zwischen:=zwischen+[i+wert];
end;
alt:=alt+[wert];
zwischen:=zwischen+[wert];
end;
procedure ausgabe(ausgeben :menge);
var limit,erstes :integer;
begin
erstes:=0; limit:=0;
neu:=ausgeben;
repeat
if erstes in ausgeben then
begin
limit:=limit + erstes;
neu:=neu-[erstes];
end;
inc(erstes);
until neu=[];
write('Mögliche Ergebnisse sind: ');
for i:=0 to limit do if i in ausgeben then write(i:3,',');
end;
begin
write('Blubb bla bla blub bla blubb blubb.');
neu:=[]; alt:=[]; zwischen:=[]; eingabe:=0;
write('Obergrenze: ');
readln(obergrenze);
repeat
write('Wert: ');
readln(eingabe);
if not ((eingabe=0) or (eingabe in alt) or (eingabe>obergrenze)) then
begin
dazutun(eingabe);
end
else if eingabe>obergrenze then writeln('Obergrenze überschritten!');
until eingabe=0;
ausgabe(zwischen);
readln;
end.[/code:1:06509b420c]
ich weiss... man könnte ein paar sachen weglassen...
Jetzt würde mich mal interessieren wie man dasselbe mit ALLEN Kombinationen untereinander macht. Ich hab schon rumüberlegt, weiss aber nit wie man das anstellen soll.
Wenn ich da also die Zahlenmenge [1,2,4,8,16,32] habe, müsste mir das Ding jetzt alle Zahlen von 1 bis 69 auflisten.
mfg,
ThunderbolT
Ich habe in der Vergangenheit gute Entscheidungen getroffen. Ich habe in der Zukunft gute Entscheidungen getroffen.
George W. Bush