Avatar billede krk Nybegynder
03. maj 2005 - 11:04 Der er 13 kommentarer og
1 løsning

random funktion

Hej igen.
Jeg er ved at lave en side med regnestykker til 3 klasse.
Jeg har fået siden til at printe en side med plus, en side med minus...
Nu vil jeg gerne at der kan printes en side med blandet stykker ud, altså både plus, minus,gange og divider.

Kan jeg bruge random funktionen her ?
Avatar billede olebole Juniormester
03. maj 2005 - 11:05 #1
Ja :)
Avatar billede krk Nybegynder
03. maj 2005 - 11:06 #2
hvordan :-)
Avatar billede krk Nybegynder
03. maj 2005 - 11:07 #3
jeg har kun brugt funktionen i forbindelse med integer
$tal1=rand(0,50);
Avatar billede olebole Juniormester
03. maj 2005 - 11:33 #4
Jamen, den er jo også helt fin til at konstruere tal med. mt_rand() giver dog en lidt bedre 'tilfældighed' ... det kan være, du skulle kikke på den:
    http://dk2.php.net/manual/da/function.mt-rand.php

Hvis du vil kunne vælge en tilfældig operator, kan det gøres med:
    $myOperatorArr = array("+", "-", "/", "*");
    shuffle($myOperatorArr);
    print $myOperatorArr[0];
Avatar billede krk Nybegynder
03. maj 2005 - 11:45 #5
$operator=array("+","-","*","/");
shuffle($operator);
print" $operator[0]";

Jeg har skrevet det ovenstående , men det virker ikke
Avatar billede ksoren Nybegynder
03. maj 2005 - 11:46 #6
Hvis tallene skal være afhængige af operatoren, kan du udvide den lidt..

$myOperatorArr = array("+", "-", "/", "*");
shuffle($myOperatorArr);
$op = $myOperatorArr[0];

switch($op){
case '+':
    $tal1=rand(0,50);
    $tal2=rand(0,50);
    break;
case '-':
    $tal1=rand(0,50);
    $tal2=rand(0,50);
    break;
case '/':
    $tal1=rand(0,10);
    $tal2=rand(1,3);
    break;
case '*':
    $tal1=rand(0,10);
    $tal2=rand(0,10);
    break;
}

echo "$tal1 $op $tal2";
Avatar billede krk Nybegynder
03. maj 2005 - 11:47 #7
jeg sende lige koden så kan du se hvad jeg har skrevet:

print"<table border='0'width='700'><tr>";
    while($i<$antal){
        $tal1=rand($interval1,$interval12);
        $tal2=rand($interval2,$interval22);
       
        if($operator=='-'){
            if($tal1>=$tal2){
                require("req/TDafstand.php");
            }
        }elseif(($operator=='+')or($operator=='*')){
            require("req/TDafstand.php");

        }elseif($operator=='/'){
            $divResultat = $tal1/$tal2;
            if ( is_int($divResultat) ){
                require("req/TDafstand.php");
            }
       
        }elseif($operator=='alle'){
            //lidt kode
            $operator=array("+","-","*","/");
            shuffle($operator);
            //$operator[array_rand($operator)];
            print"<td >$tal1 $operator[0] $tal2 <br><br></td><td> =________&nbsp;&nbsp;&nbsp;&nbsp;<br><br></td>";
            $i++;
            $t++;
                // billederne kan nu ligge 3 og 3
                if($t>3){
                    print"</tr><tr>";
                    $t=0;
                }
        }
               
    }
    print"</tr></table>";
Avatar billede olebole Juniormester
03. maj 2005 - 11:49 #8
krk >> Hvis du er ligeså god til forklare dig overfor 3. klasse, er der vel ikke noget at sige til, Pisa-undersøgelserne ser ud, som de gør  :)

Hvad mener du med "virker ikke"? Hvad sker? Hvad sker der ikke? Får du fejl?
Hvis du ellers kan skrive af, virker det såmænd fint  :)
Avatar billede krk Nybegynder
03. maj 2005 - 11:56 #9
Nu er jeg heldigvis ikke lærer (heldigvis både for ungerne og mig) :-)
Der sker faktisk ingen ting, browseren stå bare og køre.
Kig på www.kryt.dk/matematik
Avatar billede krk Nybegynder
03. maj 2005 - 11:57 #10
efter lang tid fik jeg denne fejl:

Fatal error: Maximum execution time of 30 seconds exceeded in /hsphere/local/home/boris/kryt.dk/matematik/index.php on line 15
Avatar billede olebole Juniormester
03. maj 2005 - 12:00 #11
Det er ikke til at sige, hvad du gør galt udfra den kodestump, du viser. Jeg kan dog se, du vist ender op med noget invalidt HTML. Mon ikke slutningen af tabellen kommer til at se sådan ud:
  <tr></tr>
  </table>

- hvilket er valid kode.

Hvis den løber i ring, er det vel fordi, du kun tæller $i op, hvis $operator er lig med "alle". Det betyder formodentlig betingelsen i din while-løkke aldrig bliver opfyldt ...... $i er formodentlig altid mindre end $antal  ;o)
Avatar billede krk Nybegynder
03. maj 2005 - 12:02 #12
det tror jeg nu ikke. For den stump kode der tæller op har jeg også brugt til plus,minus og gange.
Avatar billede krk Nybegynder
03. maj 2005 - 12:11 #13
Nu virker det.
Jeg fik ændret navnet på en variabel, så virkede det.
Så tak for hjælpen ...og tålmodigheden
Avatar billede olebole Juniormester
03. maj 2005 - 13:23 #14
... selvtak  ;o)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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