3. C#

3.4. Výpis pole

Pro výpis naplněného pole jsou v programu použity dvě metody. První metoda PoleJakoText, navrací textový řetězec obsahující jednotlivé prvky oddělené čárkou, kde jednotlivé prvky jsou vypsány do řádky. Abychom zachovali stejný počet číslic vypsaných mezi čárky, použili jsme u výpisu hodnoty prvku namísto jednoduché konverze i-tého prvku, tj. pole[i].ToString(); formátovou specifikaci (anglicky "Format Specifier") třídy (datového typu) string, tj. string.Format(", {0:D3}", pole[i]); , kde:

  • 0 ... hodnota 0 definuje pořadí proměnné v seznamu proměnných uvedených za čárkou
  • D3 ... formát definuje, že textový řetězec reprezentující číslo (D znamená číselný formát Decimal, tedy desetinné číslo. Lze také uvádět malé písmeno d), má být doplněn vedoucími nulami, tak aby délka textového řetězce byla rovna 3, tj. počet vypsaných číslic 

Namísto zdlouhavého příkazu pro připojení textového řetězce do stávajícího řetězce např. vystup = vystup + pole[0].ToString(); jsme použili operátor += včetně formátové specifikace, tzn. vystup += string.Format("{0:D3}", pole[0]); - viz Kód 1.

/// <summary>
/// Výpis prvků vektoru v řádku, kde jednotlivé prvky jsou odděleny čárkami
/// </summary>
/// <param name="n"> aktuální velikost (počet prvků) vektoru </param>
/// <param name="pole"> vektor, který má být vypsán </param>
/// <returns> Text obsahující prvky v řádku </returns>
static string PoleJakoText(int n, int[] pole)
{
    /* Deklarace: 'vystup' ... výstupní textový řetězec obsahující prvky vektoru 
     * oddělené čárkou; 'i' ... index prvku ve vektoru */
    string vystup;
 
    // Inicializace - příprava textu  pro výpis v konzole
    vystup = "";
 
    // Vypsání počátečního prvku do textového řetězce
    vystup += string.Format("{0:D3}", pole[0]);
 
    // Pro všechny prvky od druhého prvku (včetně) do posledního ...
    for (int i = 1; i < n; i++)
    {
        // Výpis prvku do řádku odděleného čárkou
        vystup += string.Format(", {0:D3}", pole[i]);
    }
 
    // Přiřazení textu návratu metody
    return vystup;
}

Kód 1: Deklarace statické metody s textovým návratem s názvem PoleJakoText

Další metodou pro výpis prvků, tentokrát však do sloupce, je metoda s textovým návratem s názvem ZobrazitPole - viz Kód 2. Abychom docílili toho, že každý prvek pole bude umístěn na samostatnou řádku, použili jsme ve vývojovém diagramu vložení řídícího znaku do textového řetězce (anglicky "Carriage Return" - reprezentoval řídící znak na pozici 13 v ASCII tabulce). Tento znak navrací kurzor na začátek řádky a díky tomu bylo další číslo vypsáno na novém řádku. V C# je zapotřebí vložit ještě další znak reprezentující přechod na nový řádek (anglicky "Line Feed" - tento řídící znak je umístěn na pozici 10 v ASCII tabulce). Díky vložení těchto dvou řídících znaků do textu je zajištěno vypsání prvku na nové řádce.

/// <summary>
/// Výpis prvků vektoru do sloupce, kde každý prvek je na nové řádce
/// </summary>
/// <param name="n"> počet prvků vektoru </param>
/// <param name="pole"> vypisovaný vektor </param>
/// <returns> Text obsahující prvky ve sloupci </returns>
static string ZobrazitPole(int n, int[] pole)
{
    /* Deklarace: 'vystup' ... textový řetězec, kde jednotlivé prvky vektoru jsou 
     * umístěny pod sebou; 'i' ... index prvku ve vektoru */
    string vystup;
 
    // Inicializace - příprava textu  pro výpis v konzole
    vystup = "";
 
    // Pro všechny prvky od počátečního do koncového prvku ...
    for (int i = 0; i < n; i++)
    {
        /* Výpis prvku na novém řádku (návrat na počátek řádku ... znak na pozici '13' 
         * nový řádek ... znak na pozici '10' v ASCII tabulce); 
         * 0:D3 ... formátová specifikace, tj. 3 znaky (doplněno vedoucími nulami),
         * nula znamená index proměnné uvedené za čárkou */
        vystup += string.Format("{0:D3}", pole[i]) + (char)13 + (char)10;
    }
 
    // Přiřazení výstupního textu návratu metody
    return vystup;
}

Kód 2: Deklarace statické metody s textovým návratem s názvem ZobrazitPole

Existují ještě další možnosti vložení nového řádku, např. pomocí řídící posloupnosti, kde: 

  • \r ... řídící posloupnost pro návrat na počátek řádku
  • \n ... řídící posloupnost pro přechod na nový řádek

V podstatě jde o stejný přístup jako v metodě ZobrazitPole, ale je využito jiného zápisu - viz Kód 3.

// Vložení nové řádky do výsledného textu pomocí řídící posloupnosti
vystup += string.Format("{0:D3}", pole[i]) + "\r\n";

Kód 3: Použití řídící posloupnosti pro vloženého nového řádku

Dalším možným způsobem vložení řádky je využití metody NewLine implementované ve třídě Environment - viz Kód 4.

// Vložení nové řádky do výsledného textu
vystup += string.Format("{0:D3}", pole[i]) + Environment.NewLine;

Kód 4: Použití metody NewLine třídy Environment pro vloženého nového řádku