| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
AikaLaskincoaster 07.09.05 17:37 Lasketaan matkaan käytetty aika eri nopeuksilla. http://koti.mbnet.fi/villix/aikalaskin.php
<?php /* aika = nopeus * matka nopeus min/km matka km aika min Lasketaan eri nopeuksille ja matkoille ajat. Pointti tässä koodissa on varmaankin tuo ajan muotoilu muotoon tunnit:minuutit:sekunnit, kun laskettu aika on minuutteina. */ ?> <html> <head> <style type="text/css"> td { width: 3.5em; text-align: right; } </style> </head> <body> <table border="1"> <?php /* Matkaan käytetty aika muodossa h:min:s */ function Aika($vauhti, $matka) { $aika = $vauhti * $matka; $tunnit = ""; // Erotellaan ajasta minuutit ja tarvittaessa lasketaan myös tunnit $minuutit = (int)$aika; $sekunnit = number_format(60 * ($aika - $minuutit),0); if($minuutit >= 60) { $tunnit = (int)($minuutit / 60); $tunnit .= ":"; $minuutit = $minuutit - (60 * $tunnit); if(strlen($minuutit) == 1) $minuutit = "0".$minuutit; } if(strlen($sekunnit) == 1) $sekunnit = "0".$sekunnit; return $tunnit.$minuutit.":".$sekunnit; } // Asetetaan alkuarvot // halutut matkat (km) $matkat = array(0.05, 0.1, 0.4, 0.8, 1, 1.5, 2, 5, 10, 11.6, 15); $nopeusa = 2.5; // alku (min/km) $nopeusl = 10; // loppu $nopeusd = 0.5; // muutos // taulukoon matka-arvot print "<tr>\n\t<th> </th>\n"; for($q=0; $q<count($matkat); $q++) print "\t<th>{$matkat[$q]}</th>\n"; print "</tr>\n"; for($nopeus=$nopeusa; $nopeus<=$nopeusl; $nopeus += $nopeusd) { print "<tr>\n"; print "\t<th>".number_format($nopeus,1)."</th>\n"; for($i=0; $i<count($matkat); $i++) { print "\t<td>"; print Aika($nopeus,$matkat[$i]); print "</td>\n"; } print "</tr>\n"; } ?> </table> </body> </html> coaster 20:23 7.9.05 Juu tämän koodin idea lähti ihan siitä että laskin eri juoksunopeuksien vaikutusta aikaan halutulla matkalla. No siinä paperille niitä laskiessa tuli mieleen, että voishan tämän koneellakin tehdä. Jolloin sitten otin mukaan erimatkoja ja nopeuksia. Niin tosiaan tuota nopeutta tässä kuvataan minuuttia/kilometri, joka sopii hyvin juurikin juoksun nopeuden mittaamiseen. Kuten tohon koodin lisäsin kommenttina, niin pointti varmaankin on tuo ajan muotoilu. editoitu: 00:07 8.9.05 chiman 00:03 8.9.05 Ensinnäkin kaava on väärin: PHP $aika = $vauhti * $matka; PHP $aika = $matka / $vauhti; Toisekseen koodissa on turhan paljon tyhjiä rivejä. Käytä niitä säästeliäämmin, erottamaan suuremmat loogiset kokonaisuudet toisistaan. Kolmanneksi: Opettele foreach:n käyttö. Kirjoittamasi koodi PHP Siistiytyy sillä muotoon PHP Sama juttu toisaalla koodissa. coaster 09:08 8.9.05 1. Vauhtia ei ole määritelty mitenkään hassusti. Se on juurikin tarkoituksella noin eli min/km, joka soveltuu juurikin juoksunopeuden mittaamiseen huomattavasti paremmin kuin km/h. Syystä että nopeuden ilmoittaminen km/h ei ole kuvaavaa, vaan jopa sekavaa, kun kyse on juurikin juoksemisesta. 2. tyhjät rivit... Makuasia 3. Juu kävi mielessä, että olis voinut tehdä foreachilla, mutta päädyin kuitenkin pelkkään foriin. Sitten tuo siistiminen, sekin on vähän makuasia ja tapauskohtainen. Tuo mun tapa kirjoittaa tuo juontaa siitä, kun yleensä siinä saattaa tehdä kaikenlaista muutakin kuin vaan tuon funktiokutsun, mutta joo... Mutta hyvää palautetta :) editoitu: 13:05 8.9.05 chiman 12:52 8.9.05 Aika-funktion tekisin näin: PHP coaster 21:55 8.9.05 Kas kas, sitä oppii vieläkin uusia aisioita :) Toi näytti aika näppärältä toi sun versiosi, voiskin varmaan päivittää tota omaa vähäsen. |
![]() Haku
|