Pouze tento týden sleva až 80 % na e-learning týkající se JavaScriptu
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 30% výuky zdarma!
Discount week - April - 30

Řešené úlohy k 1.-4. lekci PHP

V minulé lekci, Textové řetězce podruhé a pole v PHP, jsme se naučili zadávat textové řetězce různými způsoby a uvedli jsme si pole.

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ů

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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 ($a = 10 cm; $b = 20 cm) 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

<!DOCTYPE html>
<html lang="cs-cz">
<head>
    <meta charset="utf-8" />
    <title>Obdélník</title>
</head>
<body>
</body>
</html>

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
<!DOCTYPE html>
<html lang="cs-cz">
<head>
    <meta charset="utf-8" />
    <title>Produkty</title>
</head>
<body>
</body>
</html>

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ůň, 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. Zde přikládám skloněná zvířecí znamení, která použijeme ve výpisu: koně, ovce, opice, kohouta, psa, vepře, krysy, bůvola, tygra, zajíce, draka, hada

Ukázka obrazovky programu:

Zvěrokruh
localhost
<!DOCTYPE html>
<html lang="cs-cz">
<head>
    <meta charset="utf-8" />
    <title>Zvěrokruh</title>
</head>
<body>
</body>
</html>

V příští lekci, Asociativní pole v PHP a obsluha formulářů, si naprogramujeme svou první formulářovou aplikaci, bude to jednoduchá kalkulačka.


 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 3607x (2.33 kB)

 

Předchozí článek
Textové řetězce podruhé a pole v PHP
Všechny články v sekci
Základní konstrukce jazyka PHP
Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
39 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 13 let. Má rád Nirvanu, sushi a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity (15)

 

 

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

Avatar
Lukáš Vavřík:4.11.2020 13:19

Přemýšlel jsem nad tím pěkně dlouho :D ale aspoň jsem pořádně pochopil jak funguje pole a jak funguje php. Nedošlo mi prvně, že si rok převede na číslo a od toho musím odečíst index pole, abych se dostal na začátek pole. Nakonec to bylo úplně jednoduché

$rok = array('vepře', 'krysy', 'bůvola','tygra', 'zajíce', 'draka', 'hada', 'koně', 'ovce', 'opice', 'kohouta', 'psa');
$datum = date("y");
$rokslovy = $rok[$datum -20];
echo('Je rok ' . $rokslovy);
 
Odpovědět
4.11.2020 13:19
Avatar
martin.remen
Člen
Avatar
martin.remen:10.12.2020 14:07
$rok = array('koně', 'ovce', 'opice', 'kohouta', 'psa', 'vepře', 'krysy', 'bůvola', 'tygra', 'zajíce', 'draka', 'hada');
$aktualniRok = date('y');
$rokCelkem = $rok[$aktualniRok-18];
echo 'Je rok ' . $rokCelkem;
 
Odpovědět
10.12.2020 14:07
Avatar
Adam Šlajs
Člen
Avatar
Adam Šlajs:3. ledna 0:29
$a = 10;
$b = 20;
$obsah = $a * $b ;
$obvod = $a * 2 + $b * 2 ;
echo('Obdélník se stranami o délkách' $a'cm a' $b'cm má' $obsah'cm<sup>2</sup> a' $obvod'cm');

Zdravím samozřejmě my tohle nefunguje, i když my to přijde logický a chybu nevidím ale tak asi tam je. Někdo něco?

 
Odpovědět
3. ledna 0:29
Avatar
Milan Turyna
Redaktor
Avatar
Milan Turyna:3. ledna 16:51

Vzdy kdyz ti neco nejde, nestaci napsat "my to prijde logicky a chybu nevidim", kdyz ti to nefunguje, asi to hazi nejakou odpoved (error, warning, echo,...), je to jako rict: Mam auto, nejezdi, v cem je problem?

Ted k samotnemu problemu, pri otestovani na webu http://phptester.net/ tvuj kod vraci:

FATAL ERROR syntax error, unexpected '$a' (T_VARIABLE) on line number 7

coz je logicke, jelikoz jsi tyto retezce nijak nespojil a pouze je oddelil mezerou coz PHP nepodporuje. Pokud chces vypsat nejakou promennou v textovem retezci musis tyto retezce spojit teckou, viz priklad:

echo('Mam rad zmrzlinu s prichuti: ' . $prichutZmrzliny);

nebo vyuzit tzv. Complex (curly) syntax, kde bude textovy retezec ohraniceny pomoci uvozovek a vyraz (promenna, podminka, funkce...) zavorky {}, viz priklad:

echo("Mam rad zmrzlinu s prichuti: {$prichutZmrzliny}");

https://www.php.net/…s.string.php
https://www.php.net/…s.string.php
https://stackoverflow.com/…897/11568349

Funkcni kod je tedy:

$a = 10;
$b = 20;
$obsah = $a * $b ;
$obvod = $a * 2 + $b * 2 ;
echo('Obdélník se stranami o délkách '.$a.' cm a '.$b.' cm má '.$obsah.' cm <sup>2</sup> a ' .$obvod. ' cm');
 
Odpovědět
3. ledna 16:51
Avatar
Yuriy Tretyachenko:26. února 0:40

Zdlouhave, ale si myslim, ze je to prehledne

$roky=[];
$roky[2015]='koně';
$roky[2016]='ovce';
$roky[2017]='opice';
$roky[]='kohouta';
$roky[]='psa';
$roky[]='vepře';
$roky[]='krysy';
$roky[]='bůvola';
$roky[]='tygra';
$roky[]='zajíce';
$roky[]='draka';
$roky[]='hada';
$nynejsi_rok=date('Y');
echo("Je rok $roky[$nynejsi_rok]");
Editováno 26. února 0:42
 
Odpovědět
26. února 0:40
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Yuriy Tretyachenko
Yuriy Tretyachenko:28. února 6:38

No jo, chybi tam apostrofy

echo("Je rok $roky['$nynejsi_rok']");

vzdycky musis davat bacha na syntaxe

Editováno 28. února 6:38
 
Odpovědět
28. února 6:38
Avatar
Lukáš Vejsada:10. března 14:37
<!DOCTYPE html>
<html lang="cs-cz">
<head>
    <meta charset="utf-8" />
    <title>Obdélník</title>
</head>
<body>
<?php

$a = 10;
$b = 20;

echo('Obdelník se stranami o délkách ' . $a . ' cm a ' . $b . ' cm má obsah ' . $a * $b . '
cm<sup>2</sup> a obvod ' . ($a + $b) * 2 . ' cm.')


?>
</body>
</html>
 
Odpovědět
10. března 14:37
Avatar
Lukáš Vejsada:10. března 14:54

Ahoj druhý úkol:

<!DOCTYPE html>
<html lang="cs-cz">
<head>
    <meta charset="utf-8" />
    <title>Produkty</title>
</head>
<body>
<?php

$array = array(3500, 2800, 1280, 1920, 4320);
$count = array_sum($array) / count($array);
$diff = $count - $array[2];

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

?>
</body>
</html>
 
Odpovědět
10. března 14:54
Avatar
Lukáš Vejsada:10. března 15:03

Ahoj, třetí řešení bez podmínek a za pomoci práce s datem

<!DOCTYPE html>
<html lang="cs-cz">
<head>
    <meta charset="utf-8" />
    <title>Zvěrokruh</title>
</head>
<body>
<?php

    $chineseYearArray = array(2017 => 'koně', 2018 => 'ovce', 2019 => 'opice',
    2020 => 'kohouta', 2021 => 'psa', 2022 => 'vepře', 2023 => 'krysy',
    2024 => 'bůvola', 2025 => 'tygra', 2026 => 'zajíce', 2027 => 'draka', 2028 => 'hada');

    $currentYear = date('Y');

    echo('Je rok ' . $chineseYearArray[$currentYear]);

?>
</body>
</html>
 
Odpovědět
10. března 15:03
Avatar
Jarda
Člen
Avatar
Jarda:14. března 11:30

Ahoj, domnívám se, že ve vzorovém scriptu čínského zvěrokruhu je na řádku 35 chyba. Jestliže pole začíná indexem 0 a rok 2017 je rok opice, tak je třeba odečíst 2015 místo 2014.

 
Odpovědět
14. března 11:30
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 90. Zobrazit vše