Výpis řady čísel
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)