Login lub e-mail Hasło   

Praktyczny kurs C++ za darmo - pętla FOR

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,.
Wyświetlenia: 1.355 Zamieszczono 29/10/2010
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 (link lekcja 7), 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<<i<<endl;
}

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<<i<<endl;
}

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<<i<<endl;
}

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<<i<<endl;
}

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<<i<<endl;
  }
}

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<<i<<endl;
  }
}

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 "<<liczba<<" wynosi "<<silnia<<endl;

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)

Zadania
  1. Napisz program, który wypisze na ekran liczby od 0 do zadanej wartości.
  2. Napisz program, który wypisze na ekran liczby od zadanej wartości do zera i podzielne przez 4
  3. Napisz program, który wypisze na ekran liczby podzielne przez 3 i podzielne przez 5.
  4. Napisz program, który sprawdza, czy podana liczba jest liczbą pierwszą
  5. Napisz program, który z podanego przedziału (od jeden) wypisuje liczby pierwsze.

Podobne artykuły


111
komentarze: 32 | wyświetlenia: 61630
54
komentarze: 58 | wyświetlenia: 32985
54
komentarze: 68 | wyświetlenia: 31617
50
komentarze: 27 | wyświetlenia: 64094
49
komentarze: 18 | wyświetlenia: 65474
39
komentarze: 50 | wyświetlenia: 23666
39
komentarze: 30 | wyświetlenia: 29406
37
komentarze: 9 | wyświetlenia: 28927
36
komentarze: 37 | wyświetlenia: 24071
34
komentarze: 21 | wyświetlenia: 26591
33
komentarze: 78 | wyświetlenia: 12815
 
Autor
Artykuł

Powiązane tematy






Brak wiadomości


Dodaj swoją opinię
W trosce o jakość komentarzy wymagamy od użytkowników, aby zalogowali się przed dodaniem komentarza. Jeżeli nie posiadasz jeszcze swojego konta, zarejestruj się. To tylko chwila, a uzyskasz dostęp do dodatkowych możliwości!
 

© 2005-2018 grupa EIOBA. Wrocław, Polska