Einzelnen Beitrag anzeigen

Benutzerbild von Thunderbolt
Thunderbolt

Registriert seit: 29. Feb 2004
26 Beiträge
 
#1

Hilfe en algorithmus zu entwickeln...

  Alt 20. Jan 2005, 15:37
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
  Mit Zitat antworten Zitat