Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz  

Autor artykułu: mgr Jerzy Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Klasa II

Pętle

SPIS TREŚCI

Co to jest pętla?

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.


Na początek:  podrozdziału   strony 

Pętla warunkowa while

Instrukcja pętli while posiada następującą składnię:

while warunek: instrukcja

while warunek:
    ...
    blok instrukcji
    ...

Działanie jest następujące:

Komputer oblicza wartość warunku (warunek ten nazywamy warunkiem kontynuacji pętli). Jeśli warunek jest prawdziwy (ma wartość logiczną True lub jest różny od zera), to zostaje wykonana instrukcja (lub blok instrukcji z  odstępem – nazywamy to obiegiem pętli). Jeśli warunek jest fałszywy (ma wartość logiczną False lub jest równy zero), to  komputer pomija wykonanie instrukcji (lub bloku instrukcji) i przechodzi do następnej instrukcji w programie. Po wykonaniu instrukcji/bloku (czyli po wykonaniu obiegu pętli) komputer wraca do sprawdzenia wartości warunku i cały proces się powtarza. Pętla while (ang. podczas gdy, dopóki...) wykonuje obiegi dotąd, aż warunek stanie się fałszywy (lub równy 0). Wtedy następuje zakończenie pętli (nazywamy to wyjściem z pętli).

Uwaga: Jeśli warunek jest fałszywy przy wejściu do pętli, to pętla nie wykona ani jednego obiegu. Jeśli warunek jest zawsze prawdziwy, to pętla wykonuje obiegi w nieskończoność (pętla nieskończona). Wynika stąd wniosek, iż instrukcje wykonywane w trakcie obiegu muszą wpływać na warunek kontynuacji.

Oto kilka przykładów:

# Pętla while
# Liczby parzyste od 2 do 100
#----------------------------

i = 2
while i <= 100:
    print(i,end=" ")
    i += 2
print()

# Pętla while
# Suma liczb naturalnych
# od 1 do 100
#------------------------

s = 0
i = 1
while i <= 100:
    s += i
    i += 1
print("suma wynosi",s)

# Pętla while
# Silnia
#------------

n = int(input("n = "))
print()
i = 1
s = 1
while i <= n:
    s *= i
    print(i,"! = ",s,sep="")
    i += 1

Na początek:  podrozdziału   strony 

Zadania

1. Napisać program, który odczyta dwie liczby całkowite ab wprowadzone w dowolnym porządku, a następnie obliczy sumę wszystkich liczb nieparzystych zawartych pomiędzy nimi. Na przykład:

a = 8, b = 3
suma = 3 + 5 + 7 = 15
a = 3, b = 9
suma = 3 + 5 + 7 + 9 = 24

2. Napisać program, który odczyta granicę, a następnie wyznaczy pierwszą sumę kolejnych liczb naturalnych, która przekracza tę granicę. Na przykład:

granica = 17
suma = 1 + 2 + 3 + 4 + 5 + 6 = 21

3. Napisać program, który odczyta dwie liczby całkowite ab wprowadzone w dowolnym porządku, a następnie obliczy ilość liczb parzystych zawartych pomiędzy nimi. Na przykład:

a = 8, b = 3
liczby parzyste: ...2 4 6 8 10...  wynik = 3
a = 3, b = 11
liczby parzyste: ...2 4 6 8 10 12... wynik = 4

Na początek:  podrozdziału   strony 

Funkcja zakresu

Tworzenie ciągów liczb jest bardzo powszechne w programowaniu. W języku Python istnieje specjalna funkcja, która ułatwia to zadanie – range( ). Funkcja tworzy całkowite ciągi liczbowe na trzy sposoby.

range(stop)

Jeśli do funkcji range przekażemy tylko jeden parametr, to ciąg zacznie być tworzony od 0 co jeden w górę, aż osiągnie wartość stop. Wtedy generacja ciągu zostaje przerwana, a stop nie wejdzie do ciągu liczb:

range(10) : 0 1 2 3 4 5 6 7 8 9
range(5)  : 0 1 2 3 4

range(start,stop)

Jeśli do funkcji range przekażemy dwa parametry, to start określi pierwszą wartość ciągu, a stop określi wartość, przy której generacja się kończy:

range(2,10) : 2 3 4 5 6 7 8 9
range(3,6)  : 3 4 5

range(start,stop,krok)

Jeśli do funkcji range przekażemy trzy parametry, to start określi pierwszą liczbę w ciągu, stop określi wartość, po osiągnięciu lub przekroczeniu której generacja się kończy, a krok określi przyrost kolejno generowanych liczb:

range(2,10,2)  : 2 4 6 8
range(1,10,2)  : 1 3 5 7 9
range(5,21,5)  : 5 10 15 20
range(10,0,-1) : 10 9 8 7 6 5 4 3 2 1

Funkcję range wykorzystujemy do tworzenia pętli for w sposób następujący:

for zmienna in range(...): instrukcja

for zmienna in range(...):
    ...
    blok instrukcji
    ...

Instrukcja działa następująco:

Zmiennej w pętli zostają przypisywane kolejne wartości generowane przez funkcję range, po czym wykonywany jest obieg pętli. Pętla kończy się, gdy funkcja range wygeneruje liczbę wykraczającą poza zdefiniowany w niej zakres.

Oto kilka przykładów użycia:

# Przykład 1
n = int(input("n = "))
for i in range(n):
    print(i,end=" ")
print()
# Przykład 2
n = int(input("n = "))
for i in range(1,n,2):
    print(i,end=" ")
print()
# Przykład 3
n = int(input("n = "))
s = 0
for i in range(2,n,2):
    print(i,end=" ")
    s += i
print()
print("s =",s)

Na początek:  podrozdziału   strony 

P5

xxx

Na początek:  podrozdziału   strony 

P6

xxx

Na początek:  podrozdziału   strony 

P7

xxx

Na początek:  podrozdziału   strony 

P8

xxx

Na początek:  podrozdziału   strony 

P9

xxx

Na początek:  podrozdziału   strony 

P10

xxx

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 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.