Autor | Zpráva | ||
---|---|---|---|
Miloš Profil |
#1 · Zasláno: 24. 7. 2008, 20:47:56 · Upravil/a: Miloš
„Nemaje co dělat“ opět jsem si hrál.
Výsledkem jsou nové názvy čísel v šestnáctkové soustavě (namísto prozaických A–F); ale o to nejde. Protože jsem „programátor–amatér–věčný začátečník“, který se touto činností ani neživí, ani soustavně nezabývá, uložil jsem si malé algoritmické cvičení, abych se alespoň trochu udržoval ve formě (jakož nezapomínal syntaxi). Výsledkem měl být co nejúspornější kód, který by v HTML vypsal tabulku o třech sloupcích: <td>desítkové číslo</td><td>šestnáctkové číslo číslo</td><td>slovní pojmenování</td> Tu jsou odkazy: výsledné html, php kód a includované pole. V poli jsem vypsal všechny výrazy od X0 do X100. Uvažoval jsem sice o dvou polích (jednotky a desítky; v případě delšího výpisu pak ještě pole pro stovky, tisíce…), ale s ohledem na složitost Češtiny jsem rezignoval(*) Pro přehlednost uvádím klíčovou část výše odkazovaného kódu i zde: <table border="1" cellpadding="3"> <thead><tr><th>%d</th><th>%X</th><th>%s</th></tr></thead> <tfoot><tr><th>%d</th><th>%X</th><th>%s</th></tr></tfoot> <?php require 'pole.php'; // $pole = array("nula", "jedna", "dva", … "tyqadesát tykef", "sto"); for ($i = 0, $sl = 1; $i < count($pole); $sl++) { // $i = obecné počítadlo, ale $i++ až ve vnořeném cyklu *** $sl = sudá/lichá echo '<tbody class="n'.($sl%2).'">'."\n"; // tbody (po 16 <tr> ) mají class="n0" nebo n1, protože $sl%2 for ($j=0; $j < 16 && $i < count($pole); $j++, $i++){ // $j = obecné počítadlo vnořeného cyklu printf ("\t<tr><th>%d</th><td>%X</td><td>$pole[$i]</td></tr>\n", $i, $i); // vypsání řádku tabulky } echo "</tbody>\n"; } ?> </table> A nyní otázky: 1) Vadí mi, že 2× testuji (tedy v obou cyklech for) jestli $i < count($pole). Nešlo by to jen jednou? 2) Šel by tento kód ještě nějak vylepšit (zjednodušit)? 3) Napadl by někoho z vás jiný (a zároveň úspornější) algoritmus? (*) Víte mimochodem, že má Čeština krom duálu i „kvartál“ (či „semiplirál“)? jedno sto (singulár) dvě stě (duál) tři, čtyři sta („kvartál“) pět… set (plurál) (V případě vyšších řádů duál chybí a je nahrazen „kvartálem“: dva, tři, čtyři tisíce, miliony…) |
||
nightfish Profil |
#2 · Zasláno: 24. 7. 2008, 20:56:36
Warning: require(pole.php) [function.require]: failed to open stream: No such file or directory in /storage/www2/8/site26648/wwwroot/hexa/index.php on line 15
Fatal error: require() [function.require]: Failed opening required 'pole.php' (include_path='/www/8/site26648/:.:/usr/lib/php:/usr/share/php5/:/usr/ share/php/') in /storage/www2/8/site26648/wwwroot/hexa/index.php on line 15 ...nic to nevypíše, takže bohužel nechápu, k čemu jsou tam ty <tbody>... |
||
Miloš Profil |
#3 · Zasláno: 24. 7. 2008, 21:00:20
pole.php jsem zapomněl nahrát na server, už tam je.
A pak význam tbody pochopíš (střídání barevných oddílů po 16 řádcích; něco jako div nebo span, jenže v tabulce). |
||
nightfish Profil |
#4 · Zasláno: 24. 7. 2008, 21:02:43
co takhle?
<?php require 'pole.php'; // $pole = array("nula", "jedna", "dva", … "tyqadesát tykef", "sto"); $pocet = count($pole); for ($i = 0; $i < $pocet; $i++) { if (!($i % 16)) echo "<tbody class='nl".(($i / 16) %2)."'>"; printf ("\t<tr><th>%d</th><td>%X</td><td>$pole[$i]</td></tr>\n", $i, $i); // vypsání řádku tabulky if (!($i % 16)) echo "</tbody>"; } ?> |
||
Miloš Profil |
#5 · Zasláno: 24. 7. 2008, 21:24:27
Vypadá to lidštěji, ale </tbody> se vypisuje na špatném řádku – hned po tom prvním, u kterého je <tbody>.
To ale půjde upravit. nerozumím ale zápisu if (!($i % 16)) –> jestliže není pravda, že $i modulo šestnácti co??? rovná se kolik??? |
||
nightfish Profil |
#6 · Zasláno: 24. 7. 2008, 21:28:30
Miloš
Vypadá to lidštěji, ale </tbody> se vypisuje na špatném řádku ajo, vidíš... upravu tu druhou podmínku na if (!(($i + 1) % 16)) echo "</tbody>"; ...teď už je problém jen s chybějícím </tbody> na konci tabulky nerozumím ale zápisu if (!($i % 16)) –> jestliže není pravda, že $i modulo šestnácti co??? rovná se kolik??? hodnotou výrazu $i % 16 je buď 0 (což je false) nebo 1-15 (což je true) |
||
Miloš Profil |
#7 · Zasláno: 24. 7. 2008, 21:33:47 · Upravil/a: Miloš
nightfish
tomu +1 jsem se nakonec dopídil taky; ináč díky za osvětu. Mimochodem – jak se ti líbí nové číslovky? Doplňuji: ...teď už je problém jen s chybějícím </tbody> na konci tabulky jo, to jsem teď taky přehlédnul; z pohledu HTML to (v transitionalu) nevadí, ukončovací značka není povinná, ale z hlediska programu to není nejčistší. Ale s tím si budu lámat hlávku až zítra, teď už jdu spat. |
||
Časová prodleva: 16 let
|
0