NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Umocnění

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
David Liška
Člen
Avatar
David Liška:15.5.2016 2:51

Ahoj, chtěl bych se zeptat, jak docílím toho, abych do exponentu dostal desetinné číslo. Např. když číslo 5 umocním na 2,5, vyjde mi místo 55,90 --> 125. Děkuji za radu.

Console.WriteLine("Zadejte základ mocniny:");
Console.WriteLine();
double zaklad = double.Parse(Console.ReadLine());
Console.WriteLine();
Console.WriteLine("Zadejte exponent:");
Console.WriteLine();
double exponent = double.Parse(Console.ReadLine());

double vysledek = zaklad;

for (float i = 0; i < (exponent - 1); i++)
    vysledek = vysledek * zaklad;
if (exponent == 0)
    vysledek = 1;

Console.WriteLine();
Console.WriteLine("Výsledek: {0}", vysledek);

Console.ReadKey();
Editováno 15.5.2016 2:53
 
Odpovědět
15.5.2016 2:51
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na David Liška
Ondřej Štorc:15.5.2016 7:33

Ahoj, máš tam blbě ten for:

  1. projetí: int i = 0; 0 < (2,5-1), OK
  2. projetí: int i = 1; 1 < (2,5-1), OK
  3. projetí: int i = 2; 2 < (2.5-1), Nic se neprovede

Jinak ani ten tvůj kód s mocněním pomocí exponentu s desetinou čárkou nepodporuje. Proč radši nevyžiješ třeba Mat.Pow(), udělá to co chceš, a budeš mít jistotu že správně.

Editováno 15.5.2016 7:33
Nahoru Odpovědět
15.5.2016 7:33
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
David Liška
Člen
Avatar
David Liška:15.5.2016 12:38

Dal jsem na tvou radu a použil metodu Math.Pow(). Teď to funguje parádně. Díky moc.

Console.WriteLine("Zadejte základ mocniny:");
Console.WriteLine();
double zaklad = double.Parse(Console.ReadLine());
Console.WriteLine();
Console.WriteLine("Zadejte exponent:");
Console.WriteLine();
double exponent = double.Parse(Console.ReadLine());
double vysledek = 0;

vysledek = Math.Pow(zaklad, exponent);
if (exponent == 0)
vysledek = 1;

Console.WriteLine();
Console.WriteLine("Výsledek: {0}", vysledek);

Console.ReadKey();
Editováno 15.5.2016 12:40
 
Nahoru Odpovědět
15.5.2016 12:38
Avatar
hj.masek
Člen
Avatar
hj.masek:15.5.2016 14:27

Jen takovou malou připomínku nevolej zbytečně metodu Math.Pow pokud víš, že je exponent 0 :) nastavuješ výsledek až po zbytečném volání. Mám na mysli něco takového

double zaklad = 2;
double exponent = 3;
double vysledek = (exponent==0)?1:Math.Pow(zaklad,exponent);
Console.WriteLine();
Console.WriteLine("Výsledek: {0}", vysledek);
 
Nahoru Odpovědět
15.5.2016 14:27
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 4 zpráv z 4.