04 Petle programowe cwiczenia przygotowujace

background image

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 kluczowych

End

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.

background image

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:

obliczenie pojemności akwarium

V =WSD

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

background image

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.

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.

Rysunek 14: "Przepełnione akwarium" – Projekt_036.

background image

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. Sprawdź 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

Instrukcje

Loop Until Warunek

Do

Instrukcje

Loop While Warunek

Do Until Warunek

Instrukcje

Loop

Do While Warunek

Instrukcje

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ć instrukcji

Exit

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 źró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.

background image

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. <Min, Maks>. 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)

background image

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 <Min, Maks>:

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. Sprawdź działanie aplikacji.

background image

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. Łatwo 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

.

background image

Ć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. Sprawdź działanie aplikacji.

Wynik działania aplikacji może być taki, jak przedstawiony poniżej:

Rysunek 15: "Zastawiony stół" – Projekt_039.

background image

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 <Min,
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. Sprawdź działanie aplikacji.

Efekt działania aplikacji może być podobny do przedstawionego poniżej:

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.

Rysunek 16: Projekt_040 podaje liczby parzyste z zadanego przedziału.

background image

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 (x

3

) dla argumentów x

należących do przedziału <xmin, xmax>, 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. Sprawdź działanie aplikacji.

Efekt działania aplikacji może być podobny do przedstawionego poniżej:

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.).

Rysunek 17: Projekt_041 w działaniu.

background image

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,

background image

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. Sprawdź działanie aplikacji.

Efekt może być podobny do przedstawionego poniżej:

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.

Rysunek 18: Projekt_042 Tabliczka mnożenia - przykład zagnieżdżania pętli


Document Outline


Wyszukiwarka

Podobne podstrony:
03 Rozgalezianie programu cwiczenia przygotowujace
Z Ćwiczenia 26.04.2008, Programowanie
PROGRAM CWICZEN Z CHEMII ORGANICZNEJ BIOLOGIA 2010 2011
Program ćwiczeń z Makroekonomii II, I rok MSU, makro
Program Cwiczenia Eop
!Program ćwiczeń laboratoryjnych 2012id 602
2014 04 konspekt-final, Różne, Przygotowanie do ŚDM w Krakowie 2016 rok, Grudzień 2013 rok, Styczeń
Program ćwiczeń laboratoryjnych
program cwiczenia 2008 2009 lekarski[1]
program-cwiczen-studia-dzienne
Specjalne ćwiczenia przygotowawcze stosowane przy nauce pływania kraul na grzbiecie
BYTP0 PB1 Program cwiczen
Program ćwiczeń
IMiR-program cwiczen, MiBM, Nauczka, 2 semstr, elektrotechnika
program-cwiczen-studia-zaoczne
04 Ćwi kilka ćwiczeń, 008. ZAJĘCIA ARTYSTYCZNE W GIMNAZJUM, 123. EMISJA I HIGIENA GŁOSU

więcej podobnych podstron