2. VypisRadyWPF

2.4. C#

V souboru MainWindow.xaml.cs obsahující kód na pozadí (Code Behind) byla vygenerována základní struktura našeho programu v C#. Vedle konstruktoru MainWindow této třídy byly také vygenerovány soukromé (private) metody bez návratu:

  • BtnFor_Click
  • BtnWhile_Click
  • BtnDoWhile_Click
  • BtnBezCyklu_Click
  • BtnMazat_Click
  • BtnKonec_Click

U první metody pro výpis prvních deseti čísel oddělených čárkami nejprve vymažeme předchozí text v objektu typu TextBox pro výpis řady. Pro generování čísel využijeme cyklus s krokem (for), kde budeme vypisovat hodnotu čítače. Pokud je hodnota větší než 1, tak budeme přidávat za výpis čísla na formuláři čárku - viz Kód 1.

private void BtnFor_Click(object sender, RoutedEventArgs e)
{
    // Deklarace: 'i' ... řídící proměnná cyklu - čítač (vypisované číslo)
    int i;
 
    // Vymazání předchozí výpisu řady
    this.TxtVypis.Clear();
 
    // Cyklus s krokem (proběhne 10x)
    for (i = 1; i <= 10; i++)
    {
        // Test, zda již bylo vypsáno první číslo...
        if (i > 1)
        {
            // Přidání čárky za každé číslo
            this.TxtVypis.Text += ", ";
        }
 
        // Připojení čísla do výpisu na formuláři ('i' konverze na text)
        this.TxtVypis.Text += i.ToString();
    }
}

Kód 1: Deklarace metody pro výpis čísel od 1 do 10 (BtnFor_Click)

Následující metoda je svojí podstatou stejná, avšak oproti předchozí metodě, musíme zajistit inkrementaci řídící proměnné i - viz Kód 2. Pro inkrementaci jsme v cyklu využili příkazu i++.  Tento operátor zajistí zvýšení hodnoty řídící proměnné o hodnotu 1 před proběhnutím nové iterace.  

private void BtnWhile_Click(object sender, RoutedEventArgs e)
{
    // Deklarace: 'i' ... řídící proměnná cyklu - inicializace čítače
    int i = 11;
 
    // Vymazání předchozí výpisu řady
    this.TxtVypis.Clear();
 
    // Cyklus s podmínkou na začátku
    while (i <= 20)
    {
        // Test, zda již bylo vypsáno první číslo...
        if (i > 11)
        {
            // Přidání čárky za každé číslo
            this.TxtVypis.Text += ", ";
        }
 
        // Připojení čísla do výpisu na formuláři ('i' konverze na text)
        this.TxtVypis.Text += i.ToString();
 
        // Inkrementace čítače o 1
        i++;
    }
}

Kód 2: Deklarace metody pro výpis čísel od 11 do 20 (BtnWhile_Click)

Následující metoda BtnDoWhile_Click využívá cyklus s podmínkou na konci. Tato podmínka je testována po proběhnutí příkazů v těle cyklu - viz Kód 3. 

private void BtnDoWhile_Click(object sender, RoutedEventArgs e)
{
    // Deklarace: 'i' ... řídící proměnná cyklu - inicializace čítače
    int i = 21;
 
    // Vymazání předchozí výpisu řady
    this.TxtVypis.Clear();
 
    // Cyklus s podmínkou na začátku
    do
    {
        // Test, zda již bylo vypsáno první číslo...
        if (i > 21)
        {
            // Přidání čárky za každé číslo
            this.TxtVypis.Text += ", ";
        }
 
        // Připojení čísla do výpisu na formuláři (konverze 'i' na text)
        this.TxtVypis.Text += i.ToString();
 
        // Inkrementace čítače o 1
        i++;
    }
    // Testování řídící podmínky k vykonání další iterace
    while (i <= 30);
}

Kód 3: Deklarace metody pro výpis čísel od 21 do 30 (BtnDoWhile_Click)

V metodě BezCyklu_Click je v použito přímého přiřazení číslice na do objektu s výpisem číselné řady umístěného na formuláři - viz Kód 4. Vidíme jasnou nevýhodu ve zdlouhavém vytváření zdrojového kódu, pokud bychom měli vypsat na formulář více hodnot. Proto je vhodné používat cyklus.

private void BtnBezCyklu_Click(object sender, RoutedEventArgs e)
{
    // Deklarace: 'i' ... řídící proměnná cyklu - inicializace čítače
    int i = 31;
 
    // Vymazání předchozí výpisu řady
    this.TxtVypis.Clear();
 
    // Výpis čísla na formulář
    TxtVypis.Text = i.ToString();
    // Inkrementace čítače o 1
    i++;
    TxtVypis.Text += ", " + i.ToString();
    i++;
    TxtVypis.Text += ", " + i.ToString();
    i++;
    TxtVypis.Text += ", " + i.ToString();
    i++;
    TxtVypis.Text += ", " + i.ToString();
    i++;
    TxtVypis.Text += ", " + i.ToString();
    i++;
    TxtVypis.Text += ", " + i.ToString();
    i++;
    TxtVypis.Text += ", " + i.ToString();
    i++;
    TxtVypis.Text += ", " + i.ToString();
    i++;
    TxtVypis.Text += ", " + i.ToString();
}

Kód 4: Deklarace metody pro výpis čísel od 31 do 40 (BtnBezCyklu_Click)

Předposlední metodou, kterou budeme vytvářet, je metoda pro výmaz vypsané číselné řady na formuláři. Použijeme stejný příkaz (Clear) jako v předchozích případech - viz Kód 5.

private void BtnMazat_Click(object sender, RoutedEventArgs e)
{
    // Vymazání předchozího výpisu řady
    this.TxtVypis.Clear();
}

Kód 5: Deklarace metody pro výmaz číselné řady vypsané na formuláři (BtnMazat_Click)

Poslední metodou, kterou musíme upravit je metoda pro obsluhu události Click tlačítka Konec. Tato metoda nám zavře formulář - viz Kód 6.

private void BtnKonec_Click(object sender, RoutedEventArgs e)
{
    // Zavření formuláře
    this.Close();
}

Kód 6: Deklarace metody bez návratu pro zavření formuláře (BtnKonec_Click)