04 Petle programowe cwiczenia przygotowujace


IV. Konstrukcje języka Visual Basic 2010 pozwalające na wielokrotne
wykonywanie zestawu instrukcji  pętle programowe
Wiele rzeczywistych działań polega na powtarzaniu pewnej czynności tak długo, aż osiągnie się
określony cel. Podobnie w programowaniu istnieją konstrukcje  pętle (ang. loop) programowe  po-
zwalające na wielokrotne powtórzenie zadanego ciągu instrukcji. Język Visual Basic 2010 posiada
cztery typy pętli, niektóre z nich mogą występować dodatkowo w kilku rodzajach. Podział na typy jest
następujący:
While & End While (Podczas gdy; Kiedy& )
Do & Loop (Wykonaj & )
For & Next (Dla & Następny)
For Each & Next (Dla każdego & Następny)
IV.1. Pętla While & End While
Przypomnijmy sobie Kopciuszka postawionego przed zadaniem oddzielenia grochu od soczewi-
cy. Gdyby dziewczynka zapytała macochę jak długo ma wykonywać tą czynność, to usłyszałaby za-
pewne, że tak długo, aż w soczewicy nie będzie grochu. Nie wiadomo ile jest groszków w soczewicy,
dlatego nie można określić momentu zakończenia zadania przez podanie konkretnej liczby przeszu-
kiwań miski z soczewicą. Jednak zadanie będzie ukończone wtedy, gdy z soczewicy usunie się każ-
dy groszek.
Do takich zadań służy właśnie pętla While. Jej składnia jest następująca:
While Warunek
Instrukcja_1
Instrukcje_dalsze
End While
Warunek, podobnie jak w konstrukcji warunkowej, to wyrażenie logiczne. Jeśli Warunek ma
wartość True to instrukcje zawarte w bloku pętli zostaną wykonane. Po wykonaniu wszystkich instruk-
cji następuje powrót do początku pętli i ponowne sprawdzenie wartości warunku. Jeśli jest to False,
to instrukcje pętli zostaną pominięte i aplikacja rozpocznie wykonywanie pierwszej instrukcji występu-
jącej w kodzie po słowach kluczowychEnd While. Przypadkiem, nad którym warto się przez mo-
ment zatrzymać, jest ten, w którym warunek ma wartość False już w momencie rozpoczęcia pracy
pętli. Instrukcje zostaną pominięte, wynika z tego, że blok instrukcji pętli While może nie zostać wy-
konany.
Wewnątrz bloku instrukcji pętli While można użyć instrukcji Exit While przerywającej pracę
pętli. Sterowanie przechodzi do pierwszej instrukcji po słowach End While. Kolejne ćwiczenie poka-
zuje wykorzystanie pętli While do  napełniania wodą akwarium przy użyciu dowolnego naczynia.
Programista nie wie jakie są wymiary akwarium, nie wie też jaka jest pojemność naczynia. Program
uzna, że akwarium jest pełne wtedy, gdy dolewana woda osiągnie, lub przekroczy pojemność zbiorni-
ka.
Ćwiczenie 37
Zapoznać się z użyciem pętli While & End While.
1. Utwórz Projekt_037 aplikacji konsolowej.
2. Zadeklaruj w procedurze Main zmienne: dblWysokość, dblSzerokość i dblDługość typu
Double.
Uwaga. Jeśli zmienne są tego samego typu i nie ma potrzeby nadawania im wartości początko-
wej, to można użyć skróconej formy deklarowania:
Dim dblWysokość, dblSzerokość, dblDługość As Double
3. Zaprogramuj pobieranie zmierzonych przez użytkownika wymiarów akwarium i zapamię-
tanie ich w odpowiednich zmiennych (funkcja konwersji do typu Double to CDbl; użyj
schematu wprowadzonego w ćwiczeniu 28).
4. Zadeklaruj zmienną dblPojemnośćNaczynia.
5. Zaprogramuj pobranie od użytkownika pojemności naczynia używanego do napełniania
akwarium i zapamiętanie tej wartości w zmiennej dblPojemnośćNaczynia.
6. Zadeklaruj zmienną dblPojemnośćAkwarium.
7. Zaprogramuj:
V =W"S"D
ć% obliczenie pojemności akwarium i zapamiętanie tej wartości
w zmiennej dblPojemnośćAkwarium,
ć% wyświetlenie obliczonej wartości w konsoli.
8. Zadeklaruj zmienną dblWlanoLitrów typu Double o wartości początkowej 0.
9. Utwórz blok pętli While z warunkiem sprawdzającym czy wartość zmiennej dblWlanoLi-
trów jest mniejsza niż wartość zmiennej dblPojemnośćAkwarium. Edytor wspomaga pro-
gramistę  wystarczy po wpisaniu warunku nacisnąć klawisz Enter, a konstrukcja pętli
zostanie dokończona. Kursor tekstowy ustawiony będzie w pierwszym wierszu bloku in-
strukcji pętli While.
Przykład.
While dblWlanolitrów < dblPojemnośćAkwarium
End While
10.Zaprogramuj w pętli:
ć% dodawanie do zmiennej dblWlanoLitrów wartości zmiennej dblPojemnośćNaczy-
nia,
Uwaga. Zamiast wykonywać obliczenia w sposób standardowy:
dblWlanoLitrów = dblWlanoLitrów + dblPojemnośćNaczynia
można użyć skróconej formy:
dblWlanoLitrów += dblPojemnośćNaczynia 'Występują również operatory: -=, *=, /=
ć% wyświetlanie w konsoli aktualnej wartości zmiennej dblWlanoLitrów.
11. Dodaj pusty wiersz przed końcem procedury Main i zaprogramuj w nim wyświetlenie in-
formacji o tym, że akwarium zostało napełnione.
12.Skompiluj projekt i uruchom aplikację, zapoznaj się z treścią komunikatów konsoli.
13.Zakończ działanie aplikacji.
Rysunek 14: "Przepełnione akwarium"  Projekt_036.
Może się okazać (patrz: Rys. 14), że wlano do akwarium więcej wody niż wynosi jego pojem-
ność. Można się przed tym zabezpieczyć stosując instrukcję Exit While. Ilustruje to kolejne ćwicze-
nie.
Ćwiczenie 38
Wykorzystać instrukcję Exit While do przerwania pracy pętli While.
1. Dodaj pusty wiersz na początku bloku instrukcji pętli While.
2. Zaprogramuj konstrukcję warunkową, której instrukcje będą wykonywane tylko wtedy,
gdy suma zmiennych dblWlanoLitrów i dblPojemnośćNaczynia jest większa niż wartość
zmiennej dblPojemnośćAkwarium, w bloku instrukcji konstrukcji warunkowej zaprogra-
muj:
ć% wyświetlenie komunikatu  Uważaj, nie przelej ,
ć% przerwanie działania pętli przez użycie instrukcji Exit While.
3. Sprawdz działanie aplikacji.
Należy mocno skupić uwagę w chwili konstruowania warunku. Jeśli zostanie użyty warunek,
którego wartość jest zawsze równa True, to pętla nigdy nie zakończy swojego działania. Oto przykład
takiego warunku: x * x >= 0, spowoduje on nieskończone wykonywanie pętli. Jeśli programista roz-
myślnie chce utworzyć nieskończoną pętlę to może użyć następującego zapisu: While True & End
While. W takim przypadku sposobem na zakończenie pętli jest użycie instrukcji Exit While.
Pętla While zawsze sprawdza warunek na początku  formułując w ten sposób myśl, że  może
nie ma potrzeby wykonywania pętli . Jeśli programista ma pewność, że pętla powinna być wykonana
choćby raz, albo chce wymusić z jakichś powodów przynajmniej jednokrotne wykonanie bloku pętli,
to powinien użyć pętli typu opisanego w kolejnym punkcie.
IV.2. Pętla Do & Loop
Występują cztery rodzaje pętli Do & Loop. Składnię każdego z nich przedstawiono poniżej.
Do
Do Do Until Warunek Do While Warunek
Instrukcje
Instrukcje Instrukcje Instrukcje
Loop Until Warunek
Loop While Warunek Loop Loop
Warunek to wyrażenie logiczne, którego wartość wpływa na przerwanie, lub kontynuację działa-
nia pętli. Wewnątrz bloku każdego rodzaju można użyć instrukcjiExit Do przerywającej działanie
pętli, następną wykonywaną instrukcją będzie pierwsza instrukcja programu występująca po wierszu,
ze słowem Loop, który kończy konstrukcję pętli. Tworzenie pętli Do & Loop jest wspomagane przez
edytor kodu zródłowego.
Pętla ze słowem kluczowym Until (Dopóki nie) wykonywana jest tak długo, jak długo Warunek
ma wartość False. Innymi słowy, pętla wykonywana jest do chwili, w której warunek osiągnie wartość
True, wtedy jej działanie jest przerywane.
Pętla ze słowem kluczowym While wykonywana jest tak długo, jak długo warunek ma wartość
True. Innymi słowy, pętla wykonywana jest do chwili, w której warunek osiągnie wartość False, wtedy
jej działanie jest przerywane.
Jeśli słowa Until, While występują po słowie Loop, to instrukcje bloku pętli zostaną wykona-
ne przynajmniej jeden raz. Jeśli słowa te występują po słowie Do, to sprawdzenie wartości warunku
następuje przed wykonaniem pętli i może spowodować, że instrukcje bloku nie zostaną wykonane
nawet raz.
Należy zauważyć, że pętla Do While Warunek & Loop nie różni się w działaniu od pętli
While Warunek & End While. Oznacza to, że poznanie składni pętli Do & Loop zwalnia programi-
stę od konieczności zapoznawania się ze składnią pętli While & End While.
Podobnie jak w przypadku pętli While & End While, pętle Do stosuje się wtedy, gdy liczba
wykonań pętli nie jest określona, a zakończenie działania pętli zależy od pewnego warunku. Kolejne
ćwiczenie polega na zastosowaniu pętli Do & Loop Until do realizacji prostej zabawy  Zgadnij,
którą liczbę z przedziału <1, 100> wybrałem.
Do wykonania ćwiczenia potrzebna jest wiedza na temat metod Randomize oraz Rnd. Deklara-
cje tych metod zawarte są w module VBMath, który znajduje się w przestrzeni nazw Microsoft.Visual-
Basic. Wymienione wcześniej metody wykorzystywane są w programach, których działanie bazuje
na przetwarzaniu liczb losowych. Wynikiem funkcji Rnd jest wartość losowa typu Single z przedziału
<0, 1). Sekwencja liczb losowych zwracanych przez funkcjÄ™ po uruchomieniu aplikacji jest zawsze
identyczna. Taka sytuacja jest przydatna w aplikacjach, które mają działać zawsze w oparciu o ten
sam ciąg liczb losowych. Jeśli aplikacja powinna działać za każdym razem w oparciu o inny ciąg liczb
losowych, to należy przed wygenerowaniem ciągu zainicjować generator tych liczb. Służy do tego
procedura Randomize.
Przykład.
Randomize()
While Rnd() > 0.1
Console.WriteLine("Wylosowano liczbę większą niż 0,1")
End While
Liczba wykonań pętli zależy od tego kiedy funkcja Rnd zwróci wartość mniejszą (lub równą) 0,1.
Przy każdym uruchomieniu przedstawionego ciągu instrukcji liczba wykonań będzie inna. Jeśli nie
zostanie użyta procedura Randomize, to liczba wykonań pętli zawsze będzie taka sama.
Drugi problem polega na uzyskaniu liczby losowo wybranej z określonego zakresu,
np. . Dla ustalenia uwagi niech Min wynosi 1, a Maks 100. Funkcja Rnd zwraca wartości
typu Single nie mniejsze niż zero i mniejsze niż 1. Jeśli pomnożyć wartość funkcji przez 100, to otrzy-
mamy wartości nie mniejsze niż zero i mniejsze niż 100. Interesują nas części całkowite tych liczb,
dlatego należałoby użyć funkcji Int, która zwraca część całkowitą liczby. Odpowiednie wywołanie
wygląda następująco:
Int(Rnd() * 100)
Zwracane wartości to liczby typu Single o wartościach całkowitych z przedziału <0, 99>. Doda-
nie jedynki przenosi nas do przedziału <1, 100>. Ostatecznie wyrażenie:
Int(Rnd() * 100) + 1
zwraca wartości z przedziału postulowanego na początku. Uogólniając można napisać następujący
wzór spełniający wcześniejsze żądanie  liczba losowa z przedziału :
Int(Rnd() * (Maks  Min + 1)) + Min
Ćwiczenie 39
Zaprojektować aplikację konsolową, która pozwala użytkownikowi odgadnąć
wylosowanÄ… przez program liczbÄ™.
1. Utwórz Projekt_039 aplikacji konsolowej.
2. Zainicjuj w procedurze Main generator liczb losowych wywołując procedurę Randomize.
3. Zadeklaruj zmiennÄ… sngLiczbaLosowa typu Single.
4. Przypisz zmiennej sngLiczbaLosowa wartość obliczoną z wzoru Int(Rnd() * 100) + 1.
5. Zadeklaruj zmienną sngLiczbaUżytkownika typu Single. Zmienna posłuży do przechowy-
wania wartości typowanych przez użytkownika.
6. Utwórz pętlę Do & Loop, wpisując Do i naciskając klawisz Enter. Zauważ, że pętla nie
zawiera słów kluczowych While (Until) oraz warunku.
7. Zaprogramuj w pętli:
ć% pobranie od użytkownika liczby i przypisanie jej wartości do zmiennej sngLiczbaU-
żytkownika,
ć% konstrukcję warunkową lub wyboru, która w przypadku gdy:
ª% wartość zmiennej sngLiczbaUżytkownika jest wiÄ™ksza niż wartość zmiennej
sngLiczbaLosowa, wyświetli komunikat  Za duża ,
ª% wartość zmiennej sngLiczbaUżytkownika jest mniejsza niż wartość zmiennej
sngLiczbaLosowa, wyświetli komunikat  Za mała .
8. Dodaj po słowie Loop kończącym pętlę słowo kluczowe Until i warunek porównujący war-
tości zmiennych sngLiczbaLosowa i sngLiczbaUżytkownika.
9. Dodaj pusty wiersz przed końcem procedury Main i zaprogramuj w nim wyświetlenie ko-
munikatu o trafieniu.
10.Sprawdz działanie aplikacji.
Użytkownik musi podać przynajmniej jedną liczbę, żeby program mógł porównać ją z liczbą wy-
losowaną. Jeśli trafi, to program się zakończy, jeśli nie, pętla będzie się wykonywać do skutku. Każdy
z czterech rodzajów pętli można przekształcić w pozostałe trzy. Aatwo sprawdzić, że w niektórych
przypadkach bardziej czytelny i zwarty kod otrzymujemy stosując jeden rodzaj pętli, a w innych przy-
padkach  jeden z pozostałych. Wybór odpowiedniego rodzaju zależy od zadania i od przyzwyczajeń
programisty.
IV.3. Pętla For & Next
Pętle opisane we wcześniejszych punktach stosuje się wtedy, gdy nie wiadomo ile razy pętla
będzie wykonana, bo zależy to od pewnego warunku, którego wartość jest zmienna. W przypadku,
gdy znamy liczbę wykonań pętli, albo wynika ona jasno ze ściśle określonych wartości: początkowej,
końcowej i przyrostu, należy zastosować pętlę For & Next o następującej składni:
For ZmiennaSterującaPętlą = WartośćPoczątkowa To WartośćKońcowa Step Przeskok
Instrukcje_Pętli
Next
Instrukcje pętli nie muszą zależeć od wartości zmiennej sterującej pętlą. Zmiennej tej, przy uru-
chomieniu pętli przypisywana jest wartość początkowa, która w ogólności może być wyrażeniem. Je-
śli w tym momencie wartość zmiennej sterującej pętlą jest mniejsza od, lub równa wartości końcowej
(ta również może być określona poprzez wyrażenie), to zostaną wykonane instrukcje pętli. Po zakoń-
czeniu bloku instrukcji następuje zwiększenie, o wartość (wyrażenia) Przeskok, zmiennej sterującej
pętlą i powrót do początku bloku. Następuje ponowne sprawdzenie, czy zmienna sterująca pętlą jest
mniejsza od, lub równa wartości końcowej. Jeśli warunek nie jest spełniony wykonanie pętli jest prze-
rywane i sterowanie przenosi się do pierwszego wiersza po słowie Next.
Powyższe jest prawdziwe wtedy, gdy wartość Przeskok jest nieujemna. Gdy Przeskok jest
mniejszy od zera, to sprawdzane jest, czy zmienna sterująca pętlą ma wartość większą od, lub rów-
ną, wartości końcowej. Jeśli wartość Przeskok jest dodatnia, to wartość zmiennej sterującej podczas
wykonania pętli rośnie, a jeśli ujemna  maleje.
Jeśli programista pominie słowo kluczowe Step, to musi również pominąć wyrażenie Przeskok.
W takim przypadku Przeskok ma wartość domyślną 1.
Zmienna sterująca pętlą może być dowolnego typu, dla którego możliwe jest zastosowanie ope-
ratorów: <=, >=, +, -. Wartości wyrażeń WartośćPoczątkowa, WartośćKońcowa oraz Przeskok obli-
czane są tylko raz, w momencie uruchomienia pętli. Jeśli instrukcje pętli zmieniają w jakiś sposób
wartości tych wyrażeń, to zmiana taka nie ma wpływu na krotność wykonania pętli. Jeśli instrukcje
bloku pętli zmieniają wartość zmiennej sterującej pętlą, skutki działania pętli mogą być trudne do
przewidzenia. Wykonanie pętli For można przerwać stosując instrukcję Exit For.
Ćwiczenie 40
Zaprojektować aplikację, która  przygotowuje nakrycia stołowe dla podanej liczby
osób.
1. Utwórz Projekt_040 aplikacji konsolowej.
2. Zadeklaruj zmienną intLiczbaOsób typu Integer.
3. Zaprogramuj pobranie od użytkownika liczby osób, które zasiądą do stołu.
4. Zadeklaruj zmienną intLicznik typu Integer; posłuży jako zmienna sterująca pętlą.
5. Utwórz konstrukcję pętli For, w tym celu:
ć% wpisz słowo kluczowe For i, po spacji, nazwę zmiennej sterującej pętlą  intLicz-
nik,
ć% przypisz zmiennej sterującej (intLicznik) wartość początkową 1 (numer pierwszej
osoby),
ć% wpisz słowo kluczowe To i wyrażenie określające maksymalną liczbę osób  in-
tLiczbaOsób,
ć% naciśnij Enter i zauważ, że edytor wspiera działania programisty  dodaje słowo
Next kończące pętlę i pusty wiersz w bloku instrukcji pętli, a także umieszcza w
nim kursor tekstowy.
Przykład.
For intLicznik = 1 To intLiczbaOsób
Next
6. Zaprogramuj w pętli wypisywanie w konsoli nazw elementów zastawy (widelec, talerz
płytki, talerz głęboki, nóż, łyżka), dodając do nich wartość bieżącą zmiennej intLicznik
(np. widelec1, talerz płytki1, talerz głęboki1, nóż1 itd.).
7. Sprawdz działanie aplikacji.
Wynik działania aplikacji może być taki, jak przedstawiony poniżej:
Rysunek 15: "Zastawiony stół"  Projekt_039.
Zmiennej intLiczbaOsób przypisano 6, zatem zmienna sterująca intLicznik zmieniała się pod-
czas wykonywania pętli o 1, od wartości początkowej 1 do wartości końcowej 6. Po zakończeniu pętli
wartość zmiennej sterującej jest równa 7.
Ćwiczenie 41
Zaprojektować aplikację, która wypisze liczby parzyste z podanego przedziału Maks>.
1. Utwórz Projekt_041 aplikacji konsolowej.
2. Zadeklaruj dwie zmienne intMinimalna, intMaksymalna typu Integer.
3. Zaprogramuj pobieranie od użytkownika granic: dolnej i górnej przedziału.
4. Zaprogramuj zwiększenie o 1 granicy dolnej, jeśli nie jest liczbą parzystą.
5. Zadeklaruj zmienną sterującą pętlą intParzyste typu Integer.
6. Utwórz pętlę, której zmienna sterująca zmienia się od wartości intMinimalna do wartości
intMaksymalna, z przeskokiem równym 2.
Przykład.
For intParzyste = intMinimalna To intMaksymalna Step 2
Next
7. Zaprogramuj w pętli wyświetlanie w konsoli wartości zmiennej sterującej.
8. Sprawdz działanie aplikacji.
Efekt działania aplikacji może być podobny do przedstawionego poniżej:
Rysunek 16: Projekt_040 podaje liczby parzyste z zadanego przedziału.
Liczba 25 nie jest wartością parzystą, więc intMinimalna, w wyniku wykonania konstrukcji wa-
runkowej przechowuje wartość 26. Od tej wartości  startuje zmienna sterująca pętlą. Po wykonaniu
bloku instrukcji pętli zmienna sterująca zostaje powiększona o 2 (wartość po słowie Step). Ponieważ
28 jest mniejsze niż, lub równe, 32, to pętla wykonywana jest ponownie. Przy wartości 32, po wyko -
naniu bloku instrukcji pętli, następuje zwiększenie zmiennej sterującej pętlą do 34. Jest to wartość
większa niż 32 (intMaksymalna), dlatego działanie pętli zostaje przerwane.
Napisano wcześniej, że zmienna sterująca może być dowolnego typu, w którym działają relacje:
<=, >= oraz operatory: + i -. Do typów takich należy np. Double.
Ćwiczenie 42
Zaprojektować aplikację, która wyświetli wartości trzecich poteg (x3) dla argumentów x
należących do przedziału , przy tym wartości potęg mają być wyświetlone
w kolejności malejących argumentów, zmieniających się o wartość dx.
1. Utwórz Projekt_042 aplikacji konsolowej.
2. Zadeklaruj zmienne: dblMinimalneX, dblMaksymalneX, dblPrzyrostX, typu Double.
3. Zaprogramuj pobieranie od użytkownika granic przedziału oraz wielkości przyrostu argu-
mentu.
4. Zadeklaruj zmienną sterującą pętlą dblBieżąceX typu Double.
5. Utwórz konstrukcję pętli, w której zmienna sterująca zmienia się od wartości początkowej
dblMaksymalneX do wartości końcowej dblMinimalneX z przeskokiem równym ujemnej
wartości dblPrzyrostX.
Przykład.
For dblBieżąceX = dblMaksymalneX To dblMinimalneX Step  dblPrzyrostX
Next
6. Zaprogramuj w pętli wyświetlanie wartości zmiennej sterującej pętlą oraz wartości funkcji
trzeciej potęgi tej zmiennej.
7. Sprawdz działanie aplikacji.
Efekt działania aplikacji może być podobny do przedstawionego poniżej:
Rysunek 17: Projekt_041 w działaniu.
Ponieważ wartość 31,5 (35-3,5) nie jest większa niż, lub równa, 34,5 (dblMinimalneX), to ostat-
nia użyta wartość wynosi 35.
Każdą pętlę For & Next można przetworzyć na pętlę Do & Loop.
Pętle For Each & Next zostaną omówione po wprowadzeniu zmiennych tablicowych (V.2.).
IV.4. Zagnieżdżanie pętli
Zdarza się, że powtarzające się działanie, występujące w pewnym procesie, samo składa się z
szeregu powtarzających się czynności. Przykładem może być końcówka linii produkcyjnej przygoto-
wująca produkt do dystrybucji. Następuje pakowanie kolejnych sztuk towaru w opakowanie jednost-
kowe, a opakowania jednostkowe pakowane są w opakowania zbiorcze. Opis można rozwijać doda-
jąc tworzenie palet opakowań zbiorczych, ładowanie paletami kontenerów itd.
W programowaniu podobne umieszczanie pętli w pętli nazywa się zagnieżdżaniem (podobnie
jak w przypadku konstrukcji warunkowych). Zagnieżdżanie polega na umieszczeniu konstrukcji pętli
(nazwijmy ją wewnętrzną) jako jednej z instrukcji bloku pętli zewnętrznej.
Przykład.
For intLicznik1 = PoczÄ…tek1 To Koniec1 Step Przeskok1
Instrukcje_1_1
For intLicznik2 = PoczÄ…tek2 To Koniec2 Step Przeskok2
Instrukcje_2
Next
Instrukcje_1_2
Next
W celu zwiększenia czytelności można po słowie Next umieścić nazwę zmiennej sterującej pę-
tlą. Nie wpływa to w jakikolwiek sposób na kod wykonywalny, stanowi jedynie znak rozpoznawczy
końca pętli.
Ćwiczenie 43
Zaprojektować aplikację wyświetlającą tabliczkę mnożenia.
1. Utwórz Projekt_043 aplikacji konsolowej.
2. Zadeklaruj zmienne intWiersz, intKolumna typu Integer.
3. Utwórz konstrukcję  zewnętrznej pętli ze zmienną sterującą intWiersz przebiegającą
wartości od 1 do 10, a w niej:
ć% utwórz konstrukcję  wewnętrznej pętli ze zmienną sterującą intKolumna przebie-
gającą wartości od 1 do 10, a w niej:
ª% zadeklaruj zmiennÄ… intIloczyn typu Integer i przypisz jej wartość iloczynu
zmiennych intWiersz i intKolumna,
ª% zaprogramuj wyÅ›wietlenie w konsoli spacji oddzielajÄ…cej wynik bieżący od po-
przedniego,
ª% zaprogramuj wyÅ›wietlenie w konsoli dodatkowych spacji, w zależnoÅ›ci od tego
ile cyfr ma wartość zmiennej intIloczyn:
" intIloczyn < 10  dwie spacje,
" intIloczyn < 100  jedna spacja.
ª% zaprogramuj, po zakoÅ„czeniu konstrukcji warunkowej, wyÅ›wietlenie w konsoli
wartości zmiennej intIloczyn.
ª% dodaj pusty wiersz po sÅ‚owie Next koÅ„czÄ…cym pÄ™tlÄ™ wewnÄ™trznÄ… i zaprogramuj
w nim wyświetlenie w konsoli nowego wiersza.
4. Sprawdz działanie aplikacji.
Efekt może być podobny do przedstawionego poniżej:
Rysunek 18: Projekt_042 Tabliczka mnożenia - przykład zagnieżdżania pętli
Zagnieżdżanie można pogłębiać, jednak należy zachować daleko idącą ostrożność, gdyż dzia-
łanie takie prowadzi do wydłużenia czasu działania danego fragmentu kodu tylokrotnie, ilokrotnie wy-
konana zostanie dodana pętla zewnętrzna. Przykładowo, jeśli występują trzy poziomy zagłębienia
pętli i każda z nich wykonywana jest tysiąc razy, to instrukcje bloku pętli najbardziej wewnętrznej zo-
staną wykonane miliard razy. Jeśli to możliwe, należy przenosić instrukcje z pętli wewnętrznych do
zewnętrznych. Każdy rodzaj pętli można zagnieżdżać w innych np. For & Next w Do & Loop, albo
While & End While w For & Next. Użycie pętli zwiększa czytelność kodu i powinno być zasadą
nawet wtedy, gdy ciąg instrukcji ma zostać wykonany tylko dwukrotnie.


Wyszukiwarka

Podobne podstrony:
03 Rozgalezianie programu cwiczenia przygotowujace
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 8
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 4
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 2
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 7
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 9
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia test szybkosc
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia test?zblednosc
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 1
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 5
Program ćwiczeń laboratoryjnych
program cwiczen z mechaniki budowli 1
Programowanie cwiczenia zjazd VII 18 12 2011

więcej podobnych podstron