Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – Riešené úlohy k 1.-4. lekciu PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Brokada
Člen
Avatar
Brokada:30.12.2015 21:26

První dva v pohodě, poslední jsem fakt nedal. No, snad v podobném případě se poučím a chybu už neudělám a zvládnu to. ;)

Avatar
Rasťo Suchovský:23.1.2016 11:11

Nie som znalec čínskeho zverokruhu, ale zasa viem, že má 12 znamení. Tu je uvedených 13. Vygooglil som, a zistil, že ovca tam nepatrí. Resp. ovca a koza sú to isté znamenie, ale väčšinou sa uvádza koza.

Práve idem tú úlohu, teda cvičenie 3 riešiť. Nemôžem si pomôcť, ale myslím si, že to dám aj bez podmienky a kód dá odpoveď na roky od 1 do 1 000 000. :)
Tak mi držte palce.
Ale asi to bez googlu nepôjde, lebo budem potrebovať zaokrúhľovanie, resp. ešte lepšia by bola operácia modulo... ;)
Ešte by to šlo aj tak, keby som mohol výsledok delenia uložiť do premennej, ktorá vie ukladať len celé čísla, ale to tiež neviem.
Keď niečo zo mňa vyjde, určite sa s kódom podelím. :)
Ale až večer sa na to pozriem. :)
So znalosťami, ktoré som dosiahol v tomto kurze by som to asi nedal.

Avatar
Rasťo Suchovský:24.1.2016 5:36

Včera som bol už zabitý, takže teraz aj bez googlu (veď modulo je aj na kalkulačke '%'):

<?php
        $zvieracieZnamenia = Array("opica", "kohút", "pes", "prasa", "potkan",
            "byvol", "tiger", "zajac", "drak", "had", "kôň", "koza");
        $rok = 2015;
        $znamenie = $rok % 12;
        $znamenie = $zvieracieZnamenia[$znamenie];
        echo("Roku $rok prislúcha znamenie $znamenie podľa čínskeho zverokruhu.");
        ?>

Keďže opica vychádza na rok 0 (matematicky) a modulo dá zvyšok po delení, výsledok operácie modulo je aj indexom príslušného znamenia v poli $zvieracieznamenia.

Avatar
JohnLuther
Člen
Avatar
JohnLuther:20.2.2016 13:19

Teda čo sa týka toho 3 príkladu tak ani ten, čo je od autora na stiahnutie nefunguje...

Avatar
Neaktivní uživatel:16.4.2016 11:59

Dobrý den,

kde jsem udělal chybu?

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        $cinske_znameni_roku = array('krysa', 'buvol', 'tygr', 'zajíc', 'drak', 'had', 'kůň', 'koza', 'opice', 'kohout', 'pes', 'vepř');
        $rok = date('Y');
        $aktualni_cinske_znameni = $cinske_znameni_roku[$rok - 2016];
        echo("Dnešní rok je ve znamení $aktualni_cinske_znameni.");
        ?>
    </body>
</html>
Odpovedať
Neaktivní uživatelský účet
Avatar
mayo505
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
mayo505:16.4.2016 12:11

Ahoj, mohol by si napísať čo je vôbec tá chyba. Nejaká chybová hláška, alebo zlý výsledok?

Ak je zlý výsledok tak máš podľa mňa zle usporiadané pole $cinske_zname­ni_roku. Prvý prvok v tom poli podľa tvojho programu by mal reprezentovať rok 2016. Podľa zadania by to ale mala byť ovca a nie krysa.

Avatar
Odpovedá na mayo505
Neaktivní uživatel:16.4.2016 13:10

Chyba je v tom, že se mi ukazuje znamení „krysa“.

Podle zadání, které jsem našel na internetu, by to měla být opice.
Krysa 1900, 1912, 1924, 1936, 1948, 1960, 1972, 1984, 1996, 2008, 2020, 2032, 2044, 2056, 2068, ...
Buvol 1901, 1913, 1925, 1937, 1949, 1961, 1973, 1985, 1997, 2009, 2021, 2033, 2045, 2057, 2069, ...
Tygr 1902, 1914, 1926, 1938, 1950, 1962, 1974, 1986, 1998, 2010, 2022, 2034, 2046, 2058, 2070, ...
Zajíc 1903, 1915, 1927, 1939, 1951, 1963, 1975, 1987, 1999, 2011, 2023, 2035, 2047, 2059, 2071, ...
Drak 1904, 1016, 1928, 1940, 1952, 1964, 1976, 1988, 2000, 2012, 2024, 2036, 2048, 2060, 2072, ...
Had 1905, 1917, 1929, 1941, 1953, 1965, 1977, 1989, 2001, 2013, 2025, 2037, 2049, 2061, 2073, ...
Kůň 1906, 1918, 1930, 1942, 1954, 1966, 1978, 1990, 2002, 2014, 2026, 2038, 2050, 2062, 2074, ...
Koza 1907, 1919, 1931, 1943, 1955, 1967, 1979, 1991, 2003, 2015, 2027, 2039, 2051, 2063, 2075, ...
Opice 1908, 1920, 1932, 1944, 1956, 1968, 1980, 1992, 2004, 2016, 2028, 2040, 2052, 2064, 2076, ...
Kohout 1909, 1921, 1933, 1945, 1957, 1969, 1981, 1993, 2005, 2017, 2029, 2041, 2053, 2065, 2077, ...
Pes 1910, 1922, 1934, 1946, 1958, 1970, 1982, 1994, 2006, 2018, 2030, 2042, 2054, 2066, 2078, ...
Vepř 1911, 1923, 1935, 1947, 1959, 1971, 1983, 1995, 2007, 2019, 2031, 2043, 2055, 2067, 2079, ...

Dobře, tedy takhle.

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        $cinske_znameni_roku = array('opice', 'kohout', 'pes', 'vepř', 'krysa', 'buvol', 'tygr', 'zajíc', 'drak', 'had', 'kůň', 'koza');
        $rok = date('Y');
        $aktualni_cinske_znameni = $cinske_znameni_roku[$rok - 2016];
        echo("Dnešní rok je ve znamení $aktualni_cinske_znameni.");
        ?>
    </body>
</html>

Ale neukazuje to opici jenom kvůli tomu, že je první v seznamu?

Editované
Odpovedať
Neaktivní uživatelský účet
Avatar
mayo505
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
mayo505:16.4.2016 13:34

samozrejme, že ju zobrazuje iba preto, že je prvá v zozname :D Ale aj tá chyba bola práve preto, že krysa bola prvá v zozname. Keď to chceš urobiť pomocou toho zoznamu tak oveľa lepšie sa to ani nedá. Chytrejšie by sa to dalo vyriešiť napríklad s operátorom modulo a to tak, že by si opäť inak usporiadal ten zoznam (a to tak aby začínal znamením, ktoré bolo v roku 0) a v kóde mal

$pocet_znameni = 12;
$aktualni_cinske_znameni = $cinske_znameni_roku[$rok % $pocet_znameni];

A tento kód by ti podporoval aj iné roky, nie len roky 2016-2028

Avatar
Odpovedá na mayo505
Neaktivní uživatel:16.4.2016 13:44

Opět se mi zobrazuje první znamení, kde dělám chybu?

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        $cinske_znameni_roku = array('drak', 'had', 'kůň', 'koza', 'opice', 'kohout', 'pes', 'vepř', 'krysa', 'buvol', 'tygr', 'zajíc');
        $rok = date('Y');
        $pocet_znameni = 12;
        $aktualni_cinske_znameni = $cinske_znameni_roku[$rok % $pocet_znameni];
        echo("Dnešní rok je ve znamení $aktualni_cinske_znameni.");
        ?>
    </body>
</html>
Odpovedať
Neaktivní uživatelský účet
Avatar
mayo505
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
mayo505:16.4.2016 14:07

Lebo 2016 % 12 = 0 ... preto zobrazuje prvý záznam.
Chyba je v tom, že Drak je v roku 2000 a nie v roku 0 (doslova rok nula). Akurát to tak vyšlo, že v roku nula je opica, takže by to poradie malo byť tak ako si ho písal predtým (opica na začiatku).

Je viacej spôsobov ako to urobiť, podstatné je aby si si uvedomil, prečo a ako ktoré veci fungujú.

Opět se mi zobrazuje první znamení, kde dělám chybu?

Napríklad na túto otázku by si si mal vedieť odpovedať aj sám, keď vieš, že $rok = 2016, $pocet_znameni = 12 a teda $rok % $pocet_znameni = 0 a teda chcem prvý prvok

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 114.