Praktyczny kurs C++ za darmo - pętla FOR
Autorem artykułu jest Frycz Modrzewski
Pętla ta pozwala na wykonanie pewnego bloku instrukcji określoną ilość razy. Można powiedzieć, że jest to ulepszona wersja pętli while i do while, gdyż przez odpowiednio skonstruowany warunek pomijamy kod, który musieliśmy napisać, aby otrzymać ten sam efekt przy użyciu while i do while.
Pętla ta pozwala na wykonanie pewnego bloku instrukcji określoną ilość razy. Można powiedzieć, że jest to ulepszona wersja pętli while i do while, gdyż przez odpowiednio skonstruowany warunek pomijamy kod, który musieliśmy napisać, aby otrzymać ten sam efekt przy użyciu while i do while. Doskonale nadaje się do zapisywania i odczytywania danych z tablic (lekcja 8), a tablice to niesamowicie przydatna zmienne.
Jak napisać warunek w pętli FOR
Warunek w tej pętli jest nieco inny niż w pętli while i do while oraz funkcji if. Wyobraź sobie sytuacje, że chcesz wypisać na ekran liczby całkowite od 1 do 10. Zaczynamy od 0, kończymy na 10, a po każdym kroku zwiększamy liczbę o 1. W języku C++ wyglądałoby to tak (jako zmienną używam i):
i=1; //zaczynam od 1
i<=11; //kończymy na 10,
i++ // zwiększamy zmienną o 1
Warunek ten umieszczamy:
for(warunek) //TUTAJ
{
// instrukcje
}
A dokładniej, po zdefiniowaniu zmiennej i możemy napisać:
int i;
for(i=1; i<=10; i++) // tak wpisujemy warunek
{
cout<}
getch();
Przeanalizuj wpisany warunek. Kolejność jest ważna. Najpierw od ilu zaczynamy, następnie na ilu kończymy i co ile zwiększamy lub zmniejszamy zmienną. Pętla poniżej wypisze liczby od 10 do 1.
int i;
for(i=10; i>=1; i--) // wypisze liczby od 10 do 1
{
cout<}
getch();
Aby wypisać liczby np. co 10, nie trzeba pisać i=i+10. Wystarczy i+=10. Kolejny skrót, który warto zapamiętać, gdyż znacznie ułatwi on pracę.
int i;
for(i=0; i<=100; i+=10) // tak wpisujemy warunek
{
cout<}
getch();
Granica wypisywania nie musi być narzucona. Możemy wczytać ją z klawiatury do zmiennej:
int i; // zmienna do zliczania
int granica; // tu zapiszemy naszą granicę
cout<<"Podaj granice wyliczania: "; // to już znamy
cin>>granica; // to też
for(i=0; i<=granica; i++) // używamy zmiennej zamiast liczby
{
cout<}
getch();
Dzięki pętli FOR znajdziemy z żądanego przedziału np.: liczby podzielne przez 3 lub przez 5:
int i; // zmienna do zliczania
int granica; // tu zapiszemy naszą granicę
cout<<"Podaj granice wyliczania: "; // to już znamy
cin>>granica; // to też
for(i=0; i<=granica; i++) // używamy zmiennej zamiast liczby
{
if((i%3)==0 || (i%5)==0) // warunek na podzielność liczby przez 3 lub 5.
{
cout< }
}
getch();
lub znaleść dzielniki zadanej liczby:
int i; // zmienna do zliczania
int liczba; // tu zapiszemy naszą liczbę
cout<<"Podaj liczbe: "; // to już znamy
cin>>liczba; // to też
for(i=1; i<=liczba; i++) // zliczamy od 1 do wartości liczba
{
if((liczba%i)==0) // warunek na podzielność podanej liczby przez aktualną wartość i.
{
cout< }
}
getch();
Zliczamy od 1 bo nie można dzielić przez 0. Robilibyśmy to, gdyby i początkowo miało wartość 0, a wtedy przy sprawdzeniu warunku na podzielność program odmówiłby posłuszeństwa. Kolejnym, jednym z wielu, zastosowaniem jest obliczanie silni (pominiemy wartość 0):
int i; // zmienna do zliczania
int liczba; // tu zapiszemy naszą liczbę
long long int silnia=1; //a tu – wartość silni, początkowo 1
// Uwaga – zmodyfikowany typ zmiennej
cout<<"Podaj liczbe wieksza od 0: "; // to już znamy
cin>>liczba; // to też
for(i=1; i<=liczba; i++) // zliczamy od 1 do wartości liczba
{
silnia=silnia*i; // mnożymy aktualną wartość silnia przez i
}
cout<<"Silnia z liczby "<
getch();
Wartość silni początkowo wynosi 1.
UWAGA: wprowadziłem typ zmiennej long long int. To wciąż jest stary, dobry i sprawdzony int tylko mogący pomieścić zdecydowanie większe liczby. Zwykły int poprawnie podaje silnie z liczby 16. Z 17 silnia jest ujemna. Natomiast zmodyfikowaniu typu spokojnie możemy obliczać silnie nawet z 25.
Wypisywanie liczb podzielnych przez 4 lub 7, obliczanie silni, średniej – to są problemy, którymi masowo zamęcza się studentów pierwszego roku informatyki i nie tylko. Ja pokazałem najprostsze algorytmy, jedynie do przeanalizowania, bo na razie nie ma potrzeby uczenia się ich. Najszersze zastosowanie pętli FOR już w następnej części (lekcja 8)
Więcej na Praktyczny kurs CPP
Artykuł pochodzi z serwisu www.Artelis.pl
Brak komentarzy:
Prześlij komentarz