Iteracje w C# Informatyka Cele lekcji: Wiadomości: Uczeń potrafi: wymienić typy iteracji; pisać składnię instrukcji for; opisać składnię instrukcji while; opisać składnię instrukcji do…while; podać przykłady algorytmów (programów) wykorzystujących iterację. Umiejętności: stosować instrukcję for w prostych programach; stosować iteracje warunkowe w prostych programach; napisać program obliczający NWD za pomocą algorytmu Euklidesa.
Cele lekcji Podczas tej lekcji: dowiesz się, jak wykonywać iteracje w języku C#; poznasz instrukcje for, while, do…while; nauczysz się praktycznie stosować poznane instrukcje w programach. Wiedza Uczeń potrafi: wymienić instrukcje iteracji w C#; opisać składnię poznanych poleceń iteracji. Umiejętności stosować iteracje w prostych programach; implementować algorytm Euklidesa do obliczenia NWD w języku C#.
Przegląd zagadnień Pętla typu „for” Pętle warunkowe „while” i „do …while” Przykłady zastosowania iteracji w programach Pogadanka z uczniami na temat ich doświadczeń w programowaniu i iteracjach.
Instrukcja pętli for Instrukcja pętli „for” pozwala wykonać z góry określoną liczbę powtórzeń. Składnia instrukcji „for” for (wartość początkowa zmiennej sterującej; wyrażenie logiczne; aktualizacja zmiennej sterującej) { blok kodu }
Instrukcja for- definiowanie wyrażenia logicznego Instrukcja „for” wykonywana jest dopóty, dopóki wyrażenie logiczne zwraca wartość true. for (a = 1 ; a <= n; a++) { . . . } W przypadku przedstawionym poniżej blok kodu umieszczony w instrukcji „for” nie zostanie wykonany ani razu. for (a = 1 ; a == n; a++) Wynika to z faktu, że wyrażenie logiczne zwraca wartość false ( 1 nie jest równe 10).
Deklaracja zmiennej sterującej Język C# pozwala na deklarację zmiennych w instrukcji „for”. Rozwiązanie takie zmniejsza zasięg zmiennej tylko do bloku kodu wykonywanego w iteracji. for ( int a = 1 ; a <= n; a++) { . . . } Użycie zmiennej a poza blokiem polecenia for spowoduje błąd kompilacji.
Obliczanie silni za pomocą instrukcji „for” private void btnOblicz_Click(object sender, EventArgs e) { long silnia; byte n, a; n = Byte.Parse(txtN.Text); silnia = 1L; for (a = 10 ; a >0 ; a-=2) silnia = silnia * a; } lblSilnia.Text = "Silnia wynosi " + Convert.ToString(silnia);
Pętla warunkowa „while” Składania polecenia „while” while (wyrażenieLogiczne) { Blok kodu } Pętla jest wykonywana tak długo, jak długo wyrażenie logiczne ma wartość true. Ponieważ warunek jest sprawdzany na początku bloku kodu przypisanego do iteracji, może nie być wykonany ani razu.
Pętla warunkowa „do…while” Składania polecenia „do … while” do { Blok kodu } while (wyrażenieLogiczne); W przypadku tej iteracji warunek sprawdzany jest na końcu pętli, więc blok kodu musi być co najmniej raz wykonany.
Obliczanie NWD private void btnOblicz_Click(object sender, EventArgs e) { int a, b; a = Int32.Parse(txtA.Text); b = Int32.Parse(txtB.Text); while (b != 0) if (a > b) a = a - b; } else b = b - a; lblNWD.Text = "NWD wynosi " + Convert.ToString(a);
Skracanie ułamka private void btnSkroc_Click(object sender, EventArgs e) { int L, M, reszta; L = Int16.Parse(txtL.Text); M = Int16.Parse(txtM.Text); if (L > M) int pomoc; pomoc = L; L = M; M = pomoc; } do reszta = M % L; M = L; L = reszta; while (reszta != 0); txtL1.Text= Convert.ToString (Int16.Parse (txtL.Text)/M); txtM1.Text = Convert.ToString(Int16.Parse(txtM.Text) / M);
Podsumowanie Pętla „for” Obliczanie wartości silni Pętla warunkowa „while” Pętla warunkowa „do…while” Obliczanie NWD za pomocą algorytmu Euklidesa Wykorzystanie NWD do skracania ułamków