31. juli 2001 - 11:26
Der er
42 kommentarer og 1 løsning
Brækforkortelse
Findes der en indbygget funktion i php til at forkorte brøker ned til det mindst mulige (JA, jeg har kigget i manualen, men kan ikke finde noget)?? Hvis ikke, er der så nogen, der har nogle ideer til hvordan noget sådant laves?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Mener du ikke BRØKforkortelse??? Forhåbentlig ikke bræk *S* Kan du ikke bare dividere helt ud indtil der ikke er en rest? ::sunlock.dk::
Du kan vel bruge round? round(tal, decimaler);
Det får nok flere til at kigge *lol*
up, nej det kan du ikke:(
Du kan jo lave din egen klamme: <?php $tæller = 10; $nævner = 2; $nævner > $tæller ? $for = $tæller : $for=$nævner; for($i=0; $i<$for; $i++){ if($tæller % $for ==0){ if($nævner % $for ==0){ $last_eq_n = $nævner / $for; $last_eq_t = $tæller / $for; } } } if($last_eq_n && $last_eq_t){ echo \'Det blev fundet et ny brøk:<br>\'; echo $last_eq_t.\'/\'.$lats_eq_n; } nb: utestet !!
Add lige: else{ echo \'Brøken kunne ikke forkortes\'; } Til bunden.
31. juli 2001 - 11:41
#10
Den virker ikke fordi at jeg kom til at skrive echo $lats_eq_n i stedet for $last_eq_n i bunden. Sådan skal den være: <?php $tæller = 736; $nævner = 12; $nævner > $tæller ? $for = $tæller : $for=$nævner; for($i=0; $i<$for; $i++){ if($tæller % $for ==0){ if($nævner % $for ==0){ $last_eq_n = $nævner / $for; $last_eq_t = $tæller / $for; } } } if($last_eq_n && $last_eq_t){ echo \'Det blev fundet et ny brøk:<br>\'; echo $last_eq_t.\'/\'.$last_eq_n; } else{ echo \'Brøken kunne ikke forkortes\'; } ?>
31. juli 2001 - 11:42
#11
jap! Det fand jeg også ud af!
31. juli 2001 - 11:53
#12
Det er jo faktisk en nyttig ting, så jeg har bygget en form på og poster den så alle kan få gavn af den: <FORM METHOD=GET ACTION=\"<?=$PHP_SELF?>\"> Tæller: <INPUT TYPE=\"text\" NAME=\"teller\" VALUE=\"<?=$teller?>\"> <INPUT TYPE=\"text\" NAME=\"nevner\" VALUE=\"<?=$nevner?>\"> <INPUT TYPE=\"hidden\" NAME=\"forkort\" VALUE=\"ok\"> <INPUT TYPE=\"submit\" VALUE=\"Forkort\"> </FORM> <?php if($forkort){ $nEvner > $teller ? $for = $teller : $for=$nevner; for($i=0; $i<$for; $i++){ if($teller % $for ==0){ if($nevner % $for ==0){ $last_eq_n = $nevner / $for; $last_eq_t = $teller / $for; } } } if($last_eq_n && $last_eq_t){ echo \'Det blev fundet et ny brøk:<br>\'; echo $last_eq_t.\'/\'.$last_eq_n; } else{ echo \'Brøken kunne ikke forkortes\'; } }
31. juli 2001 - 11:54
#13
Typisk at poste noget med fejl! <FORM METHOD=GET ACTION=\"<?=$PHP_SELF?>\"> Tæller: <INPUT TYPE=\"text\" NAME=\"teller\" VALUE=\"<?=$teller?>\"> <INPUT TYPE=\"text\" NAME=\"nevner\" VALUE=\"<?=$nevner?>\"> <INPUT TYPE=\"hidden\" NAME=\"forkort\" VALUE=\"ok\"> <INPUT TYPE=\"submit\" VALUE=\"Forkort\"> </FORM> <?php if($forkort){ $nevner > $teller ? $for = $teller : $for=$nevner; for($i=0; $i<$for; $i++){ if($teller % $for ==0){ if($nevner % $for ==0){ $last_eq_n = $nevner / $for; $last_eq_t = $teller / $for; } } } if($last_eq_n && $last_eq_t){ echo \'Det blev fundet et ny brøk:<br>\'; echo $last_eq_t.\'/\'.$last_eq_n; } else{ echo \'Brøken kunne ikke forkortes\'; } }
31. juli 2001 - 11:56
#14
barefoot <<< Du er godt nok hurtig, men der er en fejl. Fx kan 1750 ikke forkortes med 3, det vil jeg nu godt sige... Jeg kan ikke lige se fejlen... ::sunlock.dk::
31. juli 2001 - 11:57
#15
formen kan laves sådan her: <FORM METHOD=GET ACTION=\"<?=$PHP_SELF?>\"> Tæller: <INPUT TYPE=\"text\" NAME=\"teller\" VALUE=\"<?=$teller?>\"> <INPUT TYPE=\"text\" NAME=\"nevner\" VALUE=\"<?=$nevner?>\"> <INPUT TYPE=\"submit\" name\"forkort\" VALUE=\"Forkort\"> </FORM>
31. juli 2001 - 11:59
#16
Tak:-) men: 1750 / 3 =583,333 <=> at brøken ikke kan forkortes. Jeg glemte forresten at skrive nævner på i formen: <FORM METHOD=GET ACTION=\"<?=$PHP_SELF?>\"> Tæller:<br> <INPUT TYPE=\"text\" NAME=\"teller\" VALUE=\"<?=$teller?>\"><br> Nævner:<br> <INPUT TYPE=\"text\" NAME=\"nevner\" VALUE=\"<?=$nevner?>\"> <INPUT TYPE=\"hidden\" NAME=\"forkort\" VALUE=\"ok\"> <INPUT TYPE=\"submit\" VALUE=\"Forkort\"> </FORM> <?php if($forkort){ $nevner > $teller ? $for = $teller : $for=$nevner; for($i=0; $i<$for; $i++){ if($teller % $for ==0){ if($nevner % $for ==0){ $last_eq_n = $nevner / $for; $last_eq_t = $teller / $for; } } } if($last_eq_n && $last_eq_t){ echo \'Det blev fundet et ny brøk:<br>\'; echo $last_eq_t.\'/\'.$last_eq_n; } else{ echo \'Brøken kunne ikke forkortes\'; } }
31. juli 2001 - 11:59
#17
Det virker som om det kun virker med lige tal??
31. juli 2001 - 12:00
#18
wizprod => øh ja? Det var jo sådan jeg sendte den i anden omgang:)
31. juli 2001 - 12:00
#19
barefoot <<< Det er rigtigt, men den kan vel godt forkortes således: 1750/3=583,3333 583 + 1/3 *S* Det var det, jeg troede wizprod.com var ude efter... ::sunlock.dk::
31. juli 2001 - 12:01
#20
15/3 virker da
31. juli 2001 - 12:02
#21
ja ok, det er rigtigt...
31. juli 2001 - 12:03
#22
Det var derfor jeg spurgte om han ikke bare kunne bruge resten til noget... *S*
31. juli 2001 - 12:03
#23
tjaaa, båe og... jeg var ude efter at at f.eks. 20/2 blev forkortet til 10/1 osv
31. juli 2001 - 12:04
#24
wizprod.com <<< Hvad så med fx 22/7????
31. juli 2001 - 12:05
#25
skal den bare sige at den ikke kunne forkortes...
31. juli 2001 - 12:06
#26
sunlock.dk => men det er jo ikke at forkorte bræker, men at lave hele tal om til brøker. Det er jo en vis forskel.
31. juli 2001 - 12:07
#27
barefoot + wizprod.com <<< Ok... jeg misforstod bare spm\'et - sorry :( Men det virker altså efter hensigten nu :) ::sunlock.dk::
31. juli 2001 - 12:07
#28
sunlock => jeg mente selvfølgelig at lave UHELE tal om til brøker:))
31. juli 2001 - 12:08
#29
hmmm mit domæne er nede (endnu en gang, DHT), så skifter lige server for at teste
31. juli 2001 - 12:08
#30
barefoot <<< Trykfejl er gratis *S* Desuden gik jeg også ud fra det :))
31. juli 2001 - 12:11
#31
31. juli 2001 - 12:12
#32
Jeg vil ud og spise kirsebær. Kommer igen om lidt.
31. juli 2001 - 12:15
#33
prøv lige at indtaste 12/10, det giver IRL 6/5 meeen ikke efter din ellers geniale mskine!
31. juli 2001 - 13:00
#34
back!
Ja, det har du ret i og det skyldes en dum men også meget simpel fejl i min maskine.
Som i kan se på koden er det $i som der skal divideres med. Jeg kom til at bruge $for da jo er det samme som nævneren!!!!
Derved kom der altid kun en udregning.
Men nu har jeg rettet det, og som du kan se virker det nu, også med 12/10;
En lidt pinlig fejl som jeg har tendens til at lave alt for tit og ofte:()
http://barefoot.cee.dk/experten/broekforkorter.php?teller=12&nevner=10&forkort=ok
31. juli 2001 - 13:08
#35
barefoot <<< ja, nu virker det, men nu kommer du aldrig ind i: else { echo \'Brøken kunne ikke forkortes som bræk\'; } Den vil jo heletiden dividere ;) Derfor er denne absolit... Den kan lige så godt fjernes... prøv med 12/11 *S* ::sunlock.dk::
31. juli 2001 - 13:16
#36
sunlock => det er fordi at første værdi at $i er sat til 1. Denne vil returnere sammen bræk som den originale. Ved at sætte $i=2 i starten kommer det til at virke helt.
31. juli 2001 - 13:17
#37
barefoot <<< Jepper... det var også det jeg mente. Derfor hvis $i=1 skal den gå i else *S* ::sunlock.dk::
31. juli 2001 - 13:19
#38
Så er det lettere bare at starte ved $i=2:)) Så slipper man for at kigge på om $i==1; Sådan har jeg gjordt nu. Enhver bræk vil som minimum være delelig med 2 hvis den kan forkortes. Hvis tallet er mindre end 2 så har man originalbrøken da det kun kan være lige tal. Derfor er der slet ikke nogen grund til at starte før 2:)))
31. juli 2001 - 13:20
#39
hehe... det er da utroligt... kan folk ikke skrive BRØK *S*
31. juli 2001 - 13:23
#40
damn *GG*
31. juli 2001 - 14:26
#41
Det virker jo fint nok! Here you go barefoot!
31. juli 2001 - 14:29
#42
yearh *G*
31. juli 2001 - 14:38
#43
Jeg sender lige den enedlige udgave til fremtidige brugere: <FORM METHOD=GET ACTION=\"<?=$PHP_SELF?>\"> Tæller:<br> <INPUT TYPE=\"text\" NAME=\"teller\" VALUE=\"<?=$teller?>\"><br> Nævner:<br> <INPUT TYPE=\"text\" NAME=\"nevner\" VALUE=\"<?=$nevner?>\"> <INPUT TYPE=\"hidden\" NAME=\"forkort\" VALUE=\"ok\"> <INPUT TYPE=\"submit\" VALUE=\"Forkort\"> </FORM> <?php if($forkort){ $nevner > $teller ? $for = $teller : $for = $nevner; for($i=2; $i<=$for; $i++){ if($teller % $i ==0){ if($nevner % $i ==0){ $last_eq_n = $nevner / $i; $last_eq_t = $teller / $i; } } } if($last_eq_n && $last_eq_t){ echo \'Det blev fundet et ny brøk:<br>\'; echo $last_eq_t.\'/\'.$last_eq_n; } else{ echo \'Brøken kunne ikke forkortes som bræk\'; } }
Vi tilbyder markedets bedste kurser inden for webudvikling