NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 9 - Pole v C# .NET

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Radek Veverka
Tvůrce
Avatar
Odpovídá na Betticek
Radek Veverka:24.4.2021 14:11

Ahoj, v článku to není vysvětleno zřejme proto, aby to nemátlo začátečníky. Datový typ pole ve skutečnosti neobsahuje metody jako Sum(), Average(), Distinct() apod, jak je v článku uvedeno v sekci "Metody na poli" (z uvedených obsahuje pouze vlastnost Length). Jsou to takzvané extension metody. To jsou ve skutečnosti statické metody, vázané na konkrétní datový typ a tváří se jako instanční, můžeš je tedy volat přímo na poli. Jenže abys to mohl provést, musíš pomocí using vložit potřebný balíček, který tyto metody obsahuje, v tomto případě System.Linq. Linq tyto metody nabízí nejen polím, ale i dalším kolekcím. Pomocí linq metod tak můžeš pracovat se všemi kolekcemi stejně, aniž bys musel řešit jejich skutečný typ (zdali je to pole, list, linked list atd...)
Snad je to aspoň trochu srozumitelné.

 
Odpovědět
24.4.2021 14:11
Avatar
Radek Veverka
Tvůrce
Avatar
Odpovídá na Betticek
Radek Veverka:24.4.2021 14:13

Jinak k tomu kdy použít Linq: Vždy, když pracuješ s poli a dalšími kolekcemi. Získáš metody které usnadní spoustu práce :)

 
Odpovědět
24.4.2021 14:13
Avatar
Betticek
Člen
Avatar
Odpovídá na Radek Veverka
Betticek:25.4.2021 18:23

Moc děkuji za vysvětlení, už je mi to jasné :)

 
Odpovědět
25.4.2021 18:23
Avatar
Miroslav Melzer:12.6.2021 16:30

Potřeboval bych vysvětlit proč se v tom proměnná délka pole objevuje to cisla[i] = atd.
Co přesně to znamená to cisla[i].

 
Odpovědět
12.6.2021 16:30
Avatar
Alesh
Tvůrce
Avatar
Odpovídá na Miroslav Melzer
Alesh:12.6.2021 21:16
cisla[i] = int.Parse(Console.ReadLine());

To nesouvisí s proměnnou délkou pole ale s for cyklem. Jím procházíš to pole (řídicí proměnná je právě to "i") a na i-tou pozici přiřazuješ vstup z konzole.

 
Odpovědět
12.6.2021 21:16
Avatar
Odpovídá na Alesh
Miroslav Melzer:12.6.2021 22:17

Aha, ok děkuju.

 
Odpovědět
12.6.2021 22:17
Avatar
Dušan Fajnor:11.8.2021 18:38

Uvítal by Som bližie komentáre // k jednotlivým krokom v kóde, dosť, niektoré veci (ne)chápem, aj keď Som si lekciu trikrát prebehol.

Console.WriteLine("Ahoj, spočítám ti průměr známek. Kolik známek zadáš?");
int pocet = int.Parse(Console.ReadLine());
int[] cisla = new int[pocet]; //uvítal by som tu komentár, prečo takto
for (int i = 0; i < pocet; i++) //uvítal by som tu komentár, prečo takto
{
    Console.Write("Zadejte {0}. číslo: ", i + 1); //uvítal by som tu komentár, prečo takto
    cisla[i] = int.Parse(Console.ReadLine()); //uvítal by som tu komentár, prečo takto
}
Console.WriteLine("Průměr tvých známek je: {0}", cisla.Average()); //uvítal by som tu komentár, prečo takto
Console.ReadKey();
Odpovědět
11.8.2021 18:38
Od Leta 2018 Vediem osobný, finačný, odborný, knižný a herný Know-How Rast a Sebarozvoj
Avatar
Alesh
Tvůrce
Avatar
Odpovídá na Dušan Fajnor
Alesh:11.8.2021 23:02

Myslím, že vše použité v citovaném kódu, je v lekcích vysvětlené a žádné velké složitosti v tom nejsou. Pokud ti přeci jen něco není jasné, dej konkrétní dotaz a někdo ti to určitě zkusí vysvětlit. ;-) Komentovat prakticky každý řádek kódu podle mě nemá smysl.
Pokud vezmi tvé komentáře/dotazy popořadě:

  1. deklarace a vytvoření pole vysvětleno v této lekci
  2. for cyklus vysvětlen v 7. lekci
  3. viz metoda Format na konci 4. lekce
  4. viz parsování ve 3. lekci
  5. viz metody pole v této lekci
 
Odpovědět
11.8.2021 23:02
Avatar
Odpovídá na Alesh
Dušan Fajnor:11.8.2021 23:40

Skorej Som mal na mysli taký postup myslenia ako vytváraš tie kódy pre jednotlivé riadky, bo si ich musím vytvoriť sám.

Dík za reakciu, dáko sa tým prekusnem.
S pozdravom:
Dušan

Odpovědět
11.8.2021 23:40
Od Leta 2018 Vediem osobný, finačný, odborný, knižný a herný Know-How Rast a Sebarozvoj
Avatar
Alesh
Tvůrce
Avatar
Odpovídá na Dušan Fajnor
Alesh:12.8.2021 0:17

No, tak takto bych to okomentoval. Dle zadání se má vytvořit konzolová aplikace pro výpočet průměru známek, kde počet známek zadává uživatel jako první vstup.

Console.WriteLine("Ahoj, spočítám ti průměr známek. Kolik známek zadáš?");
int pocet = int.Parse(Console.ReadLine());
int[] cisla = new int[pocet]; // založení pole o velikosti počtu zadaných známek
for (int i = 0; i < pocet; i++) // cyklus přes všechny prvky pole známek, naplnění pole jednotlivými známkami
{
    Console.Write("Zadejte {0}. číslo: ", i + 1); // výzva uživateli k zadání 1. až n-té známky (proměnná i běží od 0 do n-1, proto v té výzvě vypisujeme i+1, což je lidsky srozumitelnější, než to programátorské číslování od 0)
    cisla[i] = int.Parse(Console.ReadLine()); // uložení naparsovaného čísla na příslušnou pozici v poli
}
Console.WriteLine("Průměr tvých známek je: {0}", cisla.Average()); // výpis výstupu s výpočtem průměru
Console.ReadKey();
 
Odpovědět
12.8.2021 0:17
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 10 zpráv z 231.