Diskuze: Faktoriál libovolného čísla
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 20 zpráv z 20.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Děkuji, jen s tím trochu zápolím:
private void button37_Click(object sender, EventArgs e)
{
x = (int) (float.Parse(textBox1.Text));
c = x * (x - 1)!;
textBox1.Text = c.ToString();
}
Když k tomu c dám ! tak mi to podvlní úplně vše a ani na tom konci mi
to nebere - tak mě oprav pls - děkuji. Tuším, že se bude jednat o úplnou
blbost, ale hold se mám ještě co učit.
Nejprve by to chtělo přečíst si toto: http://www.itnetwork.cz/index.php?…
Ten ! je matematický symbol pro faktoriál. Není součástí syntaxe C# v tomto významu. Napiš si to jako rekurzívní funkci nebo to klidně udělej cyklem. Myslím si, že C# cykly umí.
Aby bylo jasno: Napsal jsem ti matematický zápis pro výpočet faktoriálu. Ne zápis v C#.
Pročteno - jak píšu, nedařilo se mi tam dostat text z textboxu - pokud jsem proměnnou definoval mimo kruh, tak ji to nevzalo - pokud v kruhu, tak nepodporovalo,...
Kruhu? Nepodporovalo? Nějak nechápu, ten algoritmus je tak jednoduchý a je k němu napsáno v článku tolik textu a kódu, že to až není hezké. Pokud umíš převést text na číslo, tak mě nenapadá, kde může být problém.
No v cyklu. Převedl jsem to do správného formátu a napsalo mi to:
...keyword must not be followed by an object expression.
Vezmu kód z článku a vložím tam místo meze hodnotu z TextBoxu, je to to, co chceš?
int result = 1;
int x = int.Parse(TextBox1.Text);
for (int i = 2; i <= x; i++) {
result *= i;
}
// v result máš výsledek
Jinak už nevím
Samozřejmě, že to jede. Měl by sis ten článek pročíst znovu... Tohle jsou úplné základy, zkoušej si něco s cykly, například napsat do TextBoxu 5 hvězdiček s tím, že ve zdrojovém kódu může být hvězdička jen jedna, zkusit přepsat text mezi TextBoxy tak, aby byl pozpátku a podobně.
Mě dělá problém jen to, jak to z vlastní metody dostat do podoby, kteru jsi mi zde uvedl. Například toto:
public string GetRandomString (Random rnd, int length)
{
string charPool
= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890";
StringBuilder rs = new StringBuilder();
while (length-- 0)
rs.Append(charPool[(int)(rnd.NextDouble() * charPool.Length)]);
return rs.ToString();
}
potřebuji použít v jiné metodě - tak jak na to? Děkuji.
Ty bys to měl v těch metodách naopak nechávat, aby byl kód strukturovaný a jeho části znovupoužitelné. Metodu si pak zavoláš tam, kde kód potřebuješ.
OK - ale jak zavolám zrovna tuto metodu? Jiné mně šly.
Metoda potřebuje pro svou funkčnost v parametru objekt generátoru náh. čísel, když jsi metodu evidentně nepsal a nevíš jak funguje, tak se nedivím, že ti nejde zavolat...
Zkus např.
Label1.Text = GetRandomString (new Random(), 10);
Jinak je ta metoda zbytečně složitá, kdyby ses nad tím raději zamyslel a zkusil to napsat sám, tak by to bylo efektivnější.
ahoj mám takový malý
dotaz
mám za úkol
vypočítat kombinační číslo faktoriál n a faktoriál k mám takhle double
n = 0;
double result = 1;
Console.Write("Zadejte číslo n : ");
n = Convert.ToDouble(Console.ReadLine());
for (ulong i = 1; i <= n; i++) { result *= i; };
Console.Write(result.ToString());
double k = 0;
double resul = 1;
Console.Write("Zadej číslo k : ");
k = Convert.ToDouble(Console.ReadLine());
for (ulong i = 1; i <= k; i++) { resul *= i; };
Console.Write(resul.ToString());
teď ale nevím, jak udělat (n-k)!. Může mi někdo poradit??
vytahni si ten faktorial do funkce, pak ho jen budes volat s ruznyma parametrama, treba takhle nejak:
int n = 10;
int k = 3;
int x = faktorial(n);
int y = faktorial(n-k);
Convert nepoužívej - to se tu již řešilo - prasárna!
int n, k, result = 1;
Console.WriteLine("Zadej n:");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Zadej k:");
k = int.Parse(Console.ReadLine());
for(;n < (n - k);n--)
result *= n;
Zobrazeno 20 zpráv z 20.