Lekcja usunięta zgodnie z podstawą programową z 2024 r.

Treści usunięte z lekcji zgodnie z podstawą programową
z 2024 r. sprawdź w e-booku podręcznika na eduranga.pl.

FilmProgramowanie w Pythonie. Algorytmy zachłanne. Wiele monet

Film omawia stosowanie algorytmów zachłannych na przykładzie wydawania reszty przy użyciu minimalnej liczby monet.

Film 1Sortowanie bąbelkowe, przez wstawianie i przez prosty wybór

W filmie umówiono trzy podstawowe algorytmy sortowania (bąbelkowe, przez wstawianie i przez prosty wybór) oraz przedstawiono ich działanie na przykładach.

 karty © Francesco Abrignani/Shutterstock.com

 

Film 2Programowanie w Pythonie. Porządkowanie przez proste wybieranie

Film powtórzeniowy, prezentujący sortowanie przez proste wybieranie realizowane w Pythonie.

Ćwiczenie 0

Zdefiniuj funkcję trzy(a, b, c), której wynikiem jest największa z trzech liczb podanych jako parametr. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji trzy(1, 9, 12) jest 12.
  • Wynikiem funkcji trzy(13, 4, 12) jest 13.

Wskazówka
Na początku za największą liczbę przyjmuje się pierwszą z trzech liczb podanych jako parametr. Następnie bada się, czy druga z liczb jest większa od niej, jeśli tak, to za największą przyjmuje się drugą liczbę. Następnie bada się, czy trzecia z liczb jest większa od niej, jeśli tak, to za największą przyjmuje się trzecią liczbę.

# zdefiniuj funkcję def trzy(a, b, c): pass # testy print(trzy(1, 9, 12)) print(trzy(13, 4, 12))
Wynikiem funkcji trzy(10, 10, 10) jest 10.
testResult = trzy(10, 10, 10)==10
10
trzy(10, 10, 10)
Wynikiem funkcji trzy(112, 99, 112) jest 112.
testResult = trzy(112, 99, 112)==112
112
trzy(112, 99, 112)
Wynikiem funkcji trzy(456, 456, 455) jest 456.
testResult = trzy(456, 456, 455)==456
456
trzy(456, 456, 455)
Rozwiąż ćwiczenie

Film 1Programowanie w Pythonie. Badanie własności liczb całkowitych. Liczby pierwsze

W filmie omówiono algorytm sprawdzający, czy dana liczba jest pierwsza, oraz pokazano jego implementację.

Film 2Programowanie w Pythonie. Suma dzielników liczby

Film prezentuje zagadnienie złożoności czasowej algorytmu na przykładzie badania własności liczb całkowitych, a konkretnie badania sumy dzielników danej liczby.

Ćwiczenie 0

Zdefiniuj funkcję czy_parzysta(n), której wynikiem jest True w przypadku, gdy liczba podana jako parametr jest parzysta, lub False, gdy jest nieparzysta. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_parzysta(1) jest False.
  • Wynikiem funkcji czy_parzysta(2) jest True.

Wskazówka
Zauważ, że algorytm sprawdzania parzystości liczby opiera się na badaniu reszty z dzielenia liczby przez 2. Jeśli ta reszta równa jest 0, to liczba jest parzysta, w przeciwnym wypadku – nieparzysta.

# zdefiniuj funkcję def czy_parzysta(n): pass # testy print(czy_parzysta(1)) print(czy_parzysta(2))
Wynikiem funkcji czy_parzysta(8) jest True.
testResult = czy_parzysta(8)==True
True
czy_parzysta(8)
Wynikiem funkcji czy_parzysta(13) jest False.
testResult = czy_parzysta(13)==False
False
czy_parzysta(13)
Wynikiem funkcji czy_parzysta(2468086420) jest True.
testResult = czy_parzysta(2468086420)==True
True
czy_parzysta(2468086420)
Rozwiąż ćwiczenie

FilmyProgramowanie w Pythonie – filmy powtórzeniowe

Filmy

Prezentacja 1Sposoby przedstawiania algorytmów

Prezentacja omawia zapis algorytmu za pomocą języka naturalnego, w postaci listy kroków (pseudokodu), schematu blokowego i programu.

Prezentacja 2Python – powtórzenie

Prezentacja przedstawia najważniejsze konstrukcje stosowane w języku Python.

PlanszaPython – podstawowe polecenia

Plansza zawiera podstawowe operatory działań i porównania oraz polecenia.

Ćwiczenie 0

Przećwicz posługiwanie się pętlą while. Zdefiniuj funkcję ile_cyfr(liczba), której wynikiem będzie liczba cyfr danej liczby. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_cyfr(123) jest 3.
  • Wynikiem funkcji ile_cyfr(17923) jest 5.
# zdefiniuj funkcję def ile_cyfr(liczba): pass # testy print(ile_cyfr(123)) print(ile_cyfr(17923))
Wynikiem funkcji ile_cyfr(12) jest 2
testResult = ile_cyfr(12)==2
2
ile_cyfr(12)
Wynikiem funkcji ile_cyfr(179233334) jest 9
testResult = ile_cyfr(179233334)==9
9
ile_cyfr(179233334)
Wynikiem funkcji ile_cyfr(1) jest 1
testResult = ile_cyfr(1)==1
1
ile_cyfr(1)
Rozwiąż ćwiczenie

Ćwiczenie 0

Zaopatrzeniowiec dostaje listę zakupów. Martwi się, aby nie przekroczyć dopuszczalnego udźwigu po załadowaniu samochodu. Zdefiniuj funkcję zakupy(c, m, z), której parametrami są liczby worków c – cukru, 
m – mąki i z – ziemniaków. Worki cukru ważą 2 kg, mąki 5 kg i ziemniaków 12 kg. Udźwig samochodu wynosi 500 kg. Wynikiem funkcji jest True, gdy samochód może przewieźć zakupy, lub False, gdy zostanie przekroczony udźwig. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zakupy(4, 9, 12) jest True.
  • Wynikiem funkcji zakupy(12, 34, 43) jest False.

Wskazówka
Należy znaleźć łączną wagę produktów, a potem porównać wynik z 500. Łączną wagę produktów obliczamy, mnożąc liczbę worków przez ich masy, potem poszczególne liczby dodajemy do siebie.

# zdefiniuj funkcję def zakupy(c, m, z): pass # testy print(zakupy(4, 9, 12)) print(zakupy(12, 34, 43))
Wynikiem funkcji zakupy(4, 9, 38) jest False.
testResult = zakupy(4, 9, 38)==False
False
zakupy(4, 9, 38)
Wynikiem funkcji zakupy(5, 9, 37) jest True.
testResult = zakupy(5, 9, 37)==True
True
zakupy(5, 9, 37)
Wynikiem funkcji zakupy(6, 9, 37) jest False.
testResult = zakupy(6, 9, 37)==False
False
zakupy(6, 9, 37)
Rozwiąż ćwiczenie

Ćwiczenie 1Czy liczba jest pierwsza?

Zdefiniuj funkcję logiczną czy_pierwsza(n), której parametrem jest liczba naturalna n większa od 1, a wynikiem wartość True, gdy jest ona liczbą pierwszą, albo False, gdy nią nie jest. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_pierwsza(11) jest True.
  • Wynikiem funkcji czy_pierwsza(99) jest False.
# zdefiniuj funkcję def czy_pierwsza(n): pass # testy print(czy_pierwsza(11)) print(czy_pierwsza(99))
Wynikiem funkcji czy_pierwsza(2) jest True.
testResult = czy_pierwsza(2)==True
True
czy_pierwsza(2)
Wynikiem funkcji czy_pierwsza(15555) jest False.
testResult = czy_pierwsza(15555)==False
False
czy_pierwsza(15555)
Wynikiem funkcji czy_pierwsza(7) jest True.
testResult = czy_pierwsza(7)==True
True
czy_pierwsza(7)
Rozwiąż ćwiczenie

Ćwiczenie 1Podział na rzędy

W międzynarodowej konferencji weźmie udział określona liczba gości z różnych krajów i określona liczba gospodarzy. Zaproszeni będą siedzieć w rzędach tak, aby każdy rząd był równoliczny i w każdym siedzieli albo tylko goście, albo tylko gospodarze. Jaka jest największa możliwa liczba osób w każdym rzędzie? Zdefiniuj funkcję rzad(goscie, gospodarze), której parametrami są liczba gości i gospodarzy, a wynikiem jest liczebność rzędu. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji rzad(72, 90) jest 18.
  • Wynikiem funkcji rzad(24, 36) jest 12.
# zdefiniuj funkcję def nwd(a, b): pass # zdefiniuj funkcję def rzad(goscie, gospodarze): pass # testy print(rzad(72, 90)) print(rzad(24, 36))
Wynikiem funkcji rzad(100, 100) jest 100.
testResult = rzad(100, 100)==100
100
rzad(100, 100)
Wynikiem funkcji rzad(51, 65) jest 1.
testResult = rzad(51, 65)==1
1
rzad(51, 65)
Wynikiem funkcji rzad(32, 48) jest 16.
testResult = rzad(32, 48)==16
16
rzad(32, 48)
Rozwiąż ćwiczenie

Ćwiczenie 2Podział na grupy

Na potrzeby warsztatów należy podzielić gości i gospodarzy na możliwie małe zespoły tak, by w każdym zespole była jednakowa liczba osób (gości i gospodarzy). Zdefiniuj funkcję ile(goscie, gospodarze), której parametrami są liczba gości oraz liczba gospodarzy, a wynikiem jest liczebność każdego zespołu. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile(56, 42) jest 7.
  • Wynikiem funkcji ile(25, 35) jest 12.
# zdefiniuj funkcję def nwd(a, b): pass # zdefiniuj funkcję def ile(goscie, gospodarze): pass # testy print(ile(56, 42)) print(ile(25, 35))
Wynikiem funkcji ile(100, 100) jest 2.
testResult = ile(100, 100)==2
2
ile(100, 100)
Wynikiem funkcji ile(51, 65) jest 116.
testResult = ile(51, 65)==116
116
ile(51, 65)
Wynikiem funkcji ile(32, 48) jest 5.
testResult = ile(32, 48)==5
5
ile(32, 48)
Rozwiąż ćwiczenie

Ćwiczenie 3Spotkania zespołów

Organizacją konferencji zajmują się dwa zespoły: do spraw programowych i do spraw metodycznych. Pierwszy spotyka się co x dni, drugi co y. Dziś spotkały się oba zespoły. Zdefiniuj funkcję kiedy(x, y), w której jako parametry będziesz podawać, co ile dni spotykają się zespoły, a wynikiem będzie liczba dni, które upłyną do następnego wspólnego spotkania obu zespołów. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji kiedy(6, 4) jest 12.
  • Wynikiem funkcji kiedy(9, 12) jest 36.
# zdefiniuj funkcję def nwd(a, b): pass # zdefiniuj funkcję def nww(a, b): pass # zdefiniuj funkcję def kiedy(x, y): pass # testy print(kiedy(6, 4)) print(kiedy(9, 12))
Wynikiem funkcji kiedy(2, 5) jest 10.
testResult = kiedy(2, 5)==10
10
kiedy(2, 5)
Wynikiem funkcji kiedy(3, 3) jest 3.
testResult = kiedy(3, 3)==3
3
kiedy(3, 3)
Wynikiem funkcji kiedy(4, 7) jest 28.
testResult = kiedy(4, 7)==28
28
kiedy(4, 7)
Rozwiąż ćwiczenie

Ćwiczenie 4Sprytne zakupy

Każdy gość powinien dostać taką samą liczbę długopisów, ołówków i flamastrów. Zdefiniuj funkcję flamastry(x, y, z), której parametrami są liczba długopisów w paczce (x), liczba ołówków w paczce (y) i liczba sztuk flamastrów w paczce (z), a wynikiem jest najmniejsza liczba opakowań flamastrów, które gospodarze powinni kupić, aby nic nie zostało. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji flamastry(6, 8, 10) jest 12.
  • Wynikiem funkcji flamastry(39, 26, 52) jest 3.
# zdefiniuj funkcję def nwd(a, b): pass # zdefiniuj funkcję def nww(a, b): pass # zdefiniuj funkcję def flamastry(x, y, z): pass # testy print(flamastry(6, 8, 10)) print(flamastry(39, 26, 52))
Wynikiem funkcji flamastry(5, 110, 15) jest 22.
testResult = flamastry(5, 110, 15)==22
22
flamastry(5, 110, 15)
Wynikiem funkcji flamastry(5, 10, 15) jest 2.
testResult = flamastry(5, 10, 15)==2
2
flamastry(5, 10, 15)
Wynikiem funkcji flamastry(7, 9, 7) jest 9.
testResult = flamastry(7, 9, 7)==9
9
flamastry(7, 9, 7)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Przećwicz posługiwanie się pętlą while. Zdefiniuj funkcję suma_cyfr(liczba), której wynikiem jest suma cyfr liczby. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji suma_cyfr(123) jest 6.
  • Wynikiem funkcji suma_cyfr(17923) jest 22.

Wskazówka
Zauważ, że algorytm sumowania cyfr opiera się na wyodrębnianiu cyfr od końca i kolejno ich sumowania. W każdym kroku wyliczana jest ostatnia cyfra jako reszta dzielenia przez 10 oraz liczba jest dzielona przez 10.

# zdefiniuj funkcję def suma_cyfr(liczba): pass # testy print(suma_cyfr(123)) print(suma_cyfr(17923))
Wynikiem funkcji suma_cyfr(12) jest 3.
testResult = suma_cyfr(12)==3
3
suma_cyfr(12)
Wynikiem funkcji suma_cyfr(179233334) jest 35.
testResult = suma_cyfr(179233334)==35
35
suma_cyfr(179233334)
Wynikiem funkcji suma_cyfr(1) jest 1.
testResult = suma_cyfr(1)==1
1
suma_cyfr(1)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Przećwicz posługiwanie się pętlą while. Zdefiniuj funkcję iledo6(lista), której wynikiem jest liczba liczb, które na liście są wpisane przed liczbą 6. Przyjmij, że 6 występuje co najmniej raz. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji iledo6([1, 2, 3, 4, 5, 6, 7]) jest 5.
  • Wynikiem funkcji iledo6([1, 6, 3, 5, 5, 6, 7]) jest 1.
# zdefiniuj funkcję def iledo6(lista): pass # testy print(iledo6([1, 2, 3, 4, 5, 6, 7])) print(iledo6([1, 6, 3, 5, 5, 6, 7]))
Wynikiem funkcji iledo6([6]) jest 0.
testResult = iledo6([6])==0
0
iledo6([6])
Wynikiem funkcji iledo6([1, 1, 1, 1, 5, 6, 6, 6, 6]) jest 5.
testResult = iledo6([1, 1, 1, 1, 5, 6, 6, 6, 6])==5
5
iledo6([1, 1, 1, 1, 5, 6, 6, 6, 6])
Wynikiem funkcji iledo6([0, 0, 0, 0, 6]) jest 4.
testResult = iledo6([0, 0, 0, 0, 6])==4
4
iledo6([0, 0, 0, 0, 6])
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 3

Przećwicz posługiwanie się pętlą while. Zdefiniuj funkcję suma(lista), której wynikiem jest suma liczb, które na liście są wpisane przed liczbą 0. Przyjmij, że 0 występuje co najmniej raz. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji suma([1, 2, 3, 4, 0, 6, 7]) jest 10.
  • Wynikiem funkcji suma([1, 2, 0, 4, 5, 6, 0]) jest 3.
# zdefiniuj funkcję def suma(lista): pass # testy print(suma([1, 2, 3, 4, 0, 6, 7])) print(suma([1, 2, 0, 4, 5, 6, 0]))
Wynikiem funkcji suma([2, 4, 11, 6, 5, 0, 7, 6]) jest 28.
testResult = suma([2, 4, 11, 6, 5, 0, 7, 6])==28
28
suma([2, 4, 11, 6, 5, 0, 7, 6])
Wynikiem funkcji suma([1, 1, 0, 1, 1, 6]) jest 2.
testResult = suma([1, 1, 0, 1, 1, 6])==2
2
suma([1, 1, 0, 1, 1, 6])
Wynikiem funkcji suma([0]) jest 0.
testResult = suma([0])==0
0
suma([0])
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 4

Przećwicz posługiwanie się pętlą while. Zdefiniuj funkcję sumap(lista), której wynikiem jest suma liczb parzystych, które na liście są wypisane przed liczbą 0. Przyjmij, że 0 występuje co najmniej raz. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji sumap([1, 2, 3, 4, 0, 6, 7]) jest 6.
  • Wynikiem funkcji sumap([2, 2, 2, 4, 2, 6, 0]) jest 18
# zdefiniuj funkcję def sumap(lista): pass # testy print(sumap([1, 2, 3, 4, 0, 6, 7])) print(sumap([2, 2, 2, 4, 2, 6, 0]))
Wynikiem funkcji sumap([2, 4, 11, 6, 5, 0, 7, 6]) jest 12.
testResult = sumap([2, 4, 11, 6, 5, 0, 7, 6])==12
12
sumap([2, 4, 11, 6, 5, 0, 7, 6])
Wynikiem funkcji sumap([1, 1, 0, 1, 1, 6]) jest 0.
testResult = sumap([1, 1, 0, 1, 1, 6])==0
0
sumap([1, 1, 0, 1, 1, 6])
Wynikiem funkcji sumap([0]) jest 0.
testResult = sumap([0])==0
0
sumap([0])
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 5

Przećwicz posługiwanie się pętlą while. Zdefiniuj funkcję sumanp(lista),  której wynikiem jest suma liczb nieparzystych, które na liście są wypisane przed liczbą 0. Przyjmij, że 0 występuje co najmniej raz. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji sumanp([1, 2, 3, 4, 0, 6, 7]) jest 4.
  • Wynikiem funkcji sumanp([2, 2, 2, 4, 2, 6, 0]) jest 0.
# zdefiniuj funkcję def sumanp(lista): pass # testy print(sumanp([1, 2, 3, 4, 0, 6, 7])) print(sumanp([2, 2, 2, 4, 2, 6, 0]))
Wynikiem funkcji sumanp([2, 4, 11, 6, 5, 0, 7, 6]) jest 16.
testResult = sumanp([2, 4, 11, 6, 5, 0, 7, 6])==16
16
sumanp([2, 4, 11, 6, 5, 0, 7, 6])
Wynikiem funkcji sumanp([1, 1, 0, 1, 1, 6]) jest 2.
testResult = sumanp([1, 1, 0, 1, 1, 6])==2
2
sumanp([1, 1, 0, 1, 1, 6])
Wynikiem funkcji sumanp([0]) jest 0.
testResult = sumanp([0])==0
0
sumanp([0])
Rozwiąż ćwiczenie

Pytania quizoweAlgorytm Euklidesa w praktyce

Twój wynik to: /3
  • Jeśli warunek pętli while zapisano jako x <= 10, przy czym w pętli tej nie jest modyfikowana wartość x, to ile razy wykona się pętla dla wartości początkowej x = 3?
  • Czy w algorytmie Euklidesa z odejmowaniem można zastąpić krok „Wynikiem jest a” krokiem „Wynikiem jest b”?
  • Czy przy dodawaniu dwóch ułamków zwykłych krok „Znajdź wspólny mianownik   m = NWW(b, d)” można zastąpić krokiem „Znajdź wspólny mianownik m = b * d”?

Ćwiczenie 2N-ta liczba pierwsza

Zdefiniuj funkcję pierwsza(n), której parametrem będzie liczba naturalna n, a wynikiem – n-ta liczba pierwsza. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji pierwsza(7) jest 17.
  • Wynikiem funkcji pierwsza(25) jest 97.
# zdefiniuj funkcję def czy_pierwsza(n): pass # zdefiniuj funkcję def pierwsza(n): pass # testy print(pierwsza(7)) print(pierwsza(25))
Wynikiem funkcji pierwsza(1) jest 2.
testResult = pierwsza(1)==2
2
pierwsza(1)
Wynikiem funkcji pierwsza(17) jest 59.
testResult = pierwsza(17)==59
59
pierwsza(17)
Wynikiem funkcji pierwsza(100) jest 541.
testResult = pierwsza(100)==541
541
pierwsza(100)
Rozwiąż ćwiczenie

Ćwiczenie 3Liczby bliźniacze

Liczby bliźniacze to liczby pierwsze różniące się o 2. W pierwszej setce jest osiem par takich liczb: 3 i 5, 5 i 7, 11 i 13, 17 i 19, 29 i 31, 41 i 43, 59 i 61, 71 i 73. Zdefiniuj funkcję blizniacze(n), której parametrem jest liczba naturalna n, a wynikiem pierwsza liczba z n-tej pary liczb bliźniaczych. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji blizniacze(3) jest 11.
  • Wynikiem funkcji blizniacze(7) jest 59.
# zdefiniuj funkcję def czy_pierwsza(n): pass # zdefiniuj funkcję def blizniacze(n): pass # testy print(blizniacze(3)) print(blizniacze(7))
Wynikiem funkcji blizniacze(1) jest 3.
testResult = blizniacze(1)==3
3
blizniacze(1)
Wynikiem funkcji blizniacze(2) jest 5.
testResult = blizniacze(2)==5
5
blizniacze(2)
Wynikiem funkcji blizniacze(10) jest 107.
testResult = blizniacze(10)==107
107
blizniacze(10)
Rozwiąż ćwiczenie

Ćwiczenie 4Suma dzielników liczby

Zdefiniuj funkcję suma_dzielnikow(n), której parametrem jest liczba naturalna n, a wynikiem – suma dzielników tej liczby. Sformułuj dwa algorytmy i porównaj szybkość działania każdego z nich dla różnych danych. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji suma_dzielnikow(7) jest 8.
  • Wynikiem funkcji suma_dzielnikow(16) jest 31.

Algorytm sprawdzający podzielność danej liczby przez kolejne liczby naturalne – od 1 do niej samej.

# zdefiniuj funkcję def suma_dzielnikow(n): pass # testy print(suma_dzielnikow(7)) print(suma_dzielnikow(16))
Wynikiem funkcji suma_dzielnikow(2) jest 3.
testResult = suma_dzielnikow(2)==3
3
suma_dzielnikow(2)
Wynikiem funkcji suma_dzielnikow(5) jest 6.
testResult = suma_dzielnikow(5)==6
6
suma_dzielnikow(5)
Wynikiem funkcji suma_dzielnikow(100) jest 217.
testResult = suma_dzielnikow(100)==217
217
suma_dzielnikow(100)
Rozwiąż ćwiczenie

Algorytm sprawdzający podzielność danej liczby przez kolejne dzielniki od 2 do pierwiastka z tej liczby.

from math import sqrt # zdefiniuj funkcję def suma_dzielnikow(n): pass # testy print(suma_dzielnikow(7)) print(suma_dzielnikow(16))
Wynikiem funkcji suma_dzielnikow(2) jest 3.
testResult = suma_dzielnikow(2)==3
3
suma_dzielnikow(2)
Wynikiem funkcji suma_dzielnikow(5) jest 6.
testResult = suma_dzielnikow(5)==6
6
suma_dzielnikow(5)
Wynikiem funkcji suma_dzielnikow(100) jest 217.
testResult = suma_dzielnikow(100)==217
217
suma_dzielnikow(100)
Rozwiąż ćwiczenie

Ćwiczenie 5Liczby zaprzyjaźnione

Liczby zaprzyjaźnione to dwie liczby naturalne, z których każda jest równa sumie dzielników właściwych drugiej liczby (np. suma dzielników właściwych liczby 220 wynosi 284, a suma dzielników właściwych liczby 284 – 220). Zdefiniuj funkcję zaprzyjaznione(n), której parametrem jest liczba naturalna n, a wynikiem – mniejsza liczba z n-tej pary liczb zaprzyjaźnionych. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zaprzyjaznione(1) jest 220.
  • Wynikiem funkcji zaprzyjaznione(3) jest 2620.
from math import sqrt # zdefiniuj funkcję def suma_dzielnikow_w(n): pass # zdefiniuj funkcję def zaprzyjaznione(n): pass # testy print(zaprzyjaznione(1)) print(zaprzyjaznione(3))
Wynikiem funkcji zaprzyjaznione(2) jest 1184.
testResult = zaprzyjaznione(2)==1184
1184
zaprzyjaznione(2)
Wynikiem funkcji zaprzyjaznione(5) jest 6232.
testResult = zaprzyjaznione(5)==6232
6232
zaprzyjaznione(5)
Wynikiem funkcji zaprzyjaznione(7) jest 12285.
testResult = zaprzyjaznione(7)==12285
12285
zaprzyjaznione(7)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Zdefiniuj funkcję parzyste(liczba1, liczba2), której parametrami są liczby całkowite dodatnie, przy czym liczba1 < liczba2, a ich różnica wynosi co najmniej 3. Wynikiem funkcji jest lista dwóch liczb – najmniejszej liczby parzystej większej od parametru liczba1 i największej liczby parzystej mniejszej od parametru liczba2. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji parzyste(4, 9) jest [6, 8].
  • Wynikiem funkcji parzyste(9, 12) jest [10, 10].
  • Wynikiem funkcji parzyste(14, 75) jest [16, 74].
# zdefiniuj funkcję def parzyste(liczba1, liczba2): pass # testy print(parzyste(4, 9)) print(parzyste(9, 12)) print(parzyste(14, 75))
Wynikiem funkcji parzyste(1,9999) jest [2, 9998].
testResult = parzyste(1,9999)==[2, 9998]
[2, 9998]
parzyste(1,9999)
Wynikiem funkcji parzyste(89898,89901) jest [89900, 89900].
testResult = parzyste(89898,89901)==[89900, 89900]
[89900, 89900]
parzyste(89898,89901)
Wynikiem funkcji parzyste(10,1000000) jest [12, 999998].
testResult = parzyste(10,1000000)==[12, 999998]
[12, 999998]
parzyste(10,1000000)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Zdefiniuj funkcję nieparzyste(n), której wynikiem jest liczba liczb nieparzystych podzielnych przez 7 nie większych od parametru n. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji nieparzyste(30) jest 2.
  • Wynikiem funkcji nieparzyste(35) jest 3.
  • Wynikiem funkcji nieparzyste(100) jest 7.
# zdefiniuj funkcję def nieparzyste(n): pass # testy print(nieparzyste(30)) print(nieparzyste(35)) print(nieparzyste(100))
Wynikiem funkcji nieparzyste(300) jest 21.
testResult = nieparzyste(300)==21
21
nieparzyste(300)
Wynikiem funkcji nieparzyste(999) jest 71.
testResult = nieparzyste(999)==71
71
nieparzyste(999)
Wynikiem funkcji nieparzyste(987621) jest 70544.
testResult = nieparzyste(987621)==70544
70544
nieparzyste(987621)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 3

Liczby lustrzane to takie dwie liczby, które są lustrzanym odbiciem, np.: 123 i 321, 79 i 97, 1245 i 5421. Jeżeli zapiszemy razem dowolną liczbę i jej lustrzane odbicie, np. 123321, to tak otrzymana liczba jest podzielna przez 11.

Na przykład:

123321 : 11 = 11211
7997 : 11 = 727
12455421 : 11 = 1132311

Zdefiniuj funkcję lustro_11(liczba), której parametrem jest liczba całkowita dodatnia, a wynikiem iloraz liczby i doklejonej do niej jej liczby lustrzanej przez 11. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji lustro_11(123) jest 11211 (ponieważ 123321 : 11 = 11211).
  • Wynikiem funkcji lustro_11(893) jest 81218 (ponieważ 893398 : 11 = 81218).
# zdefiniuj funkcję def lustro_11(liczba): pass # testy print(lustro_11(123)) print(lustro_11(893))
Wynikiem funkcji lustro_11(7) jest 7.
testResult = lustro_11(7)==7
7
lustro_11(7)
Wynikiem funkcji lustro_11(1482) jest 1347531.
testResult = lustro_11(1482)==1347531
1347531
lustro_11(1482)
Wynikiem funkcji lustro_11(947352) jest 86122932159.
testResult = lustro_11(947352)==86122932159
86122932159
lustro_11(947352)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 4

Zdefiniuj funkcję dwie(liczba), której wynikiem jest suma cyfr jedności i dziesiątek danej liczby powiększona o 1, gdy suma okazała się liczbą nieparzystą, lub zmniejszona o 1, gdy suma okazała się liczbą parzystą. Parametr liczba przyjmuje wartości z zakresu od 10 do 1 000 000. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji dwie(1284456) jest 12.
  • Wynikiem funkcji dwie(892339) jest 11.
# zdefiniuj funkcję def dwie(liczba): pass # testy print(dwie(1284456)) print(dwie(892339))
Wynikiem funkcji dwie(11) jest 1.
testResult = dwie(11)==1
1
dwie(11)
Wynikiem funkcji dwie(1221) jest 4.
testResult = dwie(1221)==4
4
dwie(1221)
Wynikiem funkcji dwie(3488677) jest 13.
testResult = dwie(3488677)==13
13
dwie(3488677)
Rozwiąż ćwiczenie

Zadanie 1Liczby czworacze

Liczby czworacze to liczby pierwsze mające postać: n, n + 2, n + 6 i n + 8. Zdefiniuj funkcję czworacze(n), której parametrem jest liczba naturalna n, a wynikiem – lista takich liczb czworaczych, w których pierwsza liczba jest większa od podanego parametru. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czworacze(9) jest [11, 13, 17, 19].
  • Wynikiem funkcji czworacze(150) jest [191, 193, 197, 199].
# zdefiniuj funkcję def czy_pierwsza(n): pass # zdefiniuj funkcję def czworacze(n): pass # testy print(czworacze(9)) print(czworacze(150))
Wynikiem funkcji czworacze(1) jest [5, 7, 11, 13].
testResult = czworacze(1)==[5, 7, 11, 13]
[5, 7, 11, 13]
czworacze(1)
Wynikiem funkcji czworacze(5) jest [11, 13, 17, 19].
testResult = czworacze(5)==[11, 13, 17, 19]
[11, 13, 17, 19]
czworacze(5)
Wynikiem funkcji czworacze(100) jest [101, 103, 107, 109].
testResult = czworacze(100)==[101, 103, 107, 109]
[101, 103, 107, 109]
czworacze(100)
Rozwiąż ćwiczenie

Zadanie 2Problem Collatza

Pierwsza liczba ciągu Collatza jest dowolną liczbą naturalną x, a każda kolejna wartość ciągu obliczana jest na podstawie poprzedniej według poniższych zasad:

  • jeśli poprzednia wartość była parzysta, to należy podzielić ją przez 2;
  • jeśli poprzednia wartość była nieparzysta, to należy pomnożyć ją przez 3 i dodać 1.


Przypuszcza się, że niezależnie od której liczby naturalnej zaczniemy, zawsze po pewnej skończonej liczbie kroków otrzymamy liczbę 1. (Udowodniono to dla liczb mniejszych niż kilka tryliardów).

Zdefiniuj funkcję collatz(x), której parametrem jest liczba naturalna x, czyli wartość początkowa ciągu liczb Collatza, a wynikiem – liczba kroków, po których w ciągu pojawi się liczba 1. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji collatz(10) jest 6.
  • Wynikiem funkcji collatz(15) jest 17.
# zdefiniuj funkcję def collatz(x): pass # testy print(collatz(10)) print(collatz(15))
Wynikiem funkcji collatz(1) jest 0.
testResult = collatz(1)==0
0
collatz(1)
Wynikiem funkcji collatz(2) jest 1.
testResult = collatz(2)==1
1
collatz(2)
Wynikiem funkcji collatz(20) jest 7.
testResult = collatz(20)==7
7
collatz(20)
Rozwiąż ćwiczenie

Zadanie 3Suma kwadratów cyfr

Polski matematyk Hugo Steinhaus zauważył, że jeśli zsumujemy kwadraty cyfr wybranej liczby naturalnej, a następnie będziemy sumować kwadraty cyfr kolejnych otrzymanych liczb, to w pewnym momencie zawsze otrzymamy 1 lub 4. Zdefiniuj funkcję suma_kwadratow(n), której wynikiem będzie suma kwadratów cyfr liczby podanej jako parametr. Przetestuj działanie dla liczby 123 i kilku innych liczb początkowych.

# zdefiniuj funkcję def suma_kwadratow(n): pass # testy print(suma_kwadratow(123)) print(suma_kwadratow(14)) print(suma_kwadratow(17))
Wynikiem funkcji suma_kwadratow(89) jest 145
testResult = suma_kwadratow(89) == 145
145
suma_kwadratow(89)
Wynikiem funkcji suma_kwadratow(145) jest 42
testResult = suma_kwadratow(145) == 42
42
suma_kwadratow(145)
Wynikiem funkcji suma_kwadratow(42) jest 20
testResult = suma_kwadratow(42) == 20
20
suma_kwadratow(42)
Wynikiem funkcji suma_kwadratow(20) jest 4
testResult = suma_kwadratow(20) == 4
4
suma_kwadratow(20)
Rozwiąż ćwiczenie

Pytania quizoweBadanie własności liczb całkowitych

Twój wynik to: /3
  • W jakim przedziale algorytm optymalny będzie szukał dzielników liczby 10 000?
  • Jak nazywa się algorytm znajdowania liczb pierwszych w podanym zakresie?
  • Co określa czasowa złożoność obliczeniowa?

Ćwiczenie 1Tworzenie listy i dodawanie do niej elementów

Przeanalizuj poniższy kod, odpowiedz na pytania, a następnie sprawdź swoje odpowiedzi
w edytorze.

  1. Jaki element i gdzie dodano do listy za pomocą polecenia w wierszu 2?
  2. Jak należy uzupełnić wiersz 3, aby na końcu listy wstawić liczbę –11?
  3. Jak poprawić zapis w wierszu 4, aby liczba 0 została wstawiona na początku listy, a liczba 23 na jej końcu?
  4. Jaki element i na której pozycji dodano do listy za pomocą polecenia w wierszu 5?
  5. Jaka lista zostanie wypisana na skutek polecenia w wierszu 6?
t = [1, 12, -3, 8] t.append(34) t = # uzupełnij zapis t = t + [0] + [23] t.insert(3, 5) print(t)
Rozwiąż ćwiczenie

Ćwiczenie 2Losowa lista liczb

Zdefiniuj funkcję losuj(rozmiar, od, do) służącą do generowania listy o podanej długości (rozmiar), której elementami są liczby losowe z podanego zakresu (od i do).

from random import randint # zdefiniuj funkcję def losuj(rozmiar, od, do): pass # testy print(losuj(16,1,10)) print(losuj(16,1,10)) print(losuj(16,1,10)) print(losuj(16,1,10))
Rozwiąż ćwiczenie

Ćwiczenie 3Bąbelek

Porównaj kolejne pary elementów listy (pierwszy z drugim, drugi z trzecim itd.). Jeśli pierwszy z nich jest większy niż drugi, to zamień je miejscami. Przeanalizuj dane (zauważ, że największa z liczb w wyniku znalazła się na końcu) i zdefiniowaną poniżej funkcję b(t), której parametrem jest lista liczb, a wynikiem – zmodyfikowana lista. Następnie znajdź i popraw błąd w skrypcie.

  • Wynikiem funkcji b([16, 5, 12, 3, 12]) jest [5, 12, 3, 12, 16].
  • Wynikiem funkcji b([1, 16, 18, 3, 16, 9, 9]) jest [1, 16, 3, 16, 9, 9, 18].
def b(t): for i in range(len(t) - 1): if t[i] < t[i + 1]: t[i], t[i + 1] = t[i + 1], t[i] return t #testy print(b([16, 5, 12, 3, 12])) print(b([1, 16, 18, 3, 16, 9, 9]))
Wynikiem funkcji b([6, 3, 15, 9, 2]) jest [3, 6, 9, 2, 15].
testResult = b([6, 3, 15, 9, 2])==[3, 6, 9, 2, 15]
[3, 6, 9, 2, 15]
b([6, 3, 15, 9, 2])
Wynikiem funkcji b([36, 3, 15, 9, 2]) jest [3, 15, 9, 2, 36].
testResult = b([36, 3, 15, 9, 2])==[3, 15, 9, 2, 36]
[3, 15, 9, 2, 36]
b([36, 3, 15, 9, 2])
Wynikiem funkcji b([6, 3, 15, 9, 2, 22]) jest [3, 6, 9, 2, 15, 22].
testResult = b([6, 3, 15, 9, 2, 22])==[3, 6, 9, 2, 15, 22]
[3, 6, 9, 2, 15, 22]
b([6, 3, 15, 9, 2, 22])
Wynikiem funkcji b([11, 16, 8, 33, 6, 8, 1]) jest [11, 8, 16, 6, 8, 1, 33].
testResult = b([11, 16, 8, 33, 6, 8, 1])==[11, 8, 16, 6, 8, 1, 33]
[11, 8, 16, 6, 8, 1, 33]
b([11, 16, 8, 33, 6, 8, 1])
Rozwiąż ćwiczenie

Ćwiczenie 4Sortowanie bąbelkowe

Zdefiniuj funkcję sort_b(t), której wynikiem jest podana jako parametr lista t, posortowana metodą bąbelkową w porządku rosnącym. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji sort_b([6, 3, 15, 9, 2]) jest [2, 3, 6, 9, 15].
  • Wynikiem funkcji sort_b([11, 16, 8, 33, 6, 8, 1]) jest [1, 6, 8, 8, 11, 16, 33].
# zdefiniuj funkcję def b(t): pass # zdefiniuj funkcję def sort_b(t): pass # testy print(sort_b([16, 5, 12, 3, 12])) print(sort_b([1, 16, 18, 3, 16, 9, 9]))
Wynikiem funkcji sort_b([0, 0, 1, 1, 2]) jest [0, 0, 1, 1, 2].
testResult = sort_b([0, 0, 1, 1, 2])==[0, 0, 1, 1, 2]
[0, 0, 1, 1, 2]
sort_b([0, 0, 1, 1, 2])
Wynikiem funkcji sort_b([4, 3, 2, 1, 0]) jest [0, 1, 2, 3, 4].
testResult = sort_b([4, 3, 2, 1, 0])==[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
sort_b([4, 3, 2, 1, 0])
Wynikiem funkcji sort_b([3, 51, 2, 17]) jest [2, 3, 17, 51].
testResult = sort_b([3, 51, 2, 17])==[2, 3, 17, 51]
[2, 3, 17, 51]
sort_b([3, 51, 2, 17])
Rozwiąż ćwiczenie

Ćwiczenie 5Wstawianie elementów

Zdefiniuj funkcję w(t, x), której parametrami są posortowana lista liczb t oraz liczba x, a wynikiem jest lista t
z liczbą x wstawioną w odpowiednim miejscu. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji w([6, 13, 15, 19, 22], 18) jest [6, 13, 15, 18, 19, 22].
  • Wynikiem funkcji w([1, 9, 12, 33, 46], 57) jest [1, 9, 12, 33, 46, 57].
  • Wynikiem funkcji w([-4, -2, 0, 2, 4], 0) jest [-4, -2, 0, 0, 2, 4].
# zdefiniuj funkcję def w(t, x): pass # testy print(w([6, 13, 15, 19, 22], 18)) print(w([1, 9, 12, 33, 46], 57)) print(w([-4, -2, 0, 2, 4], 0))
Wynikiem funkcji w([0, 1, 2, 3, 4], 5) jest [0, 1, 2, 3, 4, 5].
testResult = w([0, 1, 2, 3, 4], 5)==[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5]
w([0, 1, 2, 3, 4], 5)
Wynikiem funkcji w([2, 4, 6, 8, 10], 7) jest [2, 4, 6, 7, 8, 10].
testResult = w([2, 4, 6, 8, 10], 7)==[2, 4, 6, 7, 8, 10]
[2, 4, 6, 7, 8, 10]
w([2, 4, 6, 8, 10], 7)
Wynikiem funkcji w([11, 13, 26, 78], 5) jest [5, 11, 13, 26, 78].
testResult = w([11, 13, 26, 78], 5)==[5, 11, 13, 26, 78]
[5, 11, 13, 26, 78]
w([11, 13, 26, 78], 5)
Rozwiąż ćwiczenie

Ćwiczenie 6Sortowanie przez wstawianie

Uzupełnij definicję funkcji sort_w(t), której wynikiem jest podana jako parametr lista t, posortowana metodą przez wstawianie w porządku rosnącym. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji sort_w([6, 3, 15, 9, 2]) jest [2, 3, 6, 9, 15].
  • Wynikiem funkcji sort_w([11, 16, 8, 33, 6, 8, 1]) jest [1, 6, 8, 8, 11, 16, 33].
# zdefiniuj funkcję def w(t, x): pass def sort_w(t): pom = [t[0]] for i in range(1, len(t)): w(pom, "uzupełnij funkcję") return pom # testy print(sort_w([6, 3, 15, 9, 2])) print(sort_w([11, 16, 8, 33, 6, 8, 1]))
Wynikiem funkcji sort_w([0, 0, 1, 1, 2, 2]) jest [0, 0, 1, 1, 2, 2].
testResult = sort_w([0, 0, 1, 1, 2, 2])==[0, 0, 1, 1, 2, 2]
[0, 0, 1, 1, 2, 2]
sort_w([0, 0, 1, 1, 2, 2])
Wynikiem funkcji sort_w([4, 3, 2, 1, 0]) jest [0, 1, 2, 3, 4].
testResult = sort_w([4, 3, 2, 1, 0])==[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
sort_w([4, 3, 2, 1, 0])
Wynikiem funkcji sort_w([3, 51, 2, 17, 0]) jest [0, 2, 3, 17, 51].
testResult = sort_w([3, 51, 2, 17, 0])==[0, 2, 3, 17, 51]
[0, 2, 3, 17, 51]
sort_w([3, 51, 2, 17, 0])
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Zdefiniuj funkcję minimum(liczba), której wynikiem będzie najmniejsza cyfra liczby podanej jako parametr. Parametrem jest co najmniej dwucyfrowa liczba całkowita dodatnia. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem minimum(19) jest 1.
  • Wynikiem minimum(98989) jest 8.
# zdefiniuj funkcję def minimum(liczba): pass # testy print(minimum(19)) print(minimum(98989))
Wynikiem funkcji minimum(7777777777) jest 7.
testResult = minimum(7777777777)==7
7
minimum(7777777777)
Wynikiem funkcji minimum(9876543210) jest 0.
testResult = minimum(9876543210)==0
0
minimum(9876543210)
Wynikiem funkcji minimum(12345678987654321) jest 1.
testResult = minimum(12345678987654321)==1
1
minimum(12345678987654321)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Zdefiniuj funkcję ile_liczb(tab), której wynikiem jest liczba różnych liczb na liście podanej jako parametr. Parametrem jest niepusta lista co najwyżej 100 liczb z zakresu od 0 do 10. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_liczb([4, 1, 1, 4]) jest 2.
  • Wynikiem funkcji ile_liczb([6, 6, 3, 7, 1, 7, 4, 4, 0, 3]) jest 6.
# zdefiniuj funkcję def ile_liczb(tab): pass # testy print(ile_liczb([4, 1, 1, 4])) print(ile_liczb([6, 6, 3, 7, 1, 7, 4, 4, 0, 3]))
Wynikiem funkcji ile_liczb([7, 1, 4, 10, 8, 2, 4, 4, 8]) jest 6.
testResult = ile_liczb([7, 1, 4, 10, 8, 2, 4, 4, 8])==6
6
ile_liczb([7, 1, 4, 10, 8, 2, 4, 4, 8])
Wynikiem funkcji ile_liczb([6, 6, 6, 6, 6, 6, 6, 6, 6]) jest 1.
testResult = ile_liczb([6, 6, 6, 6, 6, 6, 6, 6, 6])==1
1
ile_liczb([6, 6, 6, 6, 6, 6, 6, 6, 6])
Wynikiem funkcji ile_liczb([1, 2, 4, 5, 7, 3, 6, 9, 8]) jest 9.
testResult = ile_liczb([1, 2, 4, 5, 7, 3, 6, 9, 8])==9
9
ile_liczb([1, 2, 4, 5, 7, 3, 6, 9, 8])
Rozwiąż ćwiczenie

Pytania quizoweSortowanie bąbelkowe i przez wstawianie

Twój wynik to: /3
  • W programie wykonano poniższe operacje.

    x = 5
    y = 3
    x = y
    y = x

    Ile wynoszą wartości zmiennych x i y ?

  • W programie zadeklarowano listę tab = [-3, 4, -12, 0, 3]. Jaką wartość będzie miała zmienna tab po operacji tab = tab + [2] ?
  • W programie zadeklarowano listę tab = [-3, 4, -12, 0, 3]. Jaką wartość ma element o indeksie 3 ?

Ćwiczenie 1Trzy monety

Dysponujesz nieograniczoną liczbą monet o nominałach 5, 3 i 1 i masz wydać resztę przy użyciu minimalnej liczby monet. Zdefiniuj funkcję trzy(kwota), której wynikiem będzie minimalna liczba monet potrzebnych do wydania kwoty podanej jako parametr. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji trzy(11) jest 3.
  • Wynikiem funkcji trzy(99) jest 21.
# zdefiniuj funkcję def trzy(kwota): pass # testy print(trzy(11)) print(trzy(99))
Wynikiem funkcji trzy(1) jest 1.
testResult = trzy(1)==1
1
trzy(1)
Wynikiem funkcji trzy(22) jest 6.
testResult = trzy(22)==6
6
trzy(22)
Wynikiem funkcji trzy(35) jest 7.
testResult = trzy(35)==7
7
trzy(35)
Rozwiąż ćwiczenie

Ćwiczenie 2Wiele monet

Dysponujesz nieograniczoną liczbą monet o nominałach 20, 10, 5, 2 i 1 i masz wydać resztę przy użyciu minimalnej ich liczby. Zdefiniuj funkcję wiele(kwota), której wynikiem będzie minimalna liczba monet potrzebnych do wydania kwoty podanej jako parametr. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji wiele(11) jest 2.
  • Wynikiem funkcji wiele(99) jest 8.
# zdefiniuj funkcję def wiele(kwota): pass # testy print(wiele(11)) print(wiele(99))
Wynikiem funkcji wiele(1) jest 1.
testResult = wiele(1)==1
1
wiele(1)
Wynikiem funkcji wiele(22) jest 2.
testResult = wiele(22)==2
2
wiele(22)
Wynikiem funkcji wiele(35) jest 3.
testResult = wiele(35)==3
3
wiele(35)
Rozwiąż ćwiczenie

Ćwiczenie 3Ograniczona liczba monet

Dysponujesz podaną liczbą monet o określonych nominałach i masz wydać resztę przy użyciu minimalnej ich liczby. Zdefiniuj funkcję monety(kwota, nominaly, sztuki), której wynikiem będzie minimalna liczba monet potrzebnych do wydania kwoty podanej jako parametr. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji monety(11, [20, 10, 5, 2, 1], [100, 100, 100, 100, 100]) jest 2.
  • Wynikiem funkcji monety(99, [20, 10, 5, 1], [1, 10, 1, 10]) jest 13.
# zdefiniuj funkcję def monety(kwota, nominaly, sztuki): pass # testy print(monety(11, [20, 10, 5, 2, 1], [100, 100, 100, 100, 100])) print(monety(99, [20, 10, 5, 1], [1, 10, 1, 10]))
Wynikiem funkcji monety(21, [20, 5, 1], [1, 10, 10]) jest 2.
testResult = monety(21, [20, 5, 1], [1, 10, 10])==2
2
monety(21, [20, 5, 1], [1, 10, 10])
Wynikiem funkcji monety(21, [20, 10, 1], [0, 10, 1]) jest 3.
testResult = monety(21, [20, 10, 1], [0, 10, 1])==3
3
monety(21, [20, 10, 1], [0, 10, 1])
Wynikiem funkcji monety(55, [20, 10, 5], [3, 3, 3]) jest 4.
testResult = monety(55, [20, 10, 5], [3, 3, 3])==4
4
monety(55, [20, 10, 5], [3, 3, 3])
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Zaopatrzeniowiec ma kupić cukier, mąkę i ziemniaki. Chce załadować jak najwięcej do samochodu, ale tak, by nie przekroczyć jego udźwigu wynoszącego x kg i przewieźć jak najmniejszą liczbę opakowań. Zdefiniuj funkcję zakupy(x), której parametrem jest udźwig, a wynikiem – łączna liczba opakowań towarów. Worki cukru ważą
2 kg, mąki 5 kg i ziemniaków 12 kg. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zakupy(127) jest 12.
  • Wynikiem funkcji zakupy(100) jest 10.
# zdefiniuj funkcję def zakupy(x): pass # testy print(zakupy(127)) print(zakupy(100))
Wynikiem funkcji zakupy(23) jest 3.
testResult = zakupy(23)==3
3
zakupy(23)
Wynikiem funkcji zakupy(129) jest 13.
testResult = zakupy(129)==13
13
zakupy(129)
Wynikiem funkcji zakupy(2) jest 1.
testResult = zakupy(2)==1
1
zakupy(2)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Zaopatrzeniowiec ma kupić cukier, mąkę i ziemniaki. Chce załadować jak najwięcej do samochodu, ale tak, by nie przekroczyć jego udźwigu wynoszącego x kg i przewieźć jak najmniejszą liczbę opakowań. Dodatkowo nie może kupić więcej niż ile opakowań jednego towaru. Zdefiniuj funkcję zakupy(x, ile), której parametrami są udźwig i maksymalna liczba opakowań jednego towaru, a wynikiem jest łączna liczba opakowań towarów. Worki cukru ważą 2 kg, mąki 5 kg i ziemniaków 12 kg. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zakupy(127, 9) jest 14.
  • Wynikiem funkcji zakupy(127, 12) jest 12.
# zdefiniuj funkcję def zakupy(x, ile): pass # testy print(zakupy(127, 9)) print(zakupy(127, 12))
Wynikiem funkcji zakupy(23, 5) jest 3.
testResult = zakupy(23, 5)==3
3
zakupy(23, 5)
Wynikiem funkcji zakupy(29, 3) jest 3.
testResult = zakupy(29, 3)==3
3
zakupy(29, 3)
Wynikiem funkcji zakupy(2, 5) jest 1.
testResult = zakupy(2, 5)==1
1
zakupy(2, 5)
Rozwiąż ćwiczenie

Pytania quizoweMetoda zachłanna i dynamiczna

Twój wynik to: /3
  • Które ze stwierdzeń dotyczy metody zachłannej?
  • Czy dla każdego typu problemów algorytmy zachłanne dają optymalne rozwiązanie?
  • Na czym polega dynamiczne podejście do rozwiązania?

QuizAlgorytmika i programowanie w Pythonie

Twój wynik to: /6
  • Jako rozwiązanie zadania uczniowie napisali poniższą funkcję:

    Co jest wynikiem działania funkcji dla danej liczby naturalnej?

  • Funkcja, która sprawdza, czy liczba podana jako parametr jest liczbą pierwszą, nie daje prawidłowych wyników. W czym tkwi problem?

  • Dokończ zdanie tak, aby było prawdziwe.

    Podczas testowania algorytmów sortowania można wykorzystać

  • Sito Eratostenesa to algorytm znajdowania liczb pierwszych z przedziału od 2 do n. Na początek wykreślamy wszystkie wielokrotności liczby 2 większe od niej samej. Powtarzamy wykreślanie wielokrotności kolejnej niewykreślonej liczby, czyli 3, 5 itd. Jak długo musimy kontynuować wykreślanie, aby zostały wszystkie liczby pierwsze z przedziału od 2 do n?

    Aż liczba, której wielokrotność wykreślamy, będzie większa niż

  • Jaki będzie wynik funkcji dla parametru 1234567987?

  • Wskaż zdania prawdziwe na temat pętli for i while.