Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 10. diel - Cyklus for v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Jaromír Kohout
DarkCoder:3.3.2024 3:12

Já když začínal, tak mi také hned nebyl jasný výraz x = x + 1. Nesmíš se na to dívat jako na rovnici. Operátor = je operátor přiřazení nikoli operátor pro porovnání dvou stran. Ty ten výraz musíš číst tak, že výsledek pravé strany přiřazuješ do proměnné na levé straně.

double power(double base, int exponent) {
        if (exponent == 0) {
                return 1.0; // Jakákoli mocnina čísla k nultému je 1.
        }
        else if (exponent > 0) {
                double result = 1.0;
                for (int i = 0; i < exponent; i++) {
                        result *= base;
                }
                return result;
        }
        else {
                // Pro záporný exponent použijeme inverzi základu a kladný exponent.
                return 1.0 / power(base, -exponent);
        }
}

Pokud funkci zavoláme s base = 2.0 a exponent 3, tak proběhnou 3 iterace cyklu for.

Jak to bude vypadat s příkazem result *= base; (result = result * base)

Po první iteraci bude result 2.0. (result = 1.0 * 2.0)
Po druhé iteraci bude result 4.0. (result = 2.0 * 2.0)
Po třetí iteraci bude result 8.0. (result = 4.0 * 2.0)

Tedy proměnná result se v každé iteraci aktualizuje, její nová hodnota bude její předcházející hodnota * base.

A to je celé, není to nic komplikovaného. Ještě jednou připomínám, nehleď na to jako na rovnici. ale na to, že modifikuješ levou stranu. Po pár příkladech Ti to bude jasnější.

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Lucie Hrdličková:17.5.2024 21:18

Začínám se zasekávat. Vůbec nezvládám ta matematická kódování.

Avatar
Lucie Bakešová:20.6.2024 18:49

Dobře vysvětleno, jen ty matematické výrazy a činnosti jsou pro mne oříšek.

Avatar
Lucie Wimmerová:14.7.2024 11:32

Nelze označit jako absolvovanou.

Avatar
Marcela Flanderková:17.9.2024 18:41

zpracovala jsem si na NB podle zadání k pokročilému příkladu k "Řešení úloy k 9.-10. lekci a dala si kontrolu. Vypsalo mi výsledek, který se shoduje s "Ukázkou obrazovky programu", ale po zkopírování a vložení do webu, tak mi to vypíše chyby. Mám PrintScreen zápisu i výsledku na mém PC, ale nemám ho kam nahrát, aby se na to někdo mohl podívat (viz. příloha), nebo mohu to někomu dát ke kontrole, protože už nevím, v čem je chyba nebo co mám změnit. Děkuji za zprávu. Marcela Flanderková

Avatar
Atrament
Člen
Avatar
Odpovedá na Marcela Flanderková
Atrament:18.9.2024 5:18

Máš tam chybu u čtyř láhví.

Avatar
Mgr. art. Jaroslav Kysel:25.11.2024 14:02

Pfuuu naozaj je brutálne ťažké rozmýšľať, ako cpu. :-(

Odpovedať
Tak ako sa správaš a ako konáš, taký svet vytváraš.
Avatar
Patrik Košáň:10.12.2024 13:41

Ukážku zacyklenia mi neišlo vyskúšať, tak sa mi to nedalo pozrieť a vyskúšať, ale inak všetko ostatné šlo perfektne

Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:22. apríla 10:22

Konečně dobré procvičování a hezky vysvětleno. Ačkoliv cyklus for je spíše specifikací while cyklu, takže osobně obracím pořadí, ale to je v konečném důsledku jedno.
Nicméně výhradu bych měl k tomu, že se tu opět objevují z ničeho nic pojmy, které nebyly vysvětleny:

  • inkrementace
  • iterace

Inkrementace nebyla nijak spojena se syntaxí ++. Navíc nebylo vysvětleno, že inkrementování pomocí ++ znamená vlastně x = x+1. Bylo to řečeno slovně, to ano, ale mohlo to být vysvětleno lépe a názorněji.

Odpovedať
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
DarkCoder
Člen
Avatar
DarkCoder:22. apríla 14:51

promenna je řídicí proměnná cyklu, které nastavíme počáteční hodnotu (nejčastěji 0, protože v programování vše začíná od nuly, nikoli od jedničky). Např. tedy int i = 0. Samozřejmě si můžeme proměnnou i vytvořit někde nad cyklem a už nemusíme psát slovíčko int, bývá ale zvykem používat právě int i.

Ten dodatek s nastavením nuly a odůvodnění, to je výsměch studentům. Je třeba zřetelně vysvětlit jakou počáteční hodnotu je třeba v dané situaci proměnné nastavit a proč. Dále když už se zmiňujete o použití iterující proměnné mimo cyklus, je třeba opět vysvětlit proč. Ten důvod je podstatný. Navíc pokud je proměnná definována mimo cyklus, pak slovo nemusíme je špatně, ale mělo by být nesmíme. Opět chybí proč.

To jsou přesně ty detaily, které je třeba mít na paměti když se snažíte něco vysvětlovat. A to je jen zlomek toho co v článku není.

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 153.