2.5 Pętle i warunki

TEMAT: Pętle i warunki

  1. Zmiana wartości początkowej zmiennej,
  2. Stosowanie petli WHILE
  3. Stosowanie instrukcji warunkowej.

Podczas pisania programów spotykamy się z potrzebą zmiany wartości zmiennej. Na przykład, jeśli chcemy zwiększyć poprzednią wartość zmiennej temp o jakąś liczbę, możemy to zrobić na dwa sposoby.

  • Pierwszy nich to dodanie liczby do poprzedniej wartości zmiennej.
  • Drugi korzysta z operatora +=, który robi to samo.

 

Ćwiczenie:

Przeanalizuj poniższy skrypt, a następnie sprawdź, jak działają te operacje w przypadku odejmowania -=, mnożenia *= i dzielenia /=.

 

SUMA CYFR

Napiszmy program, który zsumuje cyfry z liczby czterocyfrowej dodatniej.

Mamy liczbę n=1048 (1+0+4+8 = 13)

Aby wyodrębnić poszczególne cyfry możemy wykorzystać dwie operacje:

  • modulo 10, wyodrębni ostatnią cyfrę
  • dzielenie całkowite przez 10 – usunięcie

Operację należy powtórzyć 4 razy:

1048 mod10 = 8 -> 1048//10 = 104

104 mod10 = 4 -> 104//10 = 10

10 mod10 = 0 -> 10//10 = 1

1 mod10 = 1 -> 1//10 = 0

 

 

PĘTLA WHILE

Jeżeli nie wiesz ile cyfr ma liczba najlepiej zastosować pętle WHILE.

Wykonuje ona ciąg poleceń dopóki  podany warunek jest prawdziwy:

Obliczanie i wypisywanie sumy cyfr obrazuje poniższy schemat blokowy:

Wczytujemy liczbę. Niech będzie równa 483284. Zmiennej suma należy przypisać wartość 0. Następnie należy sprawdzić, czy dana liczba jest większa od 0. Jeżeli nie to program powinien wypisać na ekranie aktualną sumę i zakończyć działanie. Jeżeli tak – a tak w tym przypadku – to należy wykonać następujące obliczenia:

  • suma = suma + suma liczba % 10 (suma = 0 + 483284 % 10 = 0 + 4 = 4)
  • liczba = liczba //10 (liczba 483284 //10 = 48328)

Na koniec należy sprawdzić, czy liczba jest większa od 0. Tak jest zatem:

  • suma = suma + liczba % 10 (suma = 4 + 48328 % 10 = 4 +8 = 12)
  • liczba = liczba //10 ((liczba 48328 //10 = 4832)

Czy liczba jest większa od 0??

…..

  • suma = suma + liczba % 10 (suma = 25 + 4 % 10 = 25 +4 = 29)
  • liczba = liczba //10 ((liczba 4 //10 = 0)

Czyli liczba jest większa od 0?

NIE

Suma cyfr liczby 483284 została wyznaczona i wynosi 29

DZIAŁANIA WARUNKOWE

Aby w zadaniu rozwiązywanym w Pythonie wybrać określoną akcję w zależności od wartości zmiennej lub wyrażenia, należy zastosować instrukcję warunkową. Instrukcja ta składa się z trzech części: if (jeżeli), elif (jeżeli natomiast) oraz else (w przeciwnym przypadku). Tylko pierwsza z nich jest obowiązkowa.

Ćwiczenie:

Napisz poniższy program i uruchom go dla trzech różnych wartości liczbowych zmiennej liczba (dodatnia, ujemna i zero). Sprawdź poprawność komunikatów.

Znak równości =oznacza przypisanie (nadanie wartości) podwójny znak równości ==oznacza porównanie (sprawdzenie czy wartości są sobie równe), a znak równości poprzedzony wykrzyknikiem != służy do sprawdzenia, czy wartości nie są sobie równe.

 

ĆWICZENIE

Napisz program, który dla podanej liczby wyświetli napis, parzysta, jeśli jest parzysta a w przeciwnym przypadku – napis nieparzysta.

 

ZADANIE DOMOWE

Napisz program, który dla podanej liczby całkowitej wypisze komunikat, czy podana liczba jest podzielna przez 3.