piątek, 5 września 2014

Lekcja 1: Algorytmy.

1. Algorytm - skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. 

2. Rodzaje algorytmów:
  • liniowe - mamy z nimi do czynienia wówczas, gdy następuje instrukcja bezpośredniego następstwa. Posiada on wyłącznie instrukcje bezpośredniego następstwa. Są one wykonywane w przewidzianej kolejności bez względu na dane, na których algorytm operuje.

  • warunkowe - takie, w których wykonanie instrukcji uzależnione jest od spełnienia lub niespełnienia warunków

  • iteracyjne - iteracją nazywamy instrukcję powtarzania danego ciągu operacji. Liczba powtórzeń może być ustalona przed wykonaniem instrukcji lub może zależeć od spełnienia danego warunku, który jest sprawdzany w każdej iteracji. Iteracja inaczej nazywana jest pętlą.

  • rekurencyjne - algorytmy, które wywołują same siebie do rozwiązania tego samego problemu


3. Sposoby reprezentowania algorytmów:
  • Lista kroków - przedstawienie w numerowanych punktach kolejnych etapów działania algorytmu.
1. Początek algorytmu. 

2. Ustaw wartość zmiennej a:=0
3. Jeżeli a > 3 przejdź do punktu 7.
4. Wykonaj wyrażenie a:=a+1
5. Wypisz na ekran wartość a
6. Przejdź do punktu 3.
7. Zakończ algorytm.
  •  Schemat blokowy - jest narzędziem nakierowanym na prezentację kolejnych czynności w projektowanym algorytmie.

  • Drzewa - jest bardziej skomplikowaną strukturą niż poprzednie. Dla każdego drzewa wyróżniony jest jeden, charakterystyczny element-korzeń. Korzeń jest jedynym elementem drzewa, który nie posiada elementów poprzednich. Dla każdego innego elementu określony jest dokładnie jeden element poprzedni. Dla każdego elementu oprócz ostatnich, tzw. liści istnieje co najmniej 1 element następny. Jeżeli liczba następnych elementów wynosi nie więcej niż 2 to drzewo nazywamy binarnym, jeżeli natomiast liczba elementów wynosi dokładnie 2 to drzewo nazywamy pełnym drzewem binarnym. Drzewo można zdefiniować, jako acykliczny graf.
  • Pseudokod - sposób zapisu algorytmu, który, zachowując strukturę charakterystyczną dla kodu zapisanego w języku programowania, rezygnuje ze ścisłych reguł składniowych na rzecz prostoty i czytelności.
  •  Kod właściwy