Avatar billede hestetoften Nybegynder
22. marts 2005 - 19:14 Der er 3 kommentarer og
1 løsning

finde en bestemt sum i array

Jeg har et Array med tallene: 9,8,6,1,1,2,1,6,13

tag det første tal og undersøg om det er mindre end 20
tag det næste tal og læg det til det første tal, undersøg om det er mindre end 20
hvis det er større end 20 gå da videre til næste tal osv.
hvis tallet 20 nåes eller hvis der ikke er flere tal i Array, bliver dette til RES1.

Start forfra, men ikke med de tal der er blevet brugt til RES1.

Hvordan finder jeg frem til dette resultat
RES1 := (9,8,1,1,1)=20
RES2 := (6,2,6)=14
RES3 := (13)=13

Håber at jeg har forklaret mig OK
22. marts 2005 - 22:19 #1
Jeg tror du skal lægge spørgsmålet under programering generelt, da det er algoritmen du er ude efter.
Avatar billede kroning Nybegynder
22. marts 2005 - 23:27 #2
Det må kunne gøres mere enkelt. Men det virker:

type
    TRES = array of integer;

procedure BeregnRES(Tal : array of integer; var RES : TRES);
var
    TalLeft : integer;

function GetRES : integer;
var
    i,x : integer;
begin
    x:=0;
    for i:=0 to length(Tal)-1 do
  begin
      if (x+Tal[i]<=20) and (Tal[i]>0) then
    begin
        x:=x+Tal[i];
            Tal[i]:=0;
      Dec(TalLeft);
    end;
    if x=20 then
            break;
    end;
  Result:=x;
end;

begin
    TalLeft:=Length(Tal);
    while TalLeft>0 do
  begin
      SetLength(RES,Length(RES)+1);
    RES[Length(RES)-1]:=GetRES;
    end;
end;

//------------------------

procedure TForm1.Button1Click(Sender: TObject);
const
    Tal : array(.0..8.) of integer = (9,8,6,1,1,2,1,6,13);
var
  RES : TRES;
  i : integer;
begin
    BeregnRES(Tal,RES);
  for i:=0 to length(RES)-1 do
      Showmessage('RES'+inttostr(i+1)+'='+IntToStr(RES[i]));
end;
Avatar billede hestetoften Nybegynder
23. marts 2005 - 06:34 #3
Tusind tak kroning.

Det vigtigste i første omgang, er at det virker:-)

og det gør det jo...

læg svar for point
Avatar billede kroning Nybegynder
24. marts 2005 - 20:07 #4
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester