Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 9. diel - Pole v C# .NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Alesh
Tvůrce
Avatar
Odpovedá 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
Odpovedá 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[] ?

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

Odpovedať
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();
Odpovedať
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
Odpovedá na Betticek
Alesh:24.4.2021 12:40

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

Avatar
Radek Veverka
Tvůrce
Avatar
Odpovedá na Betticek
Radek Veverka:24.4.2021 12:54

Potřebuješ:

using System.Linq;
Avatar
Betticek
Člen
Avatar
Odpovedá 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
Odpovedá 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.

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 231.