Avatar billede fixxxer Nybegynder
09. december 2003 - 18:12 Der er 9 kommentarer og
1 løsning

number in array of integer

er der ikke en smart måde at finde ud af om et array of integer indeholde et specifikt nummer? forestiller mig noget a if number in array then bla bla bla
Avatar billede arne_v Ekspert
09. december 2003 - 18:15 #1
Lav en for løkke som løber arrayet igennem og sammenligner.
Avatar billede fixxxer Nybegynder
09. december 2003 - 18:17 #2
det ville jeg ikke synes at være særlig praktisk i dette tilfælde, for talet jeg skal finde er variabelt.
Avatar billede fixxxer Nybegynder
09. december 2003 - 18:18 #3
jeg vil gerne forøge et tal, indtil tallet ikke forekommer i array'et

repeat
  Inc(mittal, 1);
until
  mittal er ikke i array
Avatar billede arne_v Ekspert
09. december 2003 - 18:20 #4
Medmindre tallene i arrayet er sorteret eller på andre måder systematisk,
så er man nødt til at lave sekventiel søgning.
Avatar billede arne_v Ekspert
09. december 2003 - 18:23 #5
En ide:

lad os kalde dit array for A og dit tal for N

du laver et array X af boolean 1..100 og sætter alle værdier til true

så løber du A igennem med en for løkke og hvis A[i] ligger i N+1 .. N+100
så sætter du X[A[i]-N] til false

når du er færdig løber du X igennem og det første X[j] der er true så
er N+j en løsning

Hvis du ikke finder en løsning er du nødt til at prøve med 100 mere
Avatar billede arne_v Ekspert
09. december 2003 - 18:25 #6
Alternativt kan du sortere dit array (eller evt. en kopi), så er det
også nemt at finde.
Avatar billede athlon-pascal Juniormester
09. december 2003 - 20:26 #7
Ikke testet, men måske noget i retning af dette:

function IntArrayIndexOf(IntArray: Array of Integer; Int: Integer): Integer;
var
  I: Integer;
begin
  Result := -1;
  for I := Low(IntArray) to High(IntArray) do
    if IntArray[I] = Int then
    begin
      Result := I;
      Break;
    end;
end;

Bruges på denne måde:
var
  IntegerArray: Array of Integer;
begin
  !! En masse kode, hvor der bliver hældt tal på arrayet...

  if IntArrayIndexOf(IntegerArray, 97) > -1 then
    ShowMessage('97 er i arrayet')
  else
    ShowMessage('97 er ikke i arrayet');
Avatar billede fixxxer Nybegynder
25. december 2003 - 00:35 #8
athlon-pascal >> fin løsning, smid et svar
Avatar billede athlon-pascal Juniormester
25. december 2003 - 00:37 #9
Yahooo!
Så bliver det også jul i år ;o)

God jul!
Avatar billede fixxxer Nybegynder
25. december 2003 - 13:24 #10
mange tak og i lige måde :)
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