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

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

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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:

Obdélník
localhost

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:

Produkty
localhost

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 2017 je rok opice, 2018 je tedy kohouta 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:

Zvěrokruh
localhost

 

Stáhnout

Staženo 1737x (2.32 kB)

 

  Aktivity (3)

Č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 (13 hlasů) :
55555


 



 

 

Komentáře
Zobrazit starší komentáře (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.4.2016 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.4.2016 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.4.2016 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.4.2016 17:31
 
Odpovědět  +1 16.4.2016 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.4.2016 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.4.2016 23:34
Čím víc vím, tím víc věcí nevím.
Avatar
Martin Bušek:

Zajímá mě proč tvůj výsledek u cvičení produkty.php je 1484?
Pokud to napíši po svém

$cena =  array ('1' => 3500,
                '2' => 2800,
                '3' => 1280,
                '4' => 1920,
                '5' => 4300,
                 ) ;
$prumer = array_sum($cena) / count($cena);
$rozdil = $prumer - $cena[3];

echo('Třetí produkt se od průměrné ceny odlišuje o ' . $rozdil . ' Kč.');
?>

Vyjde mi výsledek 1480, což si myslím že je dobře. Stejný výsledek mi vrátila i kalkulačka když jsem to počítal zpětně.

Jelikož se moje a tvoje řešení diametrálně neliší, zajímá mě proč ti ve výsledku vychází o 4 více než mě.

Editováno 5. února 11:54
 
Odpovědět 5. února 11:52
Avatar
Martin Bušek:

Čau, u příkladu znamení.php jsem došel na obdobné řešení jako ty.
Spíš mě napadlo co je z 2 ukázek praktičtější?

$mesice = array(*vypsané mesíce*);
$rok = date('Y');
$rok_slovem = $mesice[$rok-($rok-1)];
echo('Rok '. $rok . ', je rokem ' . $rok_slovem . '.');

Nebo

$mesice = array(*vypsané mesíce*);
$rok = date('Y');
$rok_slovem = $rok - ($rok-1);
echo('Rok '. $rok . ', je rokem ' . $mesice[$rok_slovem] . '.');

Má ten postup výpočtu nějakou analogii nebo je to ve výsledku jedno jak si to udělám?

 
Odpovědět 5. února 12:12
Avatar
Odpovídá na Martin Bušek
Tomáš Valenta:

Máš chybu pouze v zápisu pole. Poslední index je číslo 4320 a ne 4300, potom to budeš mít stejné :)

 
Odpovědět 17. února 22:16
Avatar
Tran Viet Anh:

Jenom technicka – v prikladu s cinskym kalendarem je zbytecna ovce/koza. Staci jenom jedna z nich, jinak je tech zvirat 13 a ne 12 ;)

 
Odpovědět 22. února 20:38
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 33. Zobrazit vše