Škôlka jazyka C

Fórum o programovaní v jazyku C založené 3. januára 2012

Aktuálny čas je 25 Apr 2024, 01:01

Všetky časy sú v GMT + 1 hodina




Vytvoriť novú tému Odpovedať na tému  [ Príspevok: 1 ] 
Autor Správa
 Predmet príspevku: 3. lekcia JS - podmienky
PoslaťNapísal: 17 Aug 2016, 13:18 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 458
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
Podmienky v JS sú podobné ako v céčku a na to, aby sme ich mohli aj testovať sa najprv naučíme používať dátum a čas v JS.

Vytvorme si html súbor: podmienky.html
Kód:

<!DOCTYPE html>

<html lang="sk">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/podmienky.js"></script>
<title>Podmienky v JS</title>
</head>
<body>
<p id="vypis" class="modry"></p>
</body>
</html>
[/code]
Asi ste si všimli, že sú tam používané súbory: style.css – to už poznáme, podmienky.js – to je náš pracovný script, ale je tam aj jquery.js. Čo to je a na čo?
Je to najpoužívanejšia knižnica JavaScriptu, ktorá veľmi uľahčuje kódovanie.

Napríklad namiesto kódu z 1. lekcie:
Kód:
window.onload = function() {
  var text = "Text, ktorý chceme vložiť do odstavca.";
  document.getElementById("vykresli").innerHTML = text;
}

napíšeme:
Kód:
$(function() {
    var text = "Text, ktorý chceme vložiť do odstavca.";
    $('#vykresli').text(text);
});


Vysvetlím čo to robí.
Kód:
$(function() {});

robí to isté ako
Kód:
window.onload = function() {}

teda spustí script až po načítaní stránky.
Kód:
$('#vykresli').text(text);

robí to isté ako
Kód:
document.getElementById("vykresli").innerHTML = text;

teda do elementu s id=“vykresli“ vloží stanovaný text.

Však pekné? ;)

Teraz sa už môžeme venovať dátumu a času.
Vytvoríme premennú, ktorú naplníme údajmi o aktuálnom dátume a čase.
Použijeme na to objekt Date().
Kód:
var d = new Date();

Vypíšeme:
Kód:
/** podmienky.js **/
$(function() {
    var d = new Date();
    /* pretože Date() nie je vyslovene textový reťazec a nevypísal by sa, treba ho previesť na string */
    $('#vypis').text(d.toString());
});


výsledok:
Kód:
Wed Aug 17 2016 10:24:54 GMT+0200 (Central Europe Daylight Time)


Veľa údajov že? Takže si ich potrebujeme rozdrobiť.
Objekt Date() má niekoľko metód a tie si predstavíme.
• getDate() - vráti číslo dňa v měsíci, 1 je prvého
• getMonth() - vráti číslo mesiaca v roku, január je 0, takže je nutné pripočítať 1
• getFullYear() - vráti aktuálny rok ako 4 číslice
• getHours() - vráti hodiny
• getMinutes() - vráti minúty
• getSeconds() - vráti sekundy
• getTime() - táto metóda vracia počet milisekúnd od 1.1.1970, tento formát sa v informatike často používa (tzv. UNIX TimeStamp)
• getDay() - vráti číslo dňa v týždni, 0 je nedeľa

Upravíme pracovný script.
Kód:
/** podmienky.js **/
$(function() {
    var d = new Date();
    var den = d.getDate();
    var mesiac = d.getMonth();
    var rok = d.getFullYear();
    var hod = d.getHours();
    var min = d.getMinutes();
    var sek = d.getSeconds();
    var msOd1970 = d.getTime();
    $('#vypis').text(den +'.'+ mesiac +'.'+ rok +' '+ hod  +':'+ min +':'+ sek +' od 1.1.1970 prešlo '+ msOd1970  +' milisekúnd');
});

Výpis:
Kód:
17.7.2016 10:56:10 od 1.1.1970 prešlo 1471424170245 milisekúnd


Fajn. Konečne môžeme prejsť k podmienkam.
if
if – else
if – else if – else
Platí to isté ako v céčku.
Príklad:
Kód:
    var d = new Date();
    if (d.getHours() >= 18)
        $('#vypis').text("Je po šiestej večer.");

Samozrejme, že to niečo vypíše až keď bude 18:00 hod. a viac, až do polnoci.

Podmienky sa dajú spájať ako v céčku za pomoci operátorov && alebo ||.
Kód:
    if ((d.getHours() > 5) && (d.getHours() < 18))
        $('#vypis').text("Dobrý deň");
    else
        $('#vypis').text("Dobrý večer.");


Môžeme sa s tým trochu pohrať.
Kód:
    var d = new Date();
    var hod = d.getHours();
    if ((hod >= 5) && (hod <= 9))
        $('#vypis').text("Dobré ráno");
    else if ((hod >= 10) && (hod <= 11))
        $('#vypis').text("Dobré dopoludnie");
    else if (hod == 12)
        $('#vypis').text("Dobré poludnie");
    else if ((hod >= 13) && (hod <= 17))
        $('#vypis').text("Dobré popoludnie");
    else if ((hod >= 18) && (hod <= 21))
        $('#vypis').text("Dobrý večer");
    else
        $('#vypis').text("Dobrú noc");

Tieto isté podmienky sa dajú zapísať aj za pomoci terárneho operátora napríklad takto:
Kód:
    var vysledok = (hod >= 5) && (hod <= 9) ? "Dobré ráno" :
                   (hod >= 10) && (hod <= 11) ? "Dobré dopoludnie" :
                   hod == 12 ? "Dobré poludnie" :
                   (hod >= 13) && (hod <= 17) ? "Dobré popoludnie" :
                   (hod >= 18) && (hod <= 21) ? "Dobrý večer" : "Dobrú noc";
    $('#vypis').text(vysledok);


Samozrejme sa dá na podmienky použiť aj switch, napríklad takto:
Kód:
    var hodnota = 2;
    var slovami;
    switch (hodnota)
    {
            case 1:
                    slovami = "jedna";
                    break;
            case 2:
                    slovami = "dva";
                    break;
            case 3:
                    slovami = "ttrii";
                    break;
            default:
                    slovami = "neviem";
    }
    $('#vypis').text(slovami);

ale ten sa používa málo.

Fajn, podmienky sme si prešli.
Skúsme ale reagovať na vstup od užívateľa.
Jednoduchý spôsob je použiť funkciu prompt(), ktorá má má dva vstupné parametre a to:
Otázka v tele funkcie a odpoveď, ktorú zadá užívateľ.
Príklad:
Kód:
    var vek = prompt("Zadaj svoj vek");
    $('#vypis').text((vek >= 18) ? "Si plnoletý" : "Nie si plnoletý");


To je pre dnes všetko. Nabudúce budeme hovoriť o cykloch.

_________________
kódy píšem na platforme: linux Ubuntu 12.04 (Geany, Code::Blocks), WinXP (Code::Blocks, PsPad editor),
Skype: libcokamo, ICQ: 56312279
Ak treba, napíš mi na libcosenior@gmail.com. To mám v mobile a stále po ruke.


Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
Zobraziť príspevky z predchádzajúceho:  Zoradiť podľa  
Vytvoriť novú tému Odpovedať na tému  [ Príspevok: 1 ] 

Všetky časy sú v GMT + 1 hodina


Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 0 hostia


Rýchla úprava:
Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre
Nemôžete zasielať súbory v tomto fóre

Hľadať:
Skočiť na:  
cron
Powered by phpBB® Forum Software © phpBB Group

Hosted by FreeSpace SK