Diskuze: Cykly + funkce (příklady)
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Chceš vypracovat domácí úkol, nebo navést na jeho řešení?
Obsah trojúhelníku za pomoci jeho stran se spočítá Heronovým
vzorem
Pro operace jako mocnění se používá třída Math. Libovolnou odmocninu
spočítáš jako 1/n mocninu, takže x^(1/n)=n-tá odmocnina z x
Nebudeme tu za tebe řešit celý úkol, to je strašně kontraproduktivní, to
bys potom přišel znovu a nic se nenaučil. Ale pomůžeme ti, když budeš
spolupracovat 
Takže čemu přesně nerozumíš?
Jop takze navazu na Petra,
https://www.itnetwork.cz/…ial-podminky
https://www.itnetwork.cz/…ly-for-while
tohle si projdi, nezabere ti to prilis casu a najdes tam odpoved na par veci,
ktere ti asi nejsou jasne.
Ohledne faktorialu, tvoje zadani nejspis bude ocekavat, ze prijdes s rekurzivnim resenim, asi to tak bude nejlepsi, nakolik Strilingova aproximace, je jen aproximace http://www.rapidtables.com/…actorial.htm
ono nejspis se ocekava, ze si i tu mocninu napises vlastnim cyklem, ale to jen hadam, tvemu uciteli do hlavy nevidim.
pozn. řešíme přes PM, potom sem hodím výplod
řešení:
//===========funkce===========
//faktoriál
var faktorial=function(cislo)
{
if(cislo==0)
{
return 1;
}
else if(cislo<0)
{
return "nelze";
}
else
{
var fakt=1;
for(var i=1;i<=cislo;i++)
{
fakt*=i;
}
return fakt;
}
}
//obsah trojúhelníku
var obsah=function(a,b,c)
{
//Heronův vzorec
var s=(a+b+c)/2;
return Math.sqrt(s*(s-a)*(s-b)*(s-c));
}
//BMI
var BMI=function(vaha,vyska)
{
return vaha/vyska**2;
}
//BMI klasifikace
var bmiKlas = function(BMI)
{
//funguje korektně
if (BMI <= 16.5)
{
return("Koukej přibrat! Těžká podvýživa");
}
else if (BMI <= 18.5)
{
return("Podváha");
}
else if (BMI <= 25)
{
return("Supr čupr váha");
}
else if (BMI <= 30)
{
return("Nadváha");
}
else if (BMI <= 35)
{
return("Koukej zhubnout!");
}
else if (BMI <= 40)
{
return("Obezita II. stupně");
}
else
{
return("Obezita III. stupně");
}
}
//Far na Cel
var farNaCel=function(f)
{
return (f-32)*(5/9);
}
//===========příklady===========
//1
{
for (var n=1;n<=6;n++)
{
document.write("<h" + n + ">Nadpis "+n+"</h" + n + ">");
}
}
//2
{
var cislo=15;
document.write(faktorial(cislo));
}
//3
{
var cislo = 2;
var pocet = 7;
for(var i=0;i<=pocet;i++)
{
document.write((cislo**i)+"<br>");
}
}
//4
{
var pocet=6;
for(var i=1;i<=pocet;i++)
{
document.write(i+"<sup>2</sup> = "+ (i**2)+"<br>");
}
}
Pekny,
je to malicko offtopic, ale zase ne tolik, abych ti psal soukromou zpravu.
Faktorial iterativne je cool. Rad bych ale zminil, ze snad uz bry bude v JS implementovana tail call optimalizace, ktera umozni spravne napsanou rekurzi zplostit do naprosto plocheho volani. Je mozne, ze to ty vis, ale treba to bude pro nekoho dalsiho jako zajimavost.
Poznamka jeste k faktorialu, chapu, ze mozna pro jednoduchost, ale ja bych to
stejne neudelal - vracet z funkce numeric nebo string. Neni to dobra praktika a
prave proto bych zacatecnikovi vubec neukazoval, ze se to da delat, mozna bych
mu spis rekl, ze by to delat nemel, jak nejsem fanda exceptions, tady bych si
dovolil pro jednoduchost thrownout.
var fakt; taky neni spravne tam kde je, kvuli hostingu se promenna inicializuje
hned nahore, takze technicky vzato mas hned na prvnim radku var fakt; a pak fakt
= neco... to bych taky nedelal, bud bych dodrzel takovy to stary Ceckovy
deklarace jen nahore, nebo bych pouzil let.
Ted tu hlavni otazku ze zvedavosti: proc delas var nazev = function(){}, kdybys to delal takhle:
const doStuff = arg => arg * 2;
tak to pochopim, ale takhle s varem a s funkci, fakt nevim proc to delas a jsem zvedavej.
Dodatek: asi budu pusobit trochu jako rejpal, ale myslim to dobre. Samozrejme si uvedomuju, ze je jednodussi pockat az nekdo jinej zpracuje odpoved a jen se k ni vyjadrit. Ale myslim, ze to k necemu muze byt i dobre.
Já tě chápu a mnoho z toho bych udělal, jak navrhuješ. Nicméně se
ukázalo, že to je člověk, co naprosto netuší, dokonce ani syntaxi, tak
jsem to udělal tak, jak je to IMHO nejstravitelnější a nejjednodušší.
K hlavní otázce ti dám neuspokojující odpověď. Poslal mi už nějaké
kódy, co očividně spíš našel na netu a ve všech to bylo tak. Vzhledem k
tomu, že výsledek je prakticky stejný jako normální
function pretendStuff(), neměl jsem důvod to měnit a "dodržoval
konvence". Je to sice "divné", ale není to chyba... 
A asi je jasné proč na něj nechci vybafnout s lamdami a vyjímkami 
Jojo výsledek je stejný afaik. Nakonec chápu tvoje pohnutky. Já jsem měl
vyloženě to štěstí, že když už jsem někoho učil tady přes SZ něco
složitějšího, byli kluci ochotní jít zdlouhavou cestou a nechat si
vysvětlit detaily, ale hlavně měli už dobré základy, tímto je zdravím

Zobrazeno 10 zpráv z 10.