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
Petr Vocel
Tvůrce
Avatar
Odpovídá na Adam Šlajs
Petr Vocel:7.5.2021 18:31

u apostrofu proměné s textem spojuješ tečkou. Ve verzi uvozovek to php rozpozná.

 
Odpovědět
7.5.2021 18:31
Avatar
Petr Vocel
Tvůrce
Avatar
Petr Vocel:7.5.2021 18:39

Proč ?

$znameni=["opice", "kohouta", "psa", "vepře", "krysy", "bůvola", "tygra", "zajíce", "draka", "hada","koně", "ovce"];
$rok=2017;
$i=$rok-2017;
$txt=$znameni[$i];
echo("Je rok $txt");

Projde, ale vyměním li poslední dva řádky za

echo("Je rok $znameni[$i]");

Tak to hlásí chybu ????

 
Odpovědět
7.5.2021 18:39
Avatar
Milan Turyna
Tvůrce
Avatar
Odpovídá na Petr Vocel
Milan Turyna:7.5.2021 20:22

Nebot se snazis vypsat index z pole $znameni primo do textoveho retezce bez toho, abys pouzil operator kterym to spojis. Takto to muzes pouzit pri vypisu pouhe promenne, ovsem pro slozitejsi zapisy (napr. $v->xxx, $v[]) to nefunguje.

Aby ti to fungovalo, musel bys to napsat takto:

echo("Je rok " . $znameni[$i]);

pripadne pouzit jinou metodu pro vklad promenne do textoveho retezce, viz. treba Complex Curly Syntax

echo("Je rok {$znameni[$i]}");

https://www.php.net/…s.string.php#…

Odpovědět
7.5.2021 20:22
Řeš pouze to, co dokážeš ovlivnit.
Avatar
Petr Vocel
Tvůrce
Avatar
Odpovídá na Milan Turyna
Petr Vocel:8.5.2021 6:53

Napřed bych ti rád řekl, že máš můj obdiv, že ve svém věku již toho tolik víš. Mě je 71 a programuji již 45 let. Řešení znám. Šlo o to, aby se v kurzu pro začátečníky zdůraznilo, že do řetězce textu, lze vložit pouze odkaz na proměnou (v tomto případě její jméno) a ne vyraz. Jinak interpret PHP, který automaticky provede pouze spojení řetězů a ne vyhodnocování výrazu, když narazí na část vypadající jako název proměnné, to nevyhodnotí správně a mohou vzniknou buď nečekané kombinace textů nebo syntaktické chyby.
Jinak dík za reakci.

 
Odpovědět
8.5.2021 6:53
Avatar
Dušan Kovářík:16.6.2021 9:25

Tak tohle bylo opravdu jednoduché. Jde se dál!

 
Odpovědět
16.6.2021 9:25
Avatar
Jonáš Mára:8.8.2021 10:20

Zdravím přikládámkdyžtak své scripty. Po kontrole mi přišlo že jsou občas trochu jiné a přesto správné. I když vím že to je samozřejmě easy. Dnes jsem začal.

$a = 10;
$b = 20;
$obsah = $a * $b;
$obvod = 2*$a + 2*$b;

echo('Obdélník se stranami o délkách ' . $a . ' cm a ' . $b . ' cm má obsah ' . $obsah . ' cm<sup>2</sup> a obvod ' . $obvod . ' cm.'); // toto je script pro tu prní úlohu
echo("<br>");echo("<br>");

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

echo('Třetí produkt se od průměrné ceny odlišuje o ' . abs($odchylkaceny) . ' Kč.'); // toto je script pro tu druhou úlohu
echo("<br>");echo("<br>");

$rokyzklonene = array('koně', 'oce', 'opice', 'kohouta', 'psa', 'vepře', 'krysy', 'bůvola', 'tygra', 'zajíce', 'draka', 'hada');
$letosnirok = date('Y');
$dvanact = $letosnirok - 2015;

echo('Je rok ' . $rokyzklonene[$dvanact]); // toto je scripto pro třetí úlohu
 
Odpovědět
8.8.2021 10:20
Avatar
Dušan Fajnor:16.12.2021 16:07
<?php

        //================================
        //=======JEDNODUCHý PRíKLAD=======
        //================================

    $a = 10;
    $b = 20;

    $obvod = 2 * ($a + $b);
    $obsah = $a * $b;

    echo "Obdélník se stranami o délkách 10 cm a 20 cm má obsah $obsah cm<sup>2</sup> a obvod $obvod cm.";

?>

<?php

        //=======================================
        //=======STREDNE POKROČILÍ PRíKLAD=======
        //=======================================

    $product[0] = 3500;
    $product[1] = 2800;
    $product[2] = 1280;
    $product[3] = 1920;
    $product[4] = 4320;

    $priemer = array_sum($product) / count($product);
    $odchylka = $priemer - $product[2];

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

?>

<?php

        //===============================
        //=======POKROČILÍ PRíKLAD=======
        //===============================

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

        $rok = date('Y');

        echo ('Je rok ' . $rok_zvierata[$rok]);


?>
Odpovědět
16.12.2021 16:07
Od Leta 2018 Vediem osobný, finačný, odborný, knižný a herný Know-How Rast a Sebarozvoj
Avatar
Klara Bobková:25.1.2022 15:59

Tak já nevím, co dělám blbě...
Dopočítala jsem se, že by to mělo házet pro rok 2022 buvola.

$cinsky_rok = ['ovce', 'opice', 'kohouta', 'psa', 'vepře', 'krysy', 'bůvola', 'tygra', 'zajíce', 'draka', 'hada', 'koně'];
$letos = date('Y');
$cislo_roku = $letos - 2016;

echo ('Letos je rok ' . $cinsky_rok[$cis­lo_roku ]. '.');

Když jsem to zkonfrontovala s řešením, tak tam mi to háže tygra.
Je fakt, že občas mám problém i s dva a dva 🤦

 
Odpovědět
25.1.2022 15:59
Avatar
Monika Salajková:20.2.2022 14:34

Taková pěkná logická věc to PHP. :)

 
Odpovědět
20.2.2022 14:34
Avatar
Martin Novak
Člen
Avatar
Martin Novak:22.7.2022 22:09

no tak nevím, jaké jsou podmínky pro odeslání scriptu k otestování - nejpve mě napadlo, že jsem použil v prvním příkladu (obsah a obvod čtverce) své vlastní proměnné stranaA a stranaB.. ale i když jsem to opravil na $a a $b, tak to stejně neprošlo.. nicméně v browseru mi to funguje, že je script dobře napsaný

<?php

$a = 10;
$b = 20;
$obvod = 2 * ($a + $b);
$obsah = $a + $b;


echo("Obdélník se stranami o délkách " . $a . " cm a" . $b . " cm má obsah " . $obsah . " cm2 a obvod " .
        $obvod . " cm.");

?>
 
Odpovědět
22.7.2022 22:09
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.