Autor Zpráva
noko
Profil
Dobrý den
udělal jsem kalkulačku v JS.
stejně asi kalkulačku nebude používat nikdo jiný než já, ale stejně co si o tom myslíte?
http://jakubvejrosta.moxo.cz/kalkulacka.html
PS. kód z kalkulačky si můžete vložit na web s tím že zachováte odkaz.
Tomáš123
Profil
noko:
Funkcia DEL funguje trochu nepredvídavo. Obyčajne na lepších kalkulačkách maže po jednom znaku z konca riadku. Na tých horších (neštudentských) umožňuje vymazať časť výpočtu (napr. 1x2 DEL 3 nám vyjde na 1x3 - tie kalkulačky členy nahradzujú a píšu stále od začiatku riadku). V tvojej kalkulačke nevidím rozdiel medzi funkciami DEL a C. Taktiež sa mi nepáči, že tlačítka operácií nie sú v jednom stĺpci, podčiarkovníky, farba, malý displej a copyright ako c v zátvorke.

Keď som skúšal, čo všetko sa dá do displeja zadať, nielen, že som prišiel na to, že cez klávesnicu a enter to nefunguje, ale po poohliadnutí sa za chybou som uvidel ten otrasný kód... Neviem, či som niekedy videl toľko červenej pohromade. Ďalej som ho neskúmal. Daj si to do poriadku!
lionel messi
Profil
noko:
1. Pohral by som sa s dizajnom, najmä farbami, súčasná kombinácia sa mi veľmi nepozdáva.
2. Stránka vôbec nemá vyplnený titulok.
3. V kóde máš veľký neporiadok.
4. Nefunkčné potvrdzovanie enterom vnímam ako veľmi otravné.
5. Nepoužívaj eval. Skús si zadať do kalkulačky alert("Eval is evil!") a nechaj kalkulačku vypočítať výsledok.
noko
Profil
Díky za názory, a neví někdo jak tam zapracovat to potvrzení enterem?
Posílám kód:

<DIV align=center>                  
  <CENTER>                  
    <TABLE cellSpacing=4 cellPadding=5 bgColor=green border=3>                    
      <TBODY>                    
        <TR>                      
          <TD align=middle>
            <FONT color=white><STRONG><big>Kalkulačka</big></STRONG>
            </FONT></TD>
        </TR>                                               
        <center>  
          <TD align=middle bgColor=#00bfff colSpan=4><big><big>  </big></big></big>
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
            <html>  
              <head>  
                <meta http-equiv="content-type" content="text/html; charset=windows-1250">  
                <meta name="generator" content="PSPad editor, www.pspad.com">  
                <title>
                </title>  
              </head>  
              <body> <big> <big> <big>    
                      <form name="kalkulacka">
                        <input type="text" size="18" name="displej">   
        </center>                                             
        <br>  
        <br>
        <input type="button" name="jednicka" value="  1  " onclick="kalkulacka.displej.value += '1' " <br>
        <input type="button" name="dvojka" value="  2  " onclick="kalkulacka.displej.value += '2' " <br>
        <input type="button" name="trojka" value="  3  " onclick="kalkulacka.displej.value += '3' "   <br>__
        <input type="button" name="deleno" value="  :   " onclick="kalkulacka.displej.value += '/' " <br>
        <br>
        <input type="button" name="ctverka" value="  4  " onclick="kalkulacka.displej.value += '4' " <br>
        <input type="button" name="petka" value="  5  " onclick="kalkulacka.displej.value += '5' " <br>
        <input type="button" name="sestka" value="  6  " onclick="kalkulacka.displej.value += '6' "  <br>__
        <input type="button" name="minus" value="   -  " onclick="kalkulacka.displej.value += '-' " <br>
        <br>
        <input type="button" name="sedmicka" value="  7  " onclick="kalkulacka.displej.value += '7' " <br>
        <input type="button" name="osmicka" value="  8  " onclick="kalkulacka.displej.value += '8' " <br>
        <input type="button" name="devitka" value="  9  " onclick="kalkulacka.displej.value += '9' " <br>__
        <input type="button" name="krat" value="  x  " onclick="kalkulacka.displej.value += '*' " <br>
        <br>
        <input type="button" name="nula" value="  0  " onclick="kalkulacka.displej.value += '0' " <br>
        <input type="button" name="nula" value=" 00 " onclick="kalkulacka.displej.value += '00' " <br>
        <input type="button" name="nula" value="000" onclick="kalkulacka.displej.value += '000' " <br>__
        <input type="button" name="plus" value="  +  " onclick="kalkulacka.displej.value += '+' "> 
        <br>
        <input type="button" name="carka" value="   ,  " onclick="kalkulacka.displej.value += '.' "> 
        <input type="button" name="smazat" value="  C  " onclick="kalkulacka.displej.value = '' "> 
        <input type="button" name="smazat" value="DEL" onclick="kalkulacka.displej.value = '' ">
        <input type="button" name="vysledek" value="  =  "         onclick="kalkulacka.displej.value = eval(kalkulacka.displej.value)">
        <font color="black"> </big></big><big>
            <br> 
            <class=" © Jakub Vejrosta">
              <a href="http://jakubvejrosta.moxo.cz">© Jakub Vejrosta   
                </body>
                </html>  
        </font> </TD>
        </TR>
      </TBODY>
    </TABLE></TD>
    </TR>
    </TBODY>
    </TABLE>
  </CENTER>
</DIV>
</FORM>        
</body>
</html>
yFang
Profil
noko:
Doporučil bych ti v první řadě se naučit základní strukturu html kódu.
noko
Profil
děkuju za názory už jsem to vylepšil, ale nevím jak tam dat to potvrzování enterem.
http://jakubvejrosta.moxo.cz/kalkulacka.html
lionel messi
Profil
noko:
děkuju za názory už jsem to vylepšil,
Dizajnovo áno, kód taktiež prešiel istými zmenami, ešte stále je však na ňom čo zlepšovať.

nevím jak tam dat to potvrzování enterem.
Ani ja si nie som istý, JS veľmi neovládam, ale keďže sa nikto nehlási, skúsim drobné nasmerovanie. Obaľ kalkulačku do <form> a tlačidlo = nastav ako <input type="submit">, zrejme bude ešte potrebné vyhrať sa s udalosťou formulára onsubmit, bohužiaľ, konkrétnejšiu radu nedokážem so svojimi znalosťami poskytnúť.

Prečo však naďalej používaš nevhodný eval? Ak nepoznáš alternatívne riešenie, skús sa inšpirovať týmito príspevkami:

PHP - Kalkulacka
PHP - Kalkulacka

Vlákno sa síce zaoberá kalkulačkou v PHP, v uvedených príspevkoch však nájdeš odkazy na všeobecné postupy použiteľné i v JavaScripte, ktoré by ťa mohli posunúť správnym smerom.
Jan Kozák
Profil
lionel messi:
5. Nepoužívaj eval. Skús si zadať do kalkulačky alert("Eval is evil!") a nechaj kalkulačku vypočítať výsledok.
Prečo však naďalej používaš nevhodný eval? Ak nepoznáš alternatívne riešenie, skús sa inšpirovať týmito príspevkami:
A proč ty ho stále nutíš, aby z jednoduchého způsobu přešel na superúžasně komplikovanou šílenost?
Když bude několik týdnů vyvíjet podle tebe bezpečný algoritmus, který bude parsovat i složité výpočty, navrhneš mu: „Do kódu, který prohlížeč stáhl, přidej alert("Eval is evil!")?“ Výsledek přece bude shodný. Podobná ukázka nízkého zabezpečení je nesmyslná, uživatel má zdrojový kód plně pod kontrolou. Zcela jinou věcí by bylo, kdyby výpočet běžel na straně serveru, třeba v PHP, tam by skutečně použití evalu na zpracování vstupu ovlivnitelného uživatelem bylo bez nadsázky šílenou bezpečnostní dírou.

Obaľ kalkulačku do <form> a tlačidlo = nastav ako <input type="submit">, zrejme bude ešte potrebné vyhrať sa s udalosťou formulára onsubmit
Tak. A připojit k události onsubmit také return false, aby nedošlo k zobrazení nové stránky.

noko:
Upravená verze je lepší. Mile jsi překvapil. Vzhledově vypadá podstatně lépe a i z kodérského hlediska je tam vidět velký pokrok.
- Některá tlačítka máš chybně zkopírovaná:
<input class="button last funBG" type="button" value=":" onclick="kalkulacka.displej.value += '/' " <br> Ty jsi chtěl:
<input class="button last funBG" type="button" value=":" onclick="kalkulacka.displej.value += '/' ">
- Tag <link rel="stylesheet"...> patří ještě do hlavičky, tedy před značku </head> I když v praxi je to dost jedno.
- Za posledním tlačítkem (u kterého budeš předělávat type="button" na type="submit" přidej koncovou značku formuláře a divu (toho s id calc). Za to přidej odkazy na svůj web a počítadlo. Zůstaly ti tam koncové značky tabulek a několikrát </body>, obojí vyhoď. </body></html> se píše až na konec dokumentu. Maximálně jednou.
- Značky <br> mezi tlačítky jsou při využití CSS už přebytečné.

Náměty na zlepšení:
- Můžeš zvážit, zda tlačítkům nepřidat trošku upravený vzhled při najetí myší pomocí pseudotřídy hover.
- U nás jsou lidé zvyklí na desetinnou čárku, ale JS počítá s desetinnou tečkou. Když budu výpočet zadávat na klávesnici, zapíše se čárka, což způsobí chybný výsledek. Můžeš vyzkoumat, jak zařídit, aby se lidem zobrazovala čárka, ale JS měl přesto k dispozici tečku.
- Při zadávání výpočtu na klávesnici mohu doplnit číslice či symboly i doprostřed zapsaného výpočtu. Při použití tvých tlačítek se další znaky vkládají pouze na konec výpočtu. Kdybys chtěl, můžeš zapátrat, jak zařídit, aby i pomocí těch buttonků šlo vkládat hodnoty i jinam než jen na konec.
- Dlouhá čísla je u nás zvykem nalevo i napravo od desetinné čárky rozdělovat na skupinky po 3 cifrách. Například milion se nepíše 1000000, ale 1 000 000. Naformátovat takto aspoň výsledek by nebylo až tak těžké, jen to chce trochu pátrat.
- Při násobení závorky se občas nepoužívá symbol „krát“, výpočet 2(1+3) je ekvivalentní 2*(1+3). Tento způsob zápisu ti však JS nespočítá. Dohledáš, jak zařídit, aby také prošel?
noko
Profil
Díky za rady
už sem to opravil a vycentroval tu kalkulačku.
ještě je tu jedna důležitá věc,
rád bych věděl jak vidíte kalkulačku vy ve vašem prohlížeči
prosím vás pošlete print screen sem nebo nahrajte obrázek na nějaký server.
Já to vidím v operě 29 takto
http://jakubvejrosta.moxo.cz/screenshots/screen-kalkulacka.html
A já se zatím pokusím dohledat to co psal Jan Kozák
Fisir
Profil
Reaguji na noka:
Já v Microsoft Edge takto.
Marschmallow
Profil
noko:
Na iPadu 2 s iOS 8 to v Chromu vidím takto: img.djpw.cz/oac.jpeg.
noko
Profil
Marschmallow
jasně já mám win 7 takže buttony vypadají jinak než v Ios na mém WP to taky vypadá trochu jinak.
noko
Profil
Tak a další screenshoty?


kalkulačka byla přemístěna na http://kalkulacka.vejrosta.tk
lionel messi
Profil
noko:
Tak a další screenshoty?
Vo FireFoxe 32 vidím web úplne rovnako ako [#10] Fisir, obrázok je preto zbytočný.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0