Den producerer stadig stykker som \"10/3\" og \"10/4\" i begge tilfælde! Hvorfor?
Her er koden:
repeat while ok = false set tal1 = random(5) * 2 set tal2 = random(3) + 1 global resultat set resultat = tal1 / tal2 if tal1 mod tal2 AND resultat > 1 then ok = true put resultat end repeat
\"This statement divides 7 by 4 and then displays the remainder in the Message window:
put 7 mod 4
The result is 3.\"
Men det jeg søger er, at hvis netop tal1 = 7 og tal2 = 4, så skal den køre loopet indtil resultatet er et heltal og IKKE et afrundet, som f.eks. 3 i dette eksempel - så kun stykker som 18/3, 10/2, 4/2, 20/5 osv. er tilladt!
repeat while ok = false set tal1 = random(30) set tal2 = random(9) + 1 global resultat if tal1 mod tal2 = 0 then set resultat = tal1 / tal2 exit repeat end if
Grunden til at \"if tal1 mod tal2 AND resultat > 1 then ok = true\" ikke giver det ønskede resultat er at:
if tal1 mod tal2 then -- bliver fortolket som if tal1 mod tal2 = TRUE then, og i directors verden er true = ikke-0 dvs et heltal og det du ville evaluere på var om tal1 mod tal2 var 0....
if tal1 mod tal2 = 0 AND resultat > 1 then put resultat end if
... burde give rigtige løsninger!
Ask-M
Synes godt om
Ny brugerNybegynder
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.