[C#] while(n > 1)

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Alesh2020 10. 10. 2021 19:34

Mám kód
Kód: Vybrat vše
public static int Faktorial(int n)
{
    if (n <0) { return 0; }
    int vysledek = 1;
    while(n > 1)
    {
        vysledek *= n--;
    }
    return vysledek;
}


Je mi jasné, že je nekompletní, ale co tam přilepit, abych ho rozjel? Je to podle knihy.
https://ibb.co/B2kw6gr
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 10. 10. 2021 19:43

Co znamená "nekompletní"? Nicméně jsem opět přesvědčený o tom, že odpověď na svoji otázku v té knize najdeš. Určitě tam nedali kód, který by pak nikde nepoužili.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 10. 10. 2021 19:51

Ofofotil sem tu část stránky - https://ibb.co/B2kw6gr - a sám vidíš, že jsem to opsal celé, co tam je.
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 10. 10. 2021 19:52

Neodpověděl jsi na otázku.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 10. 10. 2021 20:15

Co znamená "nekompletní"?


A] nejde to spustit/zkompilovat
B] chyběj tam tyhlety formality (viz dole) a proto to pravděpodobně nejde spustit

Kód: Vybrat vše
using System;

namespace strana47
{
    class Program
    {
        static void Main()
        {
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 10. 10. 2021 20:22

A nepíše se náhodou v té knížce, že tu metodu máš přidat do nějaké už existující třídy? Jsem vcelku přesvědčen, že ano.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 10. 10. 2021 21:05

Nevšiml jsem si. A jak se to dělá, když ty jsi si jist, že to tak má být?
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Just_jo 10. 10. 2021 21:06

To co jsi opsal je pouze fce, která je použitá v programu nebo v knihovně.

Pouze ( podle názvu ) vrací faktoriál vloženého číslo skrz parametr.
Ten může být nastaven u zavaděče jako args nebo použit u winform z nějakého inputu nebo z výsledku jiné návratové fce.

-- 10. 10. 2021 22:08 --

Jinak spíše bych od tebe raději viděl dotaz ohledně té výpočetní fáze.
Ono tady je to napsané zkráceně ( vysledek *= n-- )
Just_jo
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 10. 10. 2021 21:11

Tu třídu máš v dotazu, který jsi položil po tomhle. Musíš to zkrátka vždycky dočíst celé. Jestli se budeš stále zasekávat na něčem, co je vysvětlené o stránku dál, tak se absolutně nic nenaučíš.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 10. 10. 2021 21:38

Jinak spíše bych od tebe raději viděl dotaz ohledně té výpočetní fáze.
Ono tady je to napsané zkráceně ( vysledek *= n-- )


A] proč bys raději viděl, kdybych se ptal na toto?
B] jedu podle knihy, jsem začátečník, tak nebudu žonglovat...
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 10. 10. 2021 21:41

A] rozumíš tomu zápisu? Pokud ne, tak se taky divím, že by ses na to nezeptal.
B] to "nežonglování" tě ale evidentně mate, takže asi bude lepší začít žonglovat
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 10. 10. 2021 21:52

A] uměl bych slovně popsat, co to dělá
B] myslím si, že jen blb bude machrovat ve věcech, kde je zelenáč, a hrát si na mistra
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 10. 10. 2021 22:03

A] ok, zkus to
B] tady nejde o to, kdo je zelenáč a kdo mistr. Ale pokud si nepřečteš vše potřebné před tím, než začneš něco dělat, tak tě to bude jenom brzdit.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 11. 10. 2021 06:52

A] Takže:
public static int Faktorial(int n) // číslo zadané od uživatele uloží do proměnné "n"

if (n <0) { return 0; } // pokud je "n" menší než nula, tudíž jde o záporné číslo, vrátí program nulu
int vysledek = 1;
while(n > 1) // pokud je "n" větší než jedna, program pokračuje, a umenší "n" o jedničku (příkaz -- znamená odečti od hodnoty jedničku (např. pokud je "n" 5, tak n--je postfixový operátor, a tak se nejdřív použije "5", a pak se umenší na "4")
vysledek *= n--;
return vysledek;

B] Pokyn, jak tam přilepit tu metodu, jsem tam prostě NENAŠEL. Tohle bývá častý problém, že člověk může být dobrý v nějakém oboru, třeba dobrý programátor, ale neuvědomuje si, že to, co on považuje za samozřejmé, tak pro někoho, kdo začíná, tak samozřejmé není, a proto by bylo dobré to dané osobě vysvětlit čitelněji.
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 11. 10. 2021 07:00

No on taky může být problém, že jde sice o knížku pro začátečníky v C#, ale nejde o knížku pro začátečníky v programování.
Aneb častý problém úplných začátečníků - nedokáží rozlišit mezi znalostí programování a znalostí programovacího jazyka.
Wikan
Moderátor
Uživatelský avatar

Další stránka