Avatar billede foxmulder Nybegynder
07. februar 2002 - 20:13 Der er 3 kommentarer og
1 løsning

Sortering med 'if'

Den her plager mig...

Lav en rutine som sorterer 5 tal som brugeren indtaster.

Rutinen må kun laves med if-sætninger uden else og der må ikke anvendes Arrays.

jeg sidder fast.....
Avatar billede tobias_cool Nybegynder
07. februar 2002 - 21:50 #1
Hvad handler det om
Avatar billede jespernaur Nybegynder
08. februar 2002 - 00:42 #2
Kravet om ikke at måtte benytte 'else' er temmelig fjollet, da:

if (a <= b) {
  // noget 1
}
else {
  // noget 2
}

er fuldstændig ækvivalent med

if (a <= b) {
  // noget 1
}

if (a > b) {
  // noget 2
}

Der spildes kun noget computertid med den overflødige sammenligning.

5 tal kan sorteres på 5*4*3*2*1 mulige måder, altså 120 forskellige. Den helt
bevidstløse løsning er at liste dem efter hinanden som flg eksempel viser, jeg
har begrænset mig til 3 tal, da der her kun er 6 muligheder.

Brugeren taster tallene ind i variablene t1, t2, t3.

if ((t1 <= t2) && (t2 <= t3)) {
  //resultat t1,t2,t3
}

if ((t1 <= t3) && (t3 <= t2)) {
  //resultat t1,t3,t2
}

if ((t2 <= t1) && (t1 <= t3)) {
  //resultat t2,t1,t3
}

if ((t2 <= t3) && (t3 <= t1)) {
  //resultat t2,t3,t1
}

if ((t3 <= t1) && (t1 <= t2)) {
  //resultat t3,t1,t2
}

if ((t3 <= t2) && (t2 <= t1)) {
  //resultat t3,t2,t1
}

Extrapoleret til 5 variable ville en mulig løsning være at gentage noget tilsvarende
til man havde alle 120 mulige resultater. Dette er bevidstløst, men opgavens
formulering (at man ikke må bruge 'else' eller arrays) er også bevidstløs.

Mvh
Jesper Naur
Avatar billede foxmulder Nybegynder
08. februar 2002 - 10:23 #3
jeps jeg er udmærket klar over at det kan laves 1.000 gange smartere med Arrays og andre funktioner.
Det der plagede mig var at jeg ikke kunne få det til at virke med disse simple kommandoer.
Det er ikke noget jeg skal bruge praktisk, blot en lille irriterende ting som jeg ikke lige kunne hitte ud af, og det plagede mig.

:o)
Avatar billede foxmulder Nybegynder
28. februar 2002 - 17:52 #4
tak for jeres svar, men ingen af dem løste mit problem..
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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