[lekcja 22] Pętla for Kurs C++ » Poziom 2

background image

Strona 1

[lekcja] Pętla for | Kurs C++ » Poziom 2

2011-11-12 17:15:20

http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-for/294

Darmowe kursy Online

»

Kurs C++

»

Poziom 2

Autor: Piotr Szawdyński

Pętla for

[lekcja]

Rozdział 22. Omówienie pętli

for

.

Kolejny rozdział, kolejne wyzwanie. Tym razem zajmiemy się omówieniem pętli

for

. Pętle w programowaniu są najpotężniejszym

narzędziem w ręku programisty. Na chwilę obecną powinieneś umieć posługiwać się jednym rodzajem pętli oraz rozumieć ich zasadę

działania - znasz już bowiem pętlę

do

...

while

, którą powinieneś rozwiązywać wszystkie dotychczasowe zadania.

Za pomocą pętli

for

możemy wykonywać dokładnie te same rzeczy co za pomocą znanej nam pętli

do

...

while

. Znajomość działania

wszystkich pętli ułatwia znacznie czytanie kodu - różnią się one bowiem drobnymi detalami, które sprawiają, że każda pętla jest znacznie

wygodniejsza od pozostałych w określonych sytuacjach.

Składnia pętli for

Skoro już wiesz jaka idea przyświeca różnym rodzajom pętli to możemy teraz zapoznać się ze składnią pętli for:

C/C++

for

(

_A_

;

_B_

;

_C_

)

_D_

;

//lub:

for

(

_A_

;

_B_

;

_C_

)

{

//blok instrukcji

}

Budowa pętli

for

jak łatwo można zauważyć jest podzielona na cztery części. Są to:

nadawanie początkowych wartości zmiennym (oznaczona wyżej jako _A_);
warunek kończący pętlę for (oznaczony jako _B_);
zwiększenie (zmniejszenie) licznika pętli (_C_);
powtarzana instrukcja (_D_) bądź blok instrukcji.

Przykład użycia pętli for

Skoro teorię już znamy to zobaczmy teraz jak pętle for wyglądają w praktyce:

C/C++

int

i

;

for

(

i

=

1

;

i

<=

10

;

i

++ )

{

//Powtarzany blok instrukcji

}

Jeżeli mamy jedną instrukcję do wykonania w pętli to zapis może wyglądać następująco:

C/C++

int

i

;

for

(

i

=

1

;

i

<=

10

;

i

++ )

jedna_powtarzana_instrukcja

;

Jeżeli uważnie przeanalizowałeś powyższy kod oraz opis składni pętli

for

to powinieneś wiedzieć, że powtarzana instrukcja (bądź blok

instrukcji) wykona się 10 razy.

Typowe zastosowaniapętli for

Pętlę for używamy praktycznie zawsze, gdy znamy ilość danych, jaką mamy wczytać, wypisać lub zmienić. Jeśli chcemy policzyć średnią z

określonej liczby liczb, wczytać określoną ilość danych z pliku lub wypisać określoną ilość danych na ekran, pętla for jest do tego po

prostu idealna.

Inicjalizacjazmiennychw pętli for

background image

Strona 2

[lekcja] Pętla for | Kurs C++ » Poziom 2

2011-11-12 17:15:20

http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-for/294

W języku C++ w sekcji _A_ możliwe jest utworzenie tymczasowej zmiennej, która będzie widoczna tylko i wyłącznie wewnątrz pętli for.

Wspomniana własność jest bardzo wygodna dla programisty i korzystanie z niej w C++ jest praktycznie rzecz biorąc na porządku

dziennym. W praktyce kod, który został wcześniej zaprezentowany można zapisać następująco:

C/C++

for

(

int

i

=

1

;

i

<=

10

;

i

++ )

{

//Powtarzany blok instrukcji

}

for

(

int

i

=

1

;

i

<=

10

;

i

++ )

jedna_powtarzana_instrukcja

;

Pętla for zapisana przy pomocy pętli do ... while

Aby zobrazować różnicę w długości kodu napisanego za pomocą pętli

for

oraz pętli

do

...

while

zobaczmy jak będzie wyglądał kod

pętli

for

zapisany za pomocą pętli

do

...

while

:

C/C++

_A_

;

if

(

_B_

)

do

{

//powtarzany blok instrukcji (albo jedna instrukcja oznaczona jako _D_)

_C_

;

}

while

(

_B_

)

;

Trochę praktyki

Teoria ma to do siebie, że bywa trudna jeżeli nie jest poparta przykładami. Zobaczmy więc teraz kilka prostych przykładów zastosowania

pętli

for

.

Wypisywanietablicy pętlą for

C/C++

#include <iostream>

void

wypiszTablice

(

int

tablica

[]

,

int

ile

)

{

for

(

int

indeks

=

0

;

indeks

<

ile

;

indeks

++ )

std

::

cout

<<

tablica

[

indeks

] <<

std

::

endl

;

}

int

main

()

{

int

dane

[

5

]

;

dane

[

0

] =

123

;

dane

[

1

] =

321

;

dane

[

2

] =

333

;

dane

[

3

] =

222

;

dane

[

4

] =

111

;

wypiszTablice

(

dane

,

5

)

;

return

0

;

}

Wypisywanietablicy pętlą do ... while

C/C++

#include <iostream>

void

wypiszTablice

(

int

tablica

[]

,

int

ile

)

{

int

indeks

=

0

;

if

(

indeks

<

ile

)

do

{

std

::

cout

<<

tablica

[

indeks

] <<

std

::

endl

;

indeks

++

;

}

while

(

indeks

<

ile

)

;

}

int

main

()

{

background image

Strona 3

[lekcja] Pętla for | Kurs C++ » Poziom 2

2011-11-12 17:15:20

http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-for/294

int

dane

[

5

]

;

dane

[

0

] =

123

;

dane

[

1

] =

321

;

dane

[

2

] =

333

;

dane

[

3

] =

222

;

dane

[

4

] =

111

;

wypiszTablice

(

dane

,

5

)

;

return

0

;

}

Wczytywanieliczb pętlą for

C/C++

#include <iostream>

void

wypiszTablice

(

int

tablica

[]

,

int

ile

)

{

for

(

int

indeks

=

0

;

indeks

<

ile

;

indeks

++ )

std

::

cout

<<

tablica

[

indeks

] <<

std

::

endl

;

}

void

wczytajLiczby

(

int

tablica

[]

,

int

ile

)

{

for

(

int

indeks

=

0

;

indeks

<

ile

;

indeks

++ )

{

std

::

cout

<<

"Podaj liczbe "

<<(

indeks

+

1

) <<

": "

;

std

::

cin

>>

tablica

[

indeks

]

;

}

//for

}

int

main

()

{

int

dane

[

5

]

;

wczytajLiczby

(

dane

,

5

)

;

wypiszTablice

(

dane

,

5

)

;

return

0

;

}

Sumowanie liczb pętlą for

C/C++

#include <iostream>

void

wypiszTablice

(

int

tablica

[]

,

int

ile

)

{

for

(

int

indeks

=

0

;

indeks

<

ile

;

indeks

++ )

std

::

cout

<<

tablica

[

indeks

] <<

std

::

endl

;

}

int

sumujLiczby

(

int

tablica

[]

,

int

ile

)

{

int

oblicz

=

0

;

for

(

int

indeks

=

0

;

indeks

<

ile

;

indeks

++ )

oblicz

+=

tablica

[

indeks

]

;

return

oblicz

;

}

int

main

()

{

int

dane

[

5

]

;

dane

[

0

] =

11

;

dane

[

1

] =

5

;

dane

[

2

] =

7

;

dane

[

3

] =

8

;

dane

[

4

] =

2

;

wypiszTablice

(

dane

,

5

)

;

int

wynik

=

sumujLiczby

(

dane

,

5

)

;

std

::

cout

<<

"Suma liczb wynosi = "

<<

wynik

<<

std

::

endl

;

return

0

;

}

Zadanie domowe

Napisz sumowanie liczb pętlą

do

...

while

działające tak samo jak sumowanie wykonane za pomocą pętli

for

, które zostało

przedstawione w niniejszym rozdziale.

background image

Strona 4

[lekcja] Pętla for | Kurs C++ » Poziom 2

2011-11-12 17:15:20

http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-for/294

Architektserwisu: Piotr Szawdyński

© Wszelkieprawa zastrzeżone2005-2011

Napisz program, który za pomocą pętli

for

wypełni 20 elementową tablicę następującym ciągiem liczb: {1, 6, 11, ... , (1 + n*5)}.

Zawartość wypełnionej tablicy wypisz na ekran.
Napisz program który wykona wszystkie poniższe kroki w podanej kolejności:

Losuje 10 liczb z przedziału od 10 do 30 włącznie i zapisuje je do tablicy;
Wypisuje 10 wylosowanych liczb od początku do końca;
Wypisuje 10 wylosowanych liczb od końca do początku;
Znajduje najmniejszą oraz największą wylosowaną liczbę.
Wypisuje najmniejszą i największą wylosowaną liczbę.

Program nie może używać pętli innych niż pętla

for

.

Uwaga!
Wszystkie programy mają wykorzystywać funkcje. Przykładowo: kod funkcji main dla ostatniego programu powinien wyglądać
następująco:

C/C++

int

main

()

{

int

tablica

[

10

]

;

wylosujLiczby

(

tablica

,

10

)

;

wypiszTablice

(

tablica

,

10

)

;

wypiszTabliceOdTylu

(

tablica

,

10

)

;

int

iMin

=

znajdzMinimum

(

tablica

,

10

)

;

int

iMax

=

znajdzMaksimum

(

tablica

,

10

)

;

wypiszMinMax

(

iMin

,

iMax

)

;

return

0

;

}

Pozostałe programy powinny mieć zbudowaną funkcję main analogicznie do powyższego przykładu.

Wszystkieteksty są chronioneprawami autorskimi. Kopiowanielub rozpowszechnianietreści poza niniejszymserwisem jest

zabronione.

Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechnianiawłasnego tekstu wedle własnego uznania.


Wyszukiwarka

Podobne podstrony:
[lekcja 11] Operacje porównania Kurs C++ » Poziom 1
[lekcja 12] Operacje logiczne Kurs C++ » Poziom 1
[lekcja 7] Przestrzeń nazw std Kurs C++ » Poziom 1
[lekcja 1] Wybieramy środowisko pracy Kurs C++ » Poziom 1
[lekcja 10] Operacje matematyczne Kurs C++ » Poziom 1
[lekcja 9] Obsługa strumienia wejściowego Kurs C++ » Poziom 1
[lekcja 6] Obsługa strumienia wyjściowego Kurs C++ » Poziom 1
[lekcja 3] Uruchamiamy pierwszy program Kurs C++ » Poziom 1
[lekcja 18] Tablice jednowymiarowe Kurs C++ » Poziom 2
[lekcja 11] Operacje porównania Kurs C++ » Poziom 1
[lekcja 15] Pętla do while Kurs C++ » Poziom 2
[lekcja 20] Funkcje, a słowo kluczowe return Kurs C++ » Poziom 2
[lekcja 13] Instrukcja warunkowa if else Kurs C++ » Poziom 1
[lekcja 17] Funkcje pierwsze starcie Kurs C++ » Poziom 2
[lekcja 16] Pseudolosowe liczby całkowite Kurs C++ » Poziom 2
[lekcja 2] Podstawy programowania teoria i terminologia Kurs C++ » Poziom 1
[lekcja 21] Losowanie bez powtórzeń Kurs C++ » Poziom 2
[lekcja 19] Przekazywanie tablic jednowymiarowych do funkcji Kurs C++ » Poziom 2
[lekcja 4] Podstawy programowania w C++ Kurs C++ » Poziom 1

więcej podobnych podstron