NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. 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
Alesh
Tvůrce
Avatar
Odpovídá na Savi
Alesh:15.6.2020 13:41

Jo, už chápu, o co ti jde. Tohle ale není otázka parsování, protože jak jsem již psal, tak vstup z konzole je string. Pomocí parsování ho převádíš na jiný typ proměnné, což u stringu již jaksi postrádá smysl, protože už string máš. Tobě jde ale o jakousi "masku", tj. filtr toho, co uživatel může do toho stringu napsat. Nejde jen o čísla, ale i třeba o interpunkci apod. K tomuto účelu se využívají tzv. regulární výrazy.

 
Odpovědět
15.6.2020 13:41
Avatar
Savi
Člen
Avatar
Odpovídá na Alesh
Savi:15.6.2020 13:48

Perfektní. Děkuji :-)

 
Odpovědět
15.6.2020 13:48
Avatar
Jiří Staniš:29.12.2020 1:48

Ahoj, při testování metody Take() jsem zjistil, že vyžaduje using System.Linq; (což není pro úplné začátečníky...). Výsledek je pak nutné ukládat do proměnné deklarované pomocí var. Lze výsledek metody Take() rovnou uložit jako string[] ?

Editováno 29.12.2020 1:49
 
Odpovědět
29.12.2020 1:48
Avatar
Václav Dachs:24.1.2021 11:02

Ahoj,
Koukal jsem, žeVisual Studio ve třídě Array nabízí kromě metody IndexOf() i metodu BinarySearch() tuto metodu znám z tutoriálu Javy. Jestli to chápu správně jde o ekvivalentní metodu k IndexOf() nebo má metoda BinarySearch() v C# jinou funkci?

Odpovědět
24.1.2021 11:02
S úsměvem jde všechno lépe :-)
Avatar
Václav Dachs:24.2.2021 16:26

Ahoj, super tutoriál. Trochu jsem se zamyslel a zkusil jsem vytvořit program, který na začátku má nulovou velikost pole pro uložení jmen uživatelů. Následně je pole dle potřeby zvětšováno přidáváním jmen uživatelů a na konci je toto pole obsahující jména uživatelů vypsáno pomocí foreach cyklu.

//výpis textu
            Console.WriteLine("Vytvořte si databázi uživatelů.");

            //deklarace pole pro uložení jmen uživatelů
            string[] uzivatele = new string[0];
            //deklarace řídící proměnné pro ukončení cyklu
            bool pokracovat = true;
            //deklarace proměnné pro výpis pořadí uživatele
            int poradi = 1;

            //cyklus přidávající uživatele
            while (pokracovat)
            {
                //vyzvání uživatele k zadání jména uživatele
                Console.Write($"\nZadejte jméno {poradi}. uživatele: ");
                //deklarace pole o jedné proměnné zadané uživatelem
                string[] uzivatel = { Console.ReadLine() };
                //připojení pole uzivatel do pole uzivatele
                uzivatele = uzivatele.Concat(uzivatel).ToArray();
                //inkrementace počítadla pořadí
                poradi++;

                //deklarace řídící proměnné pro cyklus hlídající správnost volby přidaní/nepřidání dalšího uživatele
                bool platnaVolba = false;
                //cyklus hlídajíci platnost volby
                while (!platnaVolba)
                {
                    //výpis dotazu
                    Console.Write("Přejete si přidat dalšího uživatele? [a/n]: ");
                    //zpracování volby uživatele
                    switch (Console.ReadKey().KeyChar.ToString().ToLower())
                    {
                        default:
                            Console.WriteLine("\nNeplatná volba!");
                            break;
                        case "a":
                            platnaVolba = true;
                            break;
                        case "n":
                            platnaVolba = true;
                            pokracovat = false;
                            break;
                    }
                }

                //odřádkování
                Console.WriteLine();
            }

            //reset proměné poradi
            poradi = 1;


            //výpis obsahu pole uzivatele
            foreach (string s in uzivatele)
            {
                //výpis jména uživatele
                Console.Write($"\nJméno {poradi}. uživatele: {s};");
                //inkrementace počítadla pořadí
                poradi++;
            }

            //čekání na stsik libovolné klávesy
            Console.ReadKey();
Odpovědět
24.2.2021 16:26
S úsměvem jde všechno lépe :-)
Avatar
Betticek
Člen
Avatar
Betticek:24.4.2021 12:13

Ahoj, prosím o pomoc.. U proměnné délky pole, i přesto, že ze zadání přesně opíšu/ zkopíruji do VisualStudia mi to hlásí chybu CS1061 in[] neobsahuje definici pro Average a nenašla se žádná dostupná metoda rozšíření Average, která přijímá první argument typu int[]. (nechybí Direktiva using nebo odkaz na sestavení?).

Kde je tedy prosím chyba?

 
Odpovědět
24.4.2021 12:13
Avatar
Alesh
Tvůrce
Avatar
Odpovídá na Betticek
Alesh:24.4.2021 12:40

Dej sem ten svůj kód vč. usingů.

 
Odpovědět
24.4.2021 12:40
Avatar
Radek Veverka
Tvůrce
Avatar
Odpovídá na Betticek
Radek Veverka:24.4.2021 12:54

Potřebuješ:

using System.Linq;
 
Odpovědět
24.4.2021 12:54
Avatar
Betticek
Člen
Avatar
Odpovídá na Alesh
Betticek:24.4.2021 13:01
using System;

namespace Proměnná_délka_pole
{
    class Program
    {
        static void Main(string[] args)
        {
            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];
            for (int i = 0; i < pocet; i++)
            {
                Console.Write("Zadejte {0}. číslo: ", i + 1);
                cisla[i] = int.Parse(Console.ReadLine());
            }
            Console.WriteLine("Průměr tvých známek je: {0}", cisla.Average());
            Console.ReadKey();
        }
    }
}
 
Odpovědět
24.4.2021 13:01
Avatar
Betticek
Člen
Avatar
Odpovídá na Radek Veverka
Betticek:24.4.2021 13:03

Ááááá, děkuji moc :)
Můžu se prosím ještě zeptat, proč to tam musí být, resp. kdy tam má být using System.Linq; ?
Moc děkuji.

 
Odpovědět
24.4.2021 13:03
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.