POUZE NYNÍ: Získej až 80 % extra kreditů ZDARMA na náš interaktivní e-learning. Zjistit více.
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. 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
Nejnovější komentáře jsou na konci poslední stránky.
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);
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;
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?

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');
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
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
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>
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>
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>
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.

Nejnovější komentáře jsou na konci poslední stránky.
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.