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

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

Unicorn College ONEbit hosting 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.

Ohlasy studentů

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 1878x (2.32 kB)

 

 

Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
15 hlasů
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.
Aktivity (4)

 

 

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

Avatar
mayo505
Redaktor
Avatar
mayo505:16.4.2016 17:28

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š:16.4.2016 17:30

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áč:19.4.2016 20:44

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:19.4.2016 23:34

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:5. února 11:52

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:5. února 12:12

Č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:17. února 22:16

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:22. února 20:38

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
Avatar
Tomáš Střecha:4. března 14:04

Ahoj,

nemáš tam chybu? :) V článku máš napsáno "Ta jsou: krysa, buvol, tygr, zajíc, drak, had, kůň, koza, ovce, opice, kohout, pes a vepř." a v řešení je "$znameni = array('koně', 'kozy', 'ovce', 'opice', 'kohouta', 'psa', 'vepře',
'krysy', 'bůvola', 'tygra', 'zajíce', 'draka', 'hada');" Máš buď v řešení nebo v zadání špatně zapsány "zvířata". :) David Čápka Omlouvám se, pokud se pletu ;)

 
Odpovědět 4. března 14:04
Avatar
Odpovídá na Martin Bušek
Michal Martinec:10. března 21:01

Mas chybu uplne niekde inde. V zadani sa pise, ze spocitaj odchylku 3. produktu. 3. produkt ma ale index [2] a nie [3], ako to mas ty. Zacinas pocitat vzdy od [0] a nie od [1]. - ok nic uz som si vsimol tvoj kod. Nic som nepovedal... :)

Editováno 10. března 21:03
Odpovědět 10. března 21:01
Neporovnavaj sa s ostatnymi. Porovnavaj sa sam so sebou.
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 35. Zobrazit vše