Avatar
iqbigbang
Člen
Avatar
iqbigbang:27.10.2015 17:58

Jsem začínající programátor a snažím se vytvořit kalkulačku na počítání s úhly. Zatím vytvářím jen část, která bude převádět úhlové minuty, vteřiny atd.
Poradil by mi prosím někdo, co dělám špatně?

<!DOCTYPE html>
<html>
    <head>
        <title>Kalkulačka úhlů</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <h1>Kalkulačka úhlů</h1>
        <input type="text" id="stupne" size="3" />°
        <input type="text" id="minuty" size="3" />'
        <input type="text" id="vteriny" size="3" />''
        <button id="tlacitko">Převeď!</button>
        <script>
        window.onload = function() {
    var stupne = document.getElementById("stupne");
    var minuty = document.getElementById("minuty");
    var vteriny = document.getElementById("vteriny");
    var tlacitko = document.getElementById("tlacitko");
    function preved() {
        if ((vteriny.value / 60) > 0 )
        {
            var bonusMinuty = vteriny.value / 60;
            var vterinyNove = vteriny.value - (bonusMinuty * 60);
        }
        if ((minuty.value / 60) > 0)
        {
            var bonusStupne = minuty.value / 60;
            var minutyNove = minuty.value + bonusMinuty - (bonusStupne * 60);
        }
        var stupneNove = stupne.value + bonusStupne;
        alert(stupneNove + "° " + minutyNove + "' " + vterinyNove + "''" );
    }
    tlacitko.onclick = preved();

};
        </script>
    </body>
</html>
Odpovědět 27.10.2015 17:58
Say me, why not?
Avatar
David Hynek
Redaktor
Avatar
David Hynek:27.10.2015 21:04

jestli se nepletu tak v inputu pracuješ s řetězcem...

takový figl (lze ti i kultivovaněji :)

var stupne = document.getElementById("stupne").value * 1;
var minuty = document.getElementById("minuty").value * 1;
var vteriny = document.getElementById("vteriny").value * 1;
var tlacitko = document.getElementById("tlacitko").value * 1;
Nahoru Odpovědět 27.10.2015 21:04
Čím víc vím, tím víc věcí nevím.
Avatar
David Hynek
Redaktor
Avatar
David Hynek:27.10.2015 21:06

a ještě:

<button id="tlacitko" onclick="preved();">Převeď!</button>
Nahoru Odpovědět 27.10.2015 21:06
Čím víc vím, tím víc věcí nevím.
Avatar
David Hynek
Redaktor
Avatar
David Hynek:27.10.2015 21:22

Koukám, že celé to máš dost zmatené,co takhle:

<!DOCTYPE html>
<html>
    <head>
        <title>Kalkulačka úhlů</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <h1>Kalkulačka úhlů</h1>
        <input type="text" id="stupne" size="3" />°
        <input type="text" id="minuty" size="3" />'
        <input type="text" id="vteriny" size="3" />''
        <button id="tlacitko" onclick="preved();">Převeď!</button>
        <script>

    function preved() {
        var stupne = document.getElementById("stupne").value *1;
        var minuty = document.getElementById("minuty").value *1;
        var vteriny = document.getElementById("vteriny").value *1;
        x = vteriny + (minuty * 60) + (stupne * 60 *60);
        novestupne = Math.floor(x / (60 * 60));
        noveminuty = Math.floor((x - (novestupne * 60 * 60)) / 60);
        novevteriny = x - (novestupne * 60 * 60) - (noveminuty * 60);
        alert(novestupne + "° " + noveminuty + "' " + novevteriny + "''" );
    }

      </script>
    </body>
</html>
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 27.10.2015 21:22
Čím víc vím, tím víc věcí nevím.
Avatar
iqbigbang
Člen
Avatar
iqbigbang:2.11.2015 18:04

Děkuji za pomoc, trochu jsem se do toho zamotal.

Nahoru Odpovědět 2.11.2015 18:04
Say me, why not?
Avatar
iqbigbang
Člen
Avatar
iqbigbang:2.11.2015 19:18

Ještě jsem se chtěl zeptat, jak mám udělat tlačítko "Vynulovat", které by vymazalo všechny textové inputy a jak udělat, aby se výsledek zobrazil pod zadání příkladu. Když dám totiž na konec "document.write()", tak mi to vymaže všechen obsah a zobrazí jen výsledek.

Nahoru Odpovědět 2.11.2015 19:18
Say me, why not?
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na iqbigbang
David Hynek:3.11.2015 20:55

to už ta funkce dělá... potvora :)

upravil jsem předchozí...

<!DOCTYPE html>
<html>
    <head>
        <title>Kalkulačka úhlů</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <h1>Kalkulačka úhlů</h1>
        <input type="text" id="stupne" size="3" value="0" />°
        <input type="text" id="minuty" size="3" value="0" />'
        <input type="text" id="vteriny" size="3" value="0" />''
        <button id="tlacitko" onclick="preved();">Převeď!</button> <button onclick="nuluj();">Reset!</button>
        <p id="vysledek"></p>
        <script>

    function preved() {
        var stupne = document.getElementById("stupne").value *1;
        var minuty = document.getElementById("minuty").value *1;
        var vteriny = document.getElementById("vteriny").value *1;
        x = vteriny + (minuty * 60) + (stupne * 60 *60);
        novestupne = Math.floor(x / (60 * 60));
        noveminuty = Math.floor((x - (novestupne * 60 * 60)) / 60);
        novevteriny = x - (novestupne * 60 * 60) - (noveminuty * 60);
        document.getElementById("vysledek").innerHTML = "Výsledek: "+novestupne + "° " + noveminuty + "' " + novevteriny + "''" ;
    }

    function nuluj() {
        document.getElementById("stupne").value = "0";
        document.getElementById("minuty").value = "0";
        document.getElementById("vteriny").value = "0";
        document.getElementById("vysledek").innerHTML = "" ;
    }

      </script>
    </body>
</html>
Nahoru Odpovědět 3.11.2015 20:55
Čím víc vím, tím víc věcí nevím.
Avatar
iqbigbang
Člen
Avatar
iqbigbang:4.11.2015 21:04

O funkci innerHTML jsem četl už v javascriptovém tutoriálu tady na itnetwork.cz, ale nenašel jsem vysvětlení toho, jak se používá.

Nahoru Odpovědět 4.11.2015 21:04
Say me, why not?
Avatar
iqbigbang
Člen
Avatar
iqbigbang:5.11.2015 7:26

Ještě jednu věc bych potřeboval vědět, jak se v html dělá takové to tlačítko, jak když se na něj klikne, tak se rozvine na více možností, že kterých si můžete vybrat a jak se z tohoto tlačítka získávají data?

Nahoru Odpovědět 5.11.2015 7:26
Say me, why not?
Avatar
Jurajs
Člen
Avatar
Odpovídá na iqbigbang
Jurajs:5.11.2015 9:46
<select>
<option></option>
<option></option>
<option></option>
</select>
 
Nahoru Odpovědět 5.11.2015 9:46
Avatar
iqbigbang
Člen
Avatar
iqbigbang:5.11.2015 14:38

Jo. UZ jsem se o tom dočetl na W3Schools.

Nahoru Odpovědět 5.11.2015 14:38
Say me, why not?
Avatar
iqbigbang
Člen
Avatar
iqbigbang:10.1.2016 15:32

Tak jsem trochu pokročil, ale nepochopil jsem, jak to je v javascriptu se zapouzdřením (jak v js fungují privátní proměnné), dědičností a polymorfismem. Ze zdejších článků jsem to nevyčetl.

Nahoru Odpovědět 10.1.2016 15:32
Say me, why not?
Avatar
Odpovídá na iqbigbang
Michal Žůrek (misaz):10.1.2016 16:20
function Clovek {
        var privatniPromenna = "abc";
        this.publicPromenna = "bcd";

        var privatniMetoda = function () {
                // ...
        }

        this.verejnaMetoda = function () {
                // ...
        }
}
Clovek.prototype.verejnaMetodaLepsi = function () {
        // ...
}

tak by to mohlo fungovat, nezkoušel jsem to. Typescript to řeší tak, že je všechno veřejné, ale akorát ti to nenašeptává. Zvykl jsem si na to a nemám problém s tím, že je všechno veřejné.

Nahoru Odpovědět 10.1.2016 16:20
Nesnáším {}, proto se jim vyhýbám.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.