Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2025 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Materiały dla klasy II

Pętla warunkowa while

SPIS TREŚCI

Pętla

Link do kompilatora C++:

https://www.programiz.com/cpp-programming/online-compiler/

Pętla (ang. loop) to cykliczne powtarzanie wykonywania wybranej instrukcji lub grupy instrukcji w programie. Obiegiem pętli (ang. loop pass) nazywamy pojedynczy cykl wykonania powtarzanej instrukcji lub grupy instrukcji. Pętla warunkowa (ang. conditional loop) wykonuje powtarzanie obiegów w zależności od wybranego warunku.


do podrozdziału  do strony 

Pętla typu while

Link do kompilatora C++:

https://www.programiz.com/cpp-programming/online-compiler/

while(warunek) instrukcja;
while      - słowo kluczowe języka C++ oznaczające instrukcję pętli warunkowej
warunek    - dowolne wyrażenie arytmetyczne. Warunek jest prawdziwy (true), jeśli ma wartość różną od zera. Warunek jest fałszywy (false), jeśli ma wartość zero.
instrukcja - powtarzana w pętli instrukcja.

Pętla typu while działa następująco. Na początku każdego obiegu komputer oblicza wartość warunku. Jeśli wynik jest różny od zera, to zostaje wykonana instrukcja i komputer rozpoczyna nowy obieg od ponownego obliczenia wartości warunku. Jeśli warunek  ma wartość równą zero, instrukcja w pętli nie zostaje wykonana i pętla kończy działanie.

// Kolejne liczby naturalne od 1 do 100
//-------------------------------------

#include <iostream>

using namespace std;

int main()
{
    int i;

    i = 1;

    while(i <= 100) cout << i++ << " ";

    cout << "\nKONIEC\n";

    return 0;
}

Ponieważ warunek  jest sprawdzany na początku każdego obiegu pętli przed wykonaniem instrukcji zawartej w pętli, to jeśli jest on już od początku fałszywy, pętla nie wykona ani jednego obiegu.

// Fałszywy warunek
//-----------------

#include <iostream>

using namespace std;

int main()
{
    int i;

    i = 101;

    while(i <= 100) cout << i++ << " ";

    cout << "\nKONIEC\n";

    return 0;
}

Przykładowe programy:

// Kolejne liczby parzyste od 2 do n
//----------------------------------

#include <iostream>

using namespace std;

int main()
{
    int i,n;

    cin >> n;

    i = 2;

    while(i <= n)
    {
        cout << i << " ";
        i += 2;
    }

    cout << endl;

    return 0;
}
// Kolejne liczby nieparzyste od 2 do n
//-------------------------------------

#include <iostream>

using namespace std;

int main()
{
    int i,n;

    cin >> n;

    i = 1;

    while(i <= n)
    {
        cout << i << " ";
        i += 2;
    }

    cout << endl;

    return 0;
}
// Sumy kolejnych liczb od 1 do n
//-------------------------------

#include <iostream>

using namespace std;

int main()
{
    int i,n,s;

    cin >> n;

    i = 1; s = 0;

    while(i <= n)
    {
        s += i++;
        cout << s << endl;
    }

    return 0;
}

Zadania do lekcji

Link do kompilatora C++:

https://www.programiz.com/cpp-programming/online-compiler/

Napisać programy, które wczytują liczbę n, po czym wyświetlają n kolejnych wyrazów następujących ciągów liczbowych:

  1. 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 ...
  2. 1 2 3 4 3 2 1 2 3 4 3 2 1 ...
  3. 1 -2 3 -4 5 -6 7 -8 ...
  4. 5 4 3 2 1 0 5 4 3 2 1 0 ...
  5. 1 2 4 8 16 32 64 128 256 ...

Dodatkowo program powinien na końcu wypisać sumę tych n wyrazów.


Zadania domowe

Link do kompilatora C++:

https://www.programiz.com/cpp-programming/online-compiler/

Na podstawie programów z lekcji napisz program, który odczyta trzy liczby: dwie rzeczywiste a1 i a2 oraz jedną całkowitą n. Liczby a1 i a2 są dwoma pierwszymi wyrazami ciągu arytmetycznego, a n oznacza liczbę wyrazów do wyświetlenia. Ciąg arytmetyczny tworzą kolejne liczby, które różnią się od siebie o stałą wartość zwaną przyrostem d:

d = a2 - a1

Kolejne wyrazy ciągu mają postać:

(a1 + 0·d)  (a1 + 1·d)  (a1 + 2·d)  (a1 + 3·d) ...

Twój program po wczytaniu danych wejściowych ma obliczyć przyrost d, a następnie wypisać w kolejnych wierszach n wyrazów zadanego ciągu z dokładnością 4 cyfr po przecinku.

Na przykład dla danych wejściowych 0.5  1.0  7 program powinien wypisać:

0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000

Gotowy program po uruchomieniu i sprawdzeniu prześlij w treści listu na adres jerzy.walaszek@i-lo-tarnow.pl . W temacie listu wpisz swoje imię, nazwisko, klasę i kod CW6. Czas oddania zadania mija w dniu poprzedzającym następne zajęcia.


Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2025 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.