Avatar billede chrisson Nybegynder
15. marts 2007 - 22:18 Der er 15 kommentarer

PHP lommeregner X^Y

Hej alle sammen,
Jeg er ved at lave en PHP lommeregner med en del funktioner på,
og jeg kunne godt tænke mig at have Tier Potenser med.

Men jeg synes det er lidt klodset at skrive alle sammen,
og har lige smidt den der hvordan man uddeler en text ud af hovedet!...

Men det som jeg gerne vil have hjælp til er:
At hvis personen fx. skriver:
3^10
så skal den regne det ud
Det samme gælder self. for 6^2 osv.

Nogle der kan hjælpe med det?
Avatar billede loevgaard Praktikant
15. marts 2007 - 22:26 #1
Avatar billede radion Nybegynder
15. marts 2007 - 22:29 #2
fx

<?
$x=3;

$y=4;

$result=pow($x,$y);
echo $result;
?>

www.php.net/pow
Avatar billede radion Nybegynder
15. marts 2007 - 22:30 #3
ahh, dvælen på eksperten, så er der andre der snupper den :P
Avatar billede chrisson Nybegynder
15. marts 2007 - 22:43 #4
Men hvad nu hvis jeg har min regneform i 1 input?
Avatar billede loevgaard Praktikant
15. marts 2007 - 22:52 #5
$input = "44^55";
$ops = explode("^", $input);

$result = pow($ops[0], $ops[1]);
Avatar billede chrisson Nybegynder
15. marts 2007 - 23:14 #6
Nice, det virker..... :)

Har du andre ting man lige kan bruge til en?
Måske så man kan regne både med eval(),sqrt(),pow() og måske andre på samme tid?
Avatar billede radion Nybegynder
15. marts 2007 - 23:31 #7
ja, du kan jo søge efter forskellige tegn

if(strpos($input,'*'))
{
$ops=explode('*',$input);

$result=$ops[0]* $ops[1];

}
elseif(strpos($input,'^'))
{
$ops = explode("^", $input);

$result = pow($ops[0], $ops[1]);
}

echo $result

og så videre og så videre :)
Avatar billede radion Nybegynder
15. marts 2007 - 23:33 #8
note: man regner ikke med eval.. eval fortolker teksten som php kode, vær meget varsom med det
Avatar billede chrisson Nybegynder
15. marts 2007 - 23:39 #9
Så skal man bare indsætte alle sammen ind i den der oppe^
Men hvordan kan man så få den til at ligge flere ting sammen?
fx. dette regnestykke:
5+5-6*4/7888^6
Avatar billede chrisson Nybegynder
15. marts 2007 - 23:40 #10
tror jeg selv har løst, 2 sek prøver lige
Avatar billede chrisson Nybegynder
15. marts 2007 - 23:45 #11
<?
if($_POST[udregn] != ""){
$result = "0";

if(strpos($_POST[udregn],'*'))
{
$ops=explode('*',$_POST[udregn]);

$result=$result+$ops[0]* $ops[1];

}
if(strpos($_POST[udregn],'^'))
{
$ops = explode("^", $_POST[udregn]);

$result=$result+pow($ops[0], $ops[1]);
}
if(strpos($_POST[udregn],'+'))
{
$ops = explode("+", $_POST[udregn]);

$result=$result+$ops[0]+ $ops[1];
}
echo $result;
}
?>
Avatar billede chrisson Nybegynder
15. marts 2007 - 23:46 #12
Jeg lader den lige stå åben til imorgen, og hvis jeg får nogle problemer, så skriver jeg lige...

uddeler points imorgen til jer begge to ;)
Avatar billede chrisson Nybegynder
15. marts 2007 - 23:49 #13
if($_POST[udregn] != ""){
$result = "0";

if(strpos($_POST[udregn],'*'))
{
$ops=explode('*',$_POST[udregn]);

$result=$result+$ops[0]* $ops[1];

}
if(strpos($_POST[udregn],'^'))
{
$ops = explode("^", $_POST[udregn]);

$result=$result+pow($ops[0], $ops[1]);
}
if(strpos($_POST[udregn],'+'))
{
$ops = explode("+", $_POST[udregn]);

$result=$result+$ops[0]+ $ops[1];
}
if(strpos($_POST[udregn],'-'))
{
$ops = explode("-", $_POST[udregn]);

$result=$result+$ops[0]- $ops[1];
}
echo $result;
}
?>

Den siger at 5-3 = 2 RIGTIGT
og at 5+5-7 = 8 FORKERT...
Avatar billede chrisson Nybegynder
15. marts 2007 - 23:57 #14
hm...den tager kun det første... jeg vil smutte nu, kigger på det igen imorgen
Cya...
Avatar billede chrisson Nybegynder
16. marts 2007 - 15:30 #15
Hej,
Har nogle af jer fundet en løsning... indtil videre prøver jeg videre
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