Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Pętle – instrukcje powtórzeń

Podobne prezentacje


Prezentacja na temat: "Pętle – instrukcje powtórzeń"— Zapis prezentacji:

1 Pętle – instrukcje powtórzeń
Pętle - zbiór instrukcji, które należy wykonać wielokrotnie. Program dyktuje: - ile razy pętla ta wykona zawarty w niej blok instrukcji - jakie mają być warunki zakończenia jej działania.

2 Rodzaje instrukcji pętli w VBA
W Visual Basic istnieje kilka rodzajów pętli. Do While … Loop Do … Loop While Do Until … Loop Do … Loop Until For … Do … Next Do przerwania działania pętli służą instrukcje: Exit Do Exit For Pętle typu Do wymagają zastosowania wyrażenia porównania. Wykorzystują do tego operatory porównania.

3 Rodzaje instrukcji pętli w VBA
Pętla typu Do While wykonuje zawarty w niej blok instrukcji dopóki wyrażenie porównania jest prawdziwe. Pętla typu Do Until kontynuuje swoje działanie tak długo, jak długo podany warunek jest fałszywy. Pętla For wykonuje swoje działanie dopóki zmienna o podanej wartości początkowej nie osiągnie podanej wartości końcowej. Ta pętla jest najczęściej wykorzystywana, gdy znana jest wymagana liczba powtórzeń.

4 o znanej liczbie powtórzeń o nieznanej liczbie powtórzeń For Do While
pętle o znanej liczbie powtórzeń o nieznanej liczbie powtórzeń For Do While Do Until

5 Pętla typu Do While Wymaga zastosowania wyrażenia porównania. Wykorzystuje do tego celu operatory porównania. Jest ograniczona słowami kluczowymi Do i Loop. W ciele pętli może znajdować się jedna instrukcja lub cały blok instrukcji VB. Blok ten jest wykonywany tak długo jak długo podany warunek jest prawdziwy.

6 Pętla typu Do While Ważne: w ciele pętli muszą znaleźć się instrukcje, które sprawią, że podany warunek kiedyś stanie się fałszywy! W przeciwnym razie pętla się nie zakończy! Składnia instrukcji Do While: Do While (Warunek) Blok instrukcji VB wykonywany gdy Warunek jest prawdziwy Loop

7 Pętla typu Do While Jeżeli warunek jest fałszywy już na samym początku przed wykonaniem pętli, to blok instrukcji w ciele pętli nie zostanie wykonany ani razu. Nieco inaczej działa pętla Do...Loop While, której ciało jest zawsze wykonywane przynajmniej jeden raz. Najczęściej w Warunku pętli wykorzystywana jest jakaś zmienna. Wartość tej zmiennej w ciele pętli musi się zmieniać, aby doprowadzić do fałszywości Warunku i zakończyć działanie pętli.

8 Przykład 1: Fragment programu żąda wczytania
Przykład 1: Fragment programu żąda wczytania danych z określonego zakresu Sub blokowanie_danych() liczba = 0 Do While liczba < 1 Or liczba > 100 ‘podczas, gdy liczba wczytywana jest spoza żądanego przedziału liczba = InputBox("Podaj liczbę z przedziału ") Loop End Sub Uwaga! Taki fragment umieszcza się często na początku programu, żeby wymusić wczytanie odpowiednich danych

9 Pętla typu Do Until Pętla Do Until wykonuje zawarty w niej blok rozkazów tak długo, jak długo podany warunek jest fałszywy. Wymaga ona zastosowania wyrażenia porównania. Wykorzystuje do tego celu operatory porównania. Pętla te jest ograniczona słowami kluczowymi Do i Loop. W ciele pętli może znajdować się jedna instrukcja lub cały blok instrukcji VB.

10 Pętla typu Do Until Ważne: w ciele pętli muszą znaleźć się instrukcje, które doprowadzą do tego, że podany warunek kiedyś stanie się prawdziwy. W przeciwnym razie pętla się nie zakończy! Składnia instrukcji Do Until: Do Until (Warunek) Blok instrukcji VB wykonywany gdy Warunek jest fałszywy Loop

11 Najczęściej w Warunku pętli wykorzystywana jest jakaś zmienna.
Pętla typu Do Until Jeżeli warunek jest prawdziwy już na samym początku przed wykonaniem pętli, to blok instrukcji w ciele pętli nie zostanie wykonany ani razu. Nieco inaczej działa pętla Do...Loop Until, której ciało jest zawsze wykonywane przynajmniej jeden raz. Najczęściej w Warunku pętli wykorzystywana jest jakaś zmienna. Należy zadbać, aby w ciele pętli wartość tej zmiennej zmieniała się, aby doprowadzić do prawdziwości Warunku i zakończyć działanie pętli.

12 Przykład 1: wymuszanie poprawnych danych
Sub wymuszanie_danych() Do liczba = InputBox("Podaj liczbę z przedziału ") Loop Until liczba >= 1 And liczba <= 100 ‘tu warunek odwrotny do warunku z przykładu z instrukcją While, napisany zgodnie z logicznymi prawami de Morgana End Sub

13 Instrukcja Exit Do Exit Do – instrukcja pozwalająca na przerwanie działania pętli. Powoduje natychmiastowe przerwanie działania pętli, bez względu na prawdziwość podanego warunku. Składnia instrukcji Exit Do: Exit Do Instrukcja Exit Do przeważnie poprzedzona jest instrukcją warunkową (najczęściej If) i powoduje przejście do rozkazu znajdującego się bezpośrednio za pętlą.

14 Instrukcja Exit Do Przykład użycia instrukcji Exit Do: Do intLiczba=InputBox("Podaj liczbę całkowitą„) if (intLiczba=intStala) Then Exit Do End If Wynik=1/(intStala-intLiczba) intWiadomosc=MsgBox(Wynik) Loop While (intLiczba>0)

15 Instrukcja pętli For … Do … Next
Pozwala na wielokrotne powtarzanie bloku kodu. W przeciwieństwie do pętli typu Do wykonuje to ściśle określoną ilość razy. Powtórzenia pętli zwane są iteracjami pętli.

16 Instrukcja pętli For … Do … Next
Składnia instrukcji For: For ZmiennaLicznik = WartośćPoczątkowa To WartośćKońcowa [Step WartośćKroku] Blok instrukcji VB wykonywany gdy ZmiennaLicznik <= WartośćKońcowa (jeżeli WartośćKroku jest dodatnia), lub gdy ZmiennaLicznik>= WartośćKońcowa (gdy WartośćKroku jest ujemna) Next [ZmiennaLicznik]

17 Instrukcja pętli For … Do … Next
Wyrażenia w nawiasach [] są opcjonalne, tzn. nie muszą występować w instrukcji. W przypadku, gdy pominięta zostanie część rozkazu określająca WartośćKroku, Visual Basic przyjmie domyślną WartośćKroku=1. Wpisywanie ZmiennejLicznik za słowem Next nie jest konieczne, jednak poprawia czytelność i analizę zapisu, szczególnie przy zagnieżdżonych instrukcjach For.

18 Instrukcja pętli For … Do … Next
Przykład użycia instrukcji For: Co robi ten kawałek programu? intSuma=0 For intLicznik=2 To 100 Step 2 intSuma=intSuma+intLicznik Next intLicznik Nie należy zmieniać wartości ZmiennejLicznik wewnątrz bloku rozkazów pętli For. Może to doprowadzić do powstania pętli nieskończonej ("zapętlenia" się programu), gdyż ZmiennaLicznik nigdy nie osiągnie WartościKońcowej. Przykład powstania pętli nieskończonej: intLicznik=6

19 if (intLiczba=intLicznik) Then Exit For End If
Instrukcja Exit For Exit For – umożliwia opuszczenie pętli przed zakończeniem jej działania. Powoduje natychmiastowe przerwanie działania pętli, bez względu na to ile iteracji zostało wykonane i ile pozostało do wykonania. Przykład użycia instrukcji Exit For: For intLicznik=1 To 10 if (intLiczba=intLicznik) Then Exit For End If sngWynik=1/(intLicznik-intLiczba) intWiadomosc=MsgBox(sngWynik) Next intLicznik

20 n liczb, wygenerowanych funkcją losowania
Przykład 2: program szuka największego i najmniejszego elementu w ciągu n liczb, wygenerowanych funkcją losowania Sub Max_Min() Dim n As Byte n = InputBox("Ile wyrazów ma zawierać ciąg?") Max = 0 min = 100 'Generowanie losowe liczb rzeczywistych z przedziału For i = 1 To n liczba = Rnd * 100 If liczba > Max Then Max = liczba ElseIf liczba < min Then min = liczba End If Next i MsgBox "Max=" & Max & " min=" & min End Sub


Pobierz ppt "Pętle – instrukcje powtórzeń"

Podobne prezentacje


Reklamy Google