NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:
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
Nejnovější komentáře jsou na konci poslední stránky.
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.

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

Perfektní. Děkuji :-)

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
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
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
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?

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

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

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

Potřebuješ:

using System.Linq;
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();
        }
    }
}
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.

Nejnovější komentáře jsou na konci poslední stránky.
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.