Cvičení k 1.-4. lekci PHP

PHP Základní konstrukce Cvičení k 1.-4. lekci PHP American English version English version

Následující 3 cvičení vám pomohou procvičit znalosti programování v PHP z minulé lekce. Ve vlastním zájmu se je pokuste vyřešit sami. Pod článkem máte pro kontrolu řešení ke stažení. Ale pozor, jakmile se na něj podíváte bez vyřešení příkladů, ztrácí pro vás cvičení smysl a nic se nenaučíte :)

Pokud si opravdu nebudete vědět rady, podívejte se raději znovu do minulého tutoriálu a pokuste se na to přijít.

Jednoduchý příklad

Vytvořte skript, který si založí proměnné $a a $b. Do těchto proměnných vloží délky stran obdélníka (hodnoty si vymyslete) a potom vypíše jeho obvod a obsah. Pomocí spojování řetězců dosáhněte následujícího výstupu:

Cvičení k PHP – Obdélník

Středně pokročilý příklad

Napište skript, který eviduje produkty s následujícími cenami: 3500 Kč, 2800 Kč, 1280 Kč, 1920 Kč, 4320 Kč. Spočítejte odchylku 3. produktu od průměrné ceny. K řešení úlohy využijte pole.

Ukázka obrazovky programu:

Cvičení k PHP – Produkty

Pokročilý příklad

V čínské astrologii je každému roku přiřazeno jedno ze zvířecích znamení. Ta jsou: krysa, buvol, tygr, zajíc, drak, had, kůň, koza, ovce, opice, kohout, pes a vepř. Vytvořte skript, který podle roku, uloženého v proměnné $rok, vypíše znamení pro tento rok. Rok 2014 je rok koně, 2015 je tedy kozy a tak dále. Znamení se cyklí stále dokola, my ovšem ještě neumíme podmínky, tak se musíme spokojit s tím, že naše aplikace bude fungovat jen na 12 let dopředu.

Ukázka obrazovky programu:

Cvičení k PHP – Znamení

 

Stáhnout

Staženo 1548x (2.32 kB)

 

  Aktivity (2)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (10 hlasů) :
55555


 



 

 

Komentáře
Zobrazit starší komentáře (19)

Avatar
mayo505
Redaktor
Avatar
mayo505:

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

 
Odpovědět  +1 16. dubna 14:07
Avatar
Odpovídá na mayo505
Ondřej Jiří Beneš:

Stále tomu moc nerozumím.

<?php
$cinske_znameni_roku = array('opice', 'kohout', 'pes', 'vepř', 'krysa', 'buvol', 'tygr', 'zajíc', 'drak', 'had', 'kůň', 'koza');
$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.");
?>

date('Y') se řídí podle čeho?
A co znamená to procento?

Editováno 16. dubna 14:49
 
Odpovědět 16. dubna 14:48
Avatar
mayo505
Redaktor
Avatar
Odpovídá na Ondřej Jiří Beneš
mayo505:

Prepáč, že ti odpoviem takto, ale ako vraví staré čínske príslove: Dáš človeku rybu nakŕmiš ho na deň, naučíš ho loviť ryby a dáš mu potravu na celý život, naučíš ho používať google a nemusíš ho učiť loviť ryby :D

http://lmgtfy.com/?…
http://lmgtfy.com/?…

Proste nedá sa učiť tak, že niečo neviem a idem sa hneď niekoho pýtať. Hneď tvoja prvá otázka plynula z toho, že si nevedel čo robí ten kód. Ak by si si vyhľadal čo ako funguje, ako napríklad funguje funkcia date, tak by ti bolo jasné prečo to máš chybne.

 
Odpovědět  +2 16. dubna 15:08
Avatar
Odpovídá na mayo505
Ondřej Jiří Beneš:

Jasně chápu.

Takže pokud je x % y:

  • x < y, výsledek bude vždy x.
  • x > y a dělí se na celé číslo, výsledek bude vždy nula.
  • x > y a dělí se na desetinné číslo, výsledek bude vždy poslední zbytek.

Říkám to dobře?

 
Odpovědět 16. dubna 15:23
Avatar
mayo505
Redaktor
Avatar
mayo505:

áno, ale zapísal si to dosť zložite. Je to proste zvyšok po celočíselnom delení, to sa učí hádam už na základnej škole.

 
Odpovědět  +2 16. dubna 15:27
Avatar
Odpovídá na mayo505
Ondřej Jiří Beneš:

Hádáš dobře, samozřejmě.

Pokud bych tedy chtěl zjistit znamení roku 2017.
Tak je to 2017 % 12 se zbytkem 40 a perioda.
Pokud dobře počítám, vychází mi krysa, jak to?

OPICE 0 12 24 36
KOHOUT 1 13 25 37
PES 2 14 26 38
VEPŘ 3 15 27 39
KRYSA 4 16 28 40
BUVOL 5 17 29
TYGR 6 18 30
ZAJÍC 7 19 31
DRAK 8 20 32
HAD 9 21 33
KŮŇ 10 22 34
KOZA 11 23 35

Krysa bude až v roce 2020.

První jsem počítal opici jako jedna, jenže pokud počítám jako zbytek, tak musím začít s nulou.
Kdybych počítal s jedničkou, vyjde mi vepř.

 
Odpovědět 16. dubna 17:08
Avatar
mayo505
Redaktor
Avatar
Odpovídá na Ondřej Jiří Beneš
mayo505:

Tak je to 2017 % 12 se zbytkem 40 a perioda.

Toto mi nedáva žiaden zmysel. Ak robíš X % Y, tak výsledok nemôže byť väčší než Y - 1. Takže zvyšky po delení 12 môžu byť len 0-11.
Konkrétne 2017 % 12 = 1 ... pretože 2017 = 12 * 168 + 1

 
Odpovědět  +1 16. dubna 17:28
Avatar
Odpovídá na mayo505
Ondřej Jiří Beneš:

Ach, takhle, dělal jsem zbytek jinak.

Děkuji mnohokrát za vysvětlení.

Editováno 16. dubna 17:31
 
Odpovědět  +1 16. dubna 17:30
Avatar
Jenda Xenofob Kropáč:

Hezký den, přikládám řešení třetí úlohy.

připadá mi natolik jednoduché, že někde musí být chyba... :D , přestože funguje... :D

Budete-li mít chuť a čas se nad tím kdokoliv pozastavit, uvítám každý poznatek.. Díky :) (Zdroják je v přioženém obrázku)

 
Odpovědět  -1 19. dubna 20:44
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na Jenda Xenofob Kropáč
David Hynek:

Program by měl fungovat bez pravidelného zásahu programátora. Každý rok tedy podle tvého řešení, musíš upravit rok0 a jednou za 12 let pak i rok1? To jsi mohl rovnou napsat

echo "Dnešní rok je ve znamení koně;

a každý rok to znamení přepsat, bylo by to ještě jednodušší :)

Odpovědět  +1 19. dubna 23:34
Čím víc vím, tím víc věcí neví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 10 zpráv z 29. Zobrazit vše