NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Řešené úlohy k 1.-5. lekci PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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
+1
4.11.2020 13:19
Avatar
Martin Remeň: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.1.2021 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.1.2021 0:29
Avatar
Milan Turyna
Tvůrce
Avatar
Milan Turyna:3.1.2021 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.1.2021 16:51
Řeš pouze to, co dokážeš ovlivnit.
Avatar
Yuriy Tretyachenko:26.2.2021 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.2.2021 0:42
 
Odpovědět
26.2.2021 0:40
Avatar
Odpovídá na Yuriy Tretyachenko
Yuriy Tretyachenko:28.2.2021 6:38

No jo, chybi tam apostrofy

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

vzdycky musis davat bacha na syntaxe

Editováno 28.2.2021 6:38
 
Odpovědět
28.2.2021 6:38
Avatar
Lukáš Vejsada:10.3.2021 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.3.2021 14:37
Avatar
Lukáš Vejsada:10.3.2021 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.3.2021 14:54
Avatar
Lukáš Vejsada:10.3.2021 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.3.2021 15:03
Avatar
Jarda
Člen
Avatar
Jarda:14.3.2021 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.3.2021 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 114.