Informatyka

Temat: Stałe i zmienne. Tworzenie programów do obliczeń matematycznych

Czym jest programowanie?

Programowanie to umiejętność rozmowy z komputerem. Rozmawiamy z komputerem w zrozumiałych dla niego językach, czyli językach programowania. Dajemy komputerowi polecenia, co ma zrobić, a on w odpowiedzi pokazuje nam wyniki swojej pracy. Osobę, która programuje, nazywamy programistą lub developerem.


Algorytmy – skończony ciąg jasno zdefiniowanych czynności koniecznych do wykonania pewnego rodzaju zadań, sposób postępowania prowadzący do rozwiązania problemu. Można go przedstawić na schemacie blokowym.

Zadaniem algorytmu jest przeprowadzenie systemu z pewnego stanu początkowego do pożądanego stanu końcowego. Badaniem algorytmów zajmuje się algorytmika. Algorytm może zostać zaimplementowany w postaci programu komputerowego.
Jako przykład stosowanego w życiu codziennym algorytmu podaje się często przepis kulinarny. Dla przykładu, aby ugotować bigos, należy w określonej kolejności oraz odstępach czasowych (imperatyw czasowy) dodawać właściwe rodzaje kapusty i innych składników. Może istnieć kilka różnych przepisów dających na końcu bardzo podobną potrawę. Algorytmy zwykle formułowane są w sposób ścisły w oparciu o język matematyki.

Algorytm Euklidesa - Docelową formą prezentacji algorytmu jest język wysokiego poziomu. Wybrałem Pythona ze względu na prostotę i rosnącą popularność zarówno na rynku jak i w edukacji. W Python można tworzyć algorytmy na maturze. Do kodu dodałem zmienną licznik, która nie ma bezpośredniego związku z algorytmem Euklidesa, ale jej zadaniem będzie policzenie ilości przebiegu pętli wskazującej NWD.

NWD - Euklides odejmowanie liczb

Kod Python algorytmu Euklidesa - wyznaczanie NWD metodą przez odejmowanie.

liczba1=int(input('podaj pierwszą liczbę: '))
liczba2=int(input('podaj drugą liczbę: '))
licznik=0
# początek pętli

while liczba1!=liczba2:
    licznik+=1
    if liczba1>liczba2:
     liczba1=liczba1-liczba2
    else:
     liczba2=liczba2-liczba1
# koniec pętli

print ("pętla wykonana {} razy".format(licznik))
print("NWD to:", liczba1 )

Wyjaśnienie poszczególnych linii kodu:
  1. Wczytuję z klawiatury zmienną liczba1. Funkcja input wyświetla komunikat i czeka na wprowadzenie wartości. Funkcja int zamienia wprowadzoną wartość (domyślnie string) na liczbę typu integer.
  2. ak w pk.1 ze zmienną liczba2.
  3. Tworzę zmienną licznik z wartością początkową O po to aby sprawdzić wydajność algorytmu. Zmienna będzie zliczała przebiegi pętli.
  4. Początek pętli dopóki liczba1 jest różna od liczba2 (!= operator nie są sobie równe).
  5. Dodaję 1 do wartości zmiennej licznik, jest to skrót zapisu licznik = licznik+1.
  6. Początek instrukcji warunkowej jeżeli liczba1 jest większa od liczba2.
  7. Jeżeli warunek z pk. 6 jest spełniony podstaw do liczba1 wartość liczba1-liczba2.
  8. W przeciwnym wypadku (do warunku z pk6).
  9. Jeżeli warunek z pk. 6 nie jest spełniony, podstaw do liczba2 wartość liczba2-liczba1.
  10. Koniec pętli.
  11. Wyprowadź na ekran komunikat, zastosowałem funkcję format, która wstawi wartość zmiennej licznik do nawiasu {}.
  12. Wyprowadź wartość NWD. Można byłoby użyć funkcji format. Kod tej linijki wyglądałby tedy tak: print("NWD to : {}".format(liczba1) ).
NWD - Euklides dzielenie liczb

Kod Python algorytmu Euklidesa - wyznaczanie NWD metodą przez dzielenie.

liczba1=int(input('podaj pierwszą liczbę: '))
liczba2=int(input('podaj drugą liczbę: '))
licznik=0
if liczba2==0:
    print("NWD to:",liczba1)
else:
# początek pętli

    while liczba2>0:
     licznik+=1
     reszta=liczba1%liczba2
     liczba1=liczba2
     liczba2=reszta
# koniec pętli

print("pętla wykonana {} razy".format(licznik))
print("najwiekszy wspolny dzielnik to:",liczba1)

Wyjaśnienie poszczególnych linii kodu:
  1. Wczytuję z klawiatury zmienną liczba1. Funkcja input wyświetla komunikat i czeka na wprowadzenie wartości. Funkcja int zamienia wprowadzoną wartość (domyślnie string) na liczbę typu integer.
  2. Jak w pk.1 ze zmienną liczba2.
  3. Tworzę zmienną licznik z wartością początkową O po to aby sprawdzić wydajność algorytmu. Zmienna będzie zliczała przebiegi pętli.
  4. Jeżeli liczba 2 jest równa 0 to przejdź do pk.5.
  5. Wyprowadź komunikat NWD to : wartość liczba1.
  6. W przeciwnym wypadku przejdź do pk.7.
  7. Początek pętli dopóki liczba2 jest większa od O.
  8. Dodaję 1 do wartości zmiennej licznik, jest to skrót zapisu licznik = licznik+1.
  9. Wstawiam do zmiennej reszta, resztę z dzielenia liczba1 przez liczba 2 (% operator modulo)
  10. Wstawiam wartość zmiennej liczba2 do liczba1
  11. Wstawiam wartość zmiennej reszta do liczba2
  12. Koniec pętli.
  13. Wyprowadź na ekran komunikat, zastosowałem funkcję format, która wstawi wartość zmiennej licznik do nawiasu {}.
  14. Wyprowadź wartość NWD. Można byłoby użyć funkcji format. Kod tej linijki wyglądałby tedy tak: print("NWD to : {}".format(liczba1) ).
  15. Algorytm metodą przez odejmowanie wykona dla pary liczb 123456789 i 2 pętlę 61728395 razy, a algorytm metodą przez dzielenie dla tej samej pary liczb wyświetli wartość 2 licznika pętli.


Powinieneś umieć: