R1zBjRDHKkAtJ
Obraz zawiera poukładanie klocki z nadrukowanymi liczbami. Grafika dekoracyjna.

Programowanie obliczeń w języku Python

Źródło: Susan Holt Simpson, dostępny w internecie: unsplash.com [dostęp 2.04.2024], domena publiczna.

Algorytm wyodrębniania cyfr z liczby

Problem

Dana jest liczba naturalna. Wyodrębnij jej cyfry i wypisz je na ekranie, zaczynając od cyfry jedności (tzw. najmniej znaczącej cyfry).

Specyfikacja problemu:

Dane:

  • a – liczba naturalna

Wynik:

  • kolejne cyfry liczby; na początku powinna znajdować się najmniej znacząca cyfra

Analiza problemu

Najmniej znaczącą cyfrę danej liczby naturalnej otrzymamy, obliczając resztę z dzielenia tej liczby przez liczbę 10. Jeżeli w kolejnym kroku podzielimy tę liczbę całkowicie przez 10, to otrzymamy liczbę 10 razy mniejszą (usuniemy cyfrę jedności, a cyfra dziesiątek pierwotnej liczby stanie się cyfrą jedności). Obliczając resztę z dzielenia przez 10 tak powstałej liczby otrzymamy kolejną najmniej znaczącą cyfrę. W ten sposób możemy wyodrębnić wszystkie cyfry.

Przykład 1

Schemat blokowy algorytmualgorytmalgorytmu wyodrębniania cyfr liczby naturalnej.

RzYdhl9DLBmMK
Schemat blokowy przedstawia działanie algorytmu wyodrębniania cyfr liczby naturalnej.

W schemacie wykorzystaliśmy operatory div oraz mod.

Operator div to operator dzielenia całkowitego.

Operator mod to operatora obliczania reszty z dzielenia (modulo).

Przeanalizujmy algorytmalgorytmalgorytm zapisany za pomocą schematu blokowego i wykonajmy przykładowe obliczenia dla liczby 8394:

  1. Wczytujemy liczbę naturalną a.

  2. Przypisujemy do liczby b wartość liczby a.

  3. Obliczamy wartość reszty z dzielenia liczby b przez 10. Obliczoną wartość przypisujemy do p.

  4. Wypisujemy wartość p.

  5. Dzielimy bez reszty b przez 10. Wynik przypisujemy do zmiennej q.

  6. Sprawdzamy, czy q jest większe niż 0.

  7. Jeśli tak, przypisujemy b wartość q i wracamy do kroku 3. Jeśli nie, przechodzimy do kroku 8.

  8. Kończymy działanie algorytmu.

Prześledźmy działanie algorytmu dla a = 8394.

 Krok

a

b

p

q

 0

 8394

a = 8394

 8394 mod 10 = 4

 8394 div 10 = 839 

 1

 8394

q = 839

 839 mod 10 = 9

 839 div 10 = 83

 2

 8394

q = 83

 83 mod 10 = 3

 83 div 10 = 8

 3

 8394

q = 8

 8 mod 10 = 8

 8 div 10 = 0

 4

 8394

q = 0

Wypisane cyfry to: 4 9 3 8.

Przykład 2

Przykładowy program w języku ScratchScratchScratch, który rozwiązuje problem wyodrębniania cyfr liczby podanej przez użytkownika

R1YsrpWeASMsQ
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Ważne!

W języku Scratch nie ma bloku dopóki. W przypadku zaprezentowanego algorytmu zastosujemy konstrukcję powtarzaj aż z warunkiem liczba równe 0. Da to taki sam efekt.

W języku Scratch dzielenie całkowite realizujemy za pomocą następującej konstrukcji:

R1FbnNzjzQAXj
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Inna możliwość to zastosowanie konkretnego bloku odpowiedzialnego za obliczenie podłogi (blok odpowiada operacji liczba div 10):

RKC3ybd3DbBV5
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

W języku Python pętlę dopóki realizujemy za pomocą następującej konstrukcji:

Linia 1. while liczba zamknij nawias ostrokątny 0 dwukropek kratka dopóki liczba zamknij nawias ostrokątny 0. Linia 2. kratka blok kodu wewnątrz pętli. Linia 3. liczba znak równości liczba prawy ukośnik prawy ukośnik 10 kratka dzielenie całkowite otwórz nawias okrągły div zamknij nawias okrągły.

Zapoznaj się z filmem, który demonstruje działanie programu dla liczby podanej przez użytkownika:

R14O0qQYxFrHn
Animacja prezentuje działanie programu z zastosowaniem algorytmu wyodrębniania

Program zapisany w języku Scratch 3:

R1HBwe94pAq90

Plik do pobrania z przygotowanym programem.

Plik ZIP o rozmiarze 42.13 KB w języku polskim

Kod w języku Python:

Linia 1. liczba znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Podaj liczbę naturalną dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 2. print otwórz nawias okrągły cudzysłów Podana przez użytkownika liczba to dwukropek cudzysłów przecinek liczba zamknij nawias okrągły. Linia 3. while liczba zamknij nawias ostrokątny 0 dwukropek. Linia 4. cyfra znak równości int otwórz nawias okrągły liczba procent 10 zamknij nawias okrągły. Linia 5. print otwórz nawias okrągły cudzysłów Reszta z dzielenia liczby cudzysłów przecinek liczba przecinek cudzysłów przez 10 to kolejna cyfra dwukropek cudzysłów przecinek cyfra zamknij nawias okrągły. Linia 6. liczba znak równości int otwórz nawias okrągły otwórz nawias okrągły liczba minus cyfra zamknij nawias okrągły prawy ukośnik 10 zamknij nawias okrągły. Linia 7. print otwórz nawias okrągły cudzysłów Wynik dzielenia liczby przez 10 dwukropek cudzysłów przecinek liczba zamknij nawias okrągły.

Prezentacja multimedialna

R10Fglr1jVyTt

Cyfry i liczby

Cyfry to graficzne znaki, przy pomocy których zapisujemy liczby. Używane przez nas w Polsce cyfry to tzw. cyfry arabskie.

Cyfry w systemie dziesiętnym to: 0 1 2 3 4 5 6 7 8 9.

Liczby zbudowane z tych cyfr to np. 83, 985, 94561, 37421904.

RwJstX4zIG0h8
Źródło: Pixabay, domena publiczna.
Rp9rd2GF59sBe

Przykład wykorzystania algorytmu:
weryfikacja numerów PESEL

Numer PESEL to 11‑cyfrowy identyfikator numeryczny jednoznacznie identyfikujący określoną osobę fizyczną.

1,1
RJlrE11Ckmiko
Źródło: Domena Publiczna.

Budowa

Numer PESEL składa się z kilku bloków cyfr:

Zakodowana data urodzenia w formacie rok (dwie ostatnie cyfry) miesiąc (dwie cyfry – jeśli miesiąc oznaczamy liczbą jednocyfrową, umieszczamy przed nim 0) dzień (dwie cyfry – jeśli dzień oznaczamy liczbą jednocyfrową, umieszczamy przed nim 0): 6 cyfr.

Liczba porządkowa: 4 cyfry.

Zakodowana płeć: ostatnia cyfra liczby porządkowej (dziesiąta cyfra numeru PESEL).

Cyfry kontrolna: 1 cyfra.

Przykładowy nr PESEL

07320392154

ENIGMA – niemiecka maszyna szyfrująca

R10kYOJU3mqtm
Film nawiązujący do treści materiału.
R1JDYex2soxBk

Prawo pierwszej cyfry – wykrywanie nadużyć finansowych

R2R99V9Rdhn2v

Media społecznościowe – analiza treści

Analiza sentymentu to ocena emocji kryjących się za treściami internetowymi, niezależnie od tego, czy dotyczą artykułu, opinii czy komentarzy.

RJxp8xrGexX5O
Film nawiązujący do treści materiału

Przykład:

Jeśli wiele postów zawiera liczbę oznaczającą bieżący rok, może to wskazywać na rozmowy na temat aktualnych lub nadchodzących wydarzeń, takich jak wybory czy imprezy sportowe.

R1QM2EoCVeXNj

Algorytm i schemat blokowy – utrwalenie wiedzy

1,1

Krok 1

Pobieramy liczbę a.

Krok 2

Przypisujemy b <-- a.

Krok 3

Obliczamy p <-- b mod 10.

Krok 4

Wypisujemy p – to kolejna cyfra.

Krok 5

Obliczamy q <-- b div 10.

Krok 6

Sprawdzamy, czy q jest większe od 0, jeśli tak to wykonujemy b <-- q i powtarzamy kroki 3 do 5; jeśli q = 0, kończymy działanie algorytmu.

RzYdhl9DLBmMK
Schemat blokowy przedstawia działanie algorytmu wyodrębniania cyfr liczby naturalnej.

Jak stworzyć program w przeglądarce w edytorze Scratch

R1F2CZbfJNF64
Film nawiązujący do treści materiału

Scratch – rozbudowujemy program o opis grup cyfr

Roo5ApGXLPZqe
Film nawiązujący do treści materiału
RSlaN5lKekmYD

Scratch – pełna wersja programu

RMdX4AXAbPzdW
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RTukVZZj8ZdFJ

Kod w języku Python

RaWLop5BqPNCr
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Linia 1. liczba znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Podaj liczbę naturalną dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 2. Podaj liczbę naturalną dwukropek 82437. Linia 4. while liczba zamknij nawias ostrokątny 0 dwukropek. Linia 5. cyfra znak równości liczba procent 10 kratka modulo przecinek reszta z dzielenia. Linia 6. print otwórz nawias okrągły cudzysłów Najmniej znacząca cyfra liczby cudzysłów przecinek liczba przecinek cudzysłów to dwukropek cudzysłów przecinek cyfra zamknij nawias okrągły. Linia 7. liczba znak równości liczba prawy ukośnik prawy ukośnik 10 kratka dzielenie całkowite.
Głośność lektora
Głośność muzyki

Indeks górny Źródło: Adam Jurkiewicz, licencja: CC BY 3.0. Indeks górny koniec

Polecenie 1
RKfcIoSAlRjqB
Polecenie 2
RkauFS81tl4SO
Polecenie 3

Pobierz program:

R11K3nmyKyr12

Plik z programem do pobrania w języku Scratch.

Spakowany program w języku Scratch
Plik ZIP o rozmiarze 42.37 KB w języku polskim

Program wyodrębnia kolejne cyfry liczby, zaczynając od cyfry jedności.

ROmGJcLw4lGsj

Zestaw ćwiczeń interaktywnych

RnVwrlcfMDGO0
Ćwiczenie 1
Cyfra najmniej znacząca w pozycyjnym systemie liczbowym to: Możliwe odpowiedzi: 1. cyfra jedności, a więc ostatnia cyfra liczby, 2. pierwsza cyfra liczby, 3. cyfra o najmniejszej wartości, 4. cyfra o największej wartości
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.


R1MOYtRGesR8I
Ćwiczenie 2
W e-materiale przedstawiliśmy algorytm wyodrębniania cyfr liczby. Wskaż blok języka Scratch, który został użyty w tym algorytmie, aby otrzymać kolejną cyfrę liczby podanej przez użytkownika.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RoH1nvotDTdn1
Ćwiczenie 3
Ułóż w kolejności kroki, jakie należy wykonać, aby z liczby naturalnej wyodrębnić najmniej znaczącą (a więc ostatnią cyfrę)i wypisać ją na ekranie. Elementy do uszeregowania: 1. resztę z dzielenia całkowitego przez 10 przypisz do zmienna_cyfra, 2. wypisz na ekranie zmienna_cyfra, 3. przypisz liczbę do zmienna_liczba, 4. podziel tą zmienną całkowicie przez 10
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Ćwiczenie 4

Pobierz program:

RV6IQvoPG4lmI

Plik do pobrania z kodem programu w środowisku Scratch.

Plik ZIP o rozmiarze 42.27 KB w języku polskim
R17IuI20P0359
d
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Ćwiczenie 5

Pobierz program:

RV6IQvoPG4lmI

Plik do pobrania z kodem programu w środowisku Scratch.

Plik ZIP o rozmiarze 42.27 KB w języku polskim
RrHKhxOvrxJZN
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Ćwiczenie 6
R1Y60jthHCzNp
d
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.

Słownik

algorytm
algorytm

ściśle określony, skończony zestaw instrukcji, który służy do rozwiązania problemu lub wykonania zadania

pozycyjny system liczbowy
pozycyjny system liczbowy

system liczbowy, w którym wartość cyfry zależy od pozycji, na której jest zapisana

Scratch
Scratch

wizualny język programowania stworzony przez Mitchela Resnicka, profesora MIT; pierwsza publiczna wersja została wydana w 2007 roku

dzielenie całkowite
dzielenie całkowite

operacja dzielenia liczb całkowitych polegająca na odrzuceniu części ułamkowej wyniku