PODSTAWY INFORMATYKI - Strona główna AGHhome.agh.edu.pl/~horzyk/lectures/pi/2009-11-09...

20
PODSTAWY INFORMATYKI PODSTAWY INFORMATYKI PODSTAWY INFORMATYKI PODSTAWY INFORMATYKI PODSTAWY INFORMATYKI PODSTAWY INFORMATYKI PODSTAWY INFORMATYKI PODSTAWY INFORMATYKI wykład 5. wykład 5. wykład 5. wykład 5. wykład 5. wykład 5. wykład 5. wykład 5. Adrian Adrian Horzyk Horzyk Web: Web: http://home.agh.edu.pl/~horzyk/ http://home.agh.edu.pl/~horzyk/ E-mail: mail: [email protected] [email protected] E-mail: mail: [email protected] [email protected] Google: Adrian Google: Adrian Horzyk Horzyk Gabinet: paw. D13 p. 325 Gabinet: paw. D13 p. 325 Akademia Górniczo Akademia Górniczo-Hutnicza w Krakowie Hutnicza w Krakowie WEAIiE WEAIiE, Katedra Automatyki , Katedra Automatyki http://www.agh.edu.pl http://www.agh.edu.pl Mickiewicza Av. 30, 30 Mickiewicza Av. 30, 30-059 059 Cracow Cracow, Poland , Poland

Transcript of PODSTAWY INFORMATYKI - Strona główna AGHhome.agh.edu.pl/~horzyk/lectures/pi/2009-11-09...

PODSTAWY INFORMATYKIPODSTAWY INFORMATYKIPODSTAWY INFORMATYKIPODSTAWY INFORMATYKIPODSTAWY INFORMATYKIPODSTAWY INFORMATYKIPODSTAWY INFORMATYKIPODSTAWY INFORMATYKIwykład 5.wykład 5.wykład 5.wykład 5.wykład 5.wykład 5.wykład 5.wykład 5.

Adrian Adrian HorzykHorzykWeb: Web: http://home.agh.edu.pl/~horzyk/http://home.agh.edu.pl/~horzyk/

EE--mail: mail: [email protected]@agh.edu.plEE--mail: mail: [email protected]@agh.edu.pl

Google: Adrian Google: Adrian HorzykHorzyk

Gabinet: paw. D13 p. 325Gabinet: paw. D13 p. 325

Akademia GórniczoAkademia Górniczo--Hutnicza w KrakowieHutnicza w Krakowie

WEAIiEWEAIiE, Katedra Automatyki, Katedra Automatyki

http://www.agh.edu.plhttp://www.agh.edu.pl

Mickiewicza Av. 30, 30Mickiewicza Av. 30, 30--059 059 CracowCracow, Poland, Poland

Porządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowanie

Efektywność różnych działań zwykle wzrasta, gdy dane,

na których pracujemy są w pewien sposób

uporządkowane (posortowane).

Zbiór posortowany to taki zbiór, w którym kolejne

elementy są poukładane w pewnym porządku

(kolejności), który określamy za pomocą pewnej relacji

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 2222....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

(kolejności), który określamy za pomocą pewnej relacji

porządkowej (np. <, <=, >, >=), która jednoznacznie

wyznacza kolejność elementów w zbiorze.

Możemy mówić o:

� porządku rosnącym: D = {1,2,2,4,4,5,6,8,8,9}

� porządku malejącym: D = {9,8,8,6,5,4,4,2,2,1}

Porządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowaniePorządek, uporządkowanie, kolejność i sortowanie

Sortowanie jest to proces układania elementów zbioru w

kolejności wg pewnego porządku, czyli ma zatem prowadzić do

znalezienia odpowiedniej permutacji elementów zbioru

nieuporządkowanego, aby w wyniku tego działania spełniały

założony porządek.

Sortować możemy cokolwiek (liczby, znaki, ciągi znaków, kolory,

obrazy…) jeśli tylko wyznaczona jest relacja porządkująca te

elementy.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 3333....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

elementy.

Sortowanie stosuje się w celu ułatwienia późniejszego

wyszukiwania elementów sortowanego zbioru. Sortowanie jest

bardzo powszechnym działaniem w wielu różnych dziedzinach.

Sortowane są obiekty w listach płac, książka telefonicznych i

adresowych, w bibliotekach, słownikach, magazynach i wszędzie

tam, gdzie występuje potrzeba szybkiego przeszukiwania i

dostępu do składowanych obiektów.

Podział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowania

Wybór algorytmu sortowania zależny jest od wykorzystywanej struktury

danych, złożoności pamięciowej, zachowania kolejności elementów o tej

samej wartości:

Sortowanie wewnętrzne (tablic, które są przechowywane w szybkiej, o

dostępie swobodnym „wewnętrznej” pamięci komputerów – zwykle RAM)

Sortowanie zewnętrzne (plików sekwencyjnych, które są zazwyczaj

przechowywane w wolniejszej pamięci „zewnętrznej” z dostępem

bezpośrednim tylko do wierzchu każdej sterty danych).

Sortowanie stabilne - zachowują kolejność elementów o równych

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 4444....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Sortowanie stabilne - zachowują kolejność elementów o równych

wartościach. Oznacza to, że elementy o równych wartościach będą

występowały w tej samej kolejności w zbiorze posortowanym, w jakiej

występowały w zbiorze nieposortowanym. Jest to istotne w sytuacji, gdy

nie chcemy, żeby elementy o równych wartościach klucza zmieniały swoje

względne położenie, np. pracując na rekordach baz danych.

Sortowanie niestabilne - kolejność wynikowa elementów o równych

wartościach jest nieokreślona, czyli względne uporządkowanie elementów

o równych wartościach zwykle nie zostaje zachowane.

Podział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowaniaPodział algorytmów sortowania

Wybór algorytmu sortowania zależny jest od wykorzystywanej struktury

danych, złożoności pamięciowej, zachowania kolejności elementów o tej

samej wartości:

Sortowanie w miejscu (in place) - wymagają stałej liczby dodatkowych

struktur danych, która nie zależy od liczby elementów sortowanego zbioru

danych (ani od ich wartości). Dodatkowa złożoność pamięciowa jest zatem

klasy O(1). Sortowanie odbywa się wewnątrz zbioru. Ma to bardzo istotne

znaczenie w przypadku dużych zbiorów danych, gdyż mogłoby się okazać,

iż posortowanie ich nie jest możliwe z uwagi na brak pamięci w systemie.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 5555....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

iż posortowanie ich nie jest możliwe z uwagi na brak pamięci w systemie.

Sortowanie nie w miejscu - wymagają zarezerwowania w pamięci

dodatkowych obszarów, których wielkość jest uzależniona od liczby

sortowanych elementów lub od ich wartości. Tego typu algorytmy są

zwykle bardzo szybkie w działaniu, jednakże okupione to jest

dodatkowymi wymaganiami na pamięć. Zatem w pewnych sytuacjach

może się okazać, iż taki algorytm nie będzie w stanie posortować dużego

zbioru danych, ponieważ system komputerowy nie posiada wystarczającej

ilości pamięci RAM.

Ocena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowania

Ciech sortowanie będzie działaniem na obiektach a1, a2, ..., an ipolega na takim ponumerowaniu tych obiektów ak1, ak2, ..., akn, żedla dla zdanej funkcji porządkującej f spełniona jest: f(ak1) ≤f(ak2) ≤ ... ≤ f(akn). Często obiekty rzeczywiste ai sortowane sąwedług pewnego określonego klucza służącego identyfikacjiobiektów, które zdefiniujemy sobie następująco:

type obiekt = recordklucz: integer;

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 6666....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

klucz: integer;{deklaracje innych składowych}

end

gdzie „inne składowe” reprezentują właściwe dane dotycząceobiektu.

Ocena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowaniaOcena efektywności algorytmów sortowania

Do najważniejszych kryteriów oceny jakości metod sortowanianależą:

� złożoność pamięciowa - ilość potrzebnej pamięci (oszczędnośćpamięci)

� złożoność czasowa – ilość potrzebnych operacji:� liczba koniecznych porównań kluczy� liczba koniecznych przesunięć/przestawień obiektów.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 7777....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Dobre algorytmy sortowania wymagają porównań rzędu: n log n.Metody proste wymagają zazwyczaj porównań rzędu: n2. Dodużych zbiorów danych stosujemy metody skomplikowane ozłożoności obliczeniowej O(n log n), jednak dla dostateczniemałych n metody proste są często bardziej efektywne ze względuna swoją prostotę. Istnieją też algorytmy o złożoności O(n) przydodatkowych warunkach!

Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (BubbleBubbleBubbleBubbleBubbleBubbleBubbleBubble Sort)Sort)Sort)Sort)Sort)Sort)Sort)Sort)

Sortowanie bąbelkowe (przez zamianę) polega na cyklicznym

porównywaniu par sąsiadujących elementów (bąbelków) oraz

zmianie ich kolejności w przypadku niespełnienia relacji

porządkującej pomiędzy nimi. Operację tą powtarzamy,

dopóki cały zbiór nie zostanie posortowany.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 8888....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Złożoność obliczeniowa algorytmu sortowania bąbelkowego O(n2):

Po = (n2-n)/2 Prmin = 0 Prśr = 3*(n2-n)/4 Prmax = 3*(n2-n)/2

Sortowanie stabilne, w miejscu, wewnętrzne.

Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (Sortowanie bąbelkowe (BubbleBubbleBubbleBubbleBubbleBubbleBubbleBubble Sort)Sort)Sort)Sort)Sort)Sort)Sort)Sort)

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 9999....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Sortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacji

Algorytm sortowania bąbelkowego w każdym obiegu przepycha element

maksymalny na koniec, wobec czego nie ma sensu sprawdzać takich

elementów. Ponadto wykonuje dwa rodzaje operacji: test bez i z zamianą

miejsc elementów. Można zatem wyeliminować te operacje, które nie dokonują

zamianę, a ponadto brak zamian w danym obiegu oznacza możliwość

zakończenia algorytmu sortowania.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 10101010....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Sortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacjiSortowanie bąbelkowe z jednostronnym pominięciem pustych operacji

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 11111111....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Sortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacji

Ponadto algorytm sortowania bąbelkowego dokonuje niepotrzebnych

sprawdzeń już posortowanych elementów na początku tablicy, biorąc pod

uwagę, iż elementy mniejsze w porównywanym bąbelku mogą zostać

przepchnięte maksymalnie o 1 pozycję wstecz.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 12121212....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Sortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacjiSortowanie bąbelkowe z dwustronnym pominięciem pustych operacji

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 13131313....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (InsertionInsertionInsertionInsertionInsertionInsertionInsertionInsertion Sort)Sort)Sort)Sort)Sort)Sort)Sort)Sort)

Algorytm ten można porównać do sposobu układania kart pobieranych z talii. Kolejne

brane karty porównujemy z kartami już ułożonymi, które trzymamy w ręce i szukamy

dla niej odpowiedniego miejsca, gdzie ją wkładamy rozsuwając pozostałe karty.

Sortując w tablicy na jednym końcu (zwykle z tyłu) jest posortowana część zbioru,

która sukcesywnie rozrasta się do całej tablicy.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 14141414....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Złożoność obliczeniowa algorytmu sortowania przez wstawianie O(n2):

Pomin = n – 1 Pośr = (n2 + n – 2)/4 Pomax = (n2 + n)/2 – 1

Prmin = 2(n-1) Prśr = (n2 + 9n – 10)/4 Prmax = (n2 + 3n - 4)/2

Sortowanie stabilne, w miejscu, wewnętrzne.

Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (Sortowanie przez wstawianie (InsertionInsertionInsertionInsertionInsertionInsertionInsertionInsertion Sort)Sort)Sort)Sort)Sort)Sort)Sort)Sort)

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 15151515....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (BinaryBinaryBinaryBinaryBinaryBinaryBinaryBinary InsertionInsertionInsertionInsertionInsertionInsertionInsertionInsertion Sort)Sort)Sort)Sort)Sort)Sort)Sort)Sort)

W tej wersji algorytmu wykorzystano fakt, iż elementy są posortowane w przedziale,

gdzie wstawiany jest kolejny element, wobec czego można zastosować szybszy algorytm

„dziel i zwyciężaj” do odnalezienia miejsca wstawienia tego elementu.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 16161616....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Złożoność obliczeniowa algorytmu sortowania przez wstawianie O(n2):

Po = log2 1 + log2 2 + ... + log2 n ≈ n(log n – c) + c; gdzie c = 1/ln 2 = 1,44

Prmin = 2(n-1) Prśr = (n2 + 9n – 10)/4 Prmax = (n2 + 3n - 4)/2

Sortowanie stabilne, w miejscu, wewnętrzne.

Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (Sortowanie przez wstawianie połówkowe (BinaryBinaryBinaryBinaryBinaryBinaryBinaryBinary InsertionInsertionInsertionInsertionInsertionInsertionInsertionInsertion Sort)Sort)Sort)Sort)Sort)Sort)Sort)Sort)

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 17171717....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (SelectionSelectionSelectionSelectionSelectionSelectionSelectionSelection Sort)Sort)Sort)Sort)Sort)Sort)Sort)Sort)

Jeśli zbiór sortujemy rosnąco, najmniejszy element powinien znaleźć się na pierwszej

pozycji, wobec czego szukamy najmniejszy element w ciągu jeszcze nieposortowanym i

zamieniamy go z elementem na pierwszej pozycji. W ten sposób element z pierwszej

pozycji znajdzie się na pozycji najmniejszego elementu. Z pozostałego przedziału

nieposortowanych elementów wybieramy następny najmniejszy element itd.

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 18181818....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Złożoność obliczeniowa algorytmu sortowania przez wybieranie O(n2):

Po = (n2-n)/2 Prmin = 3(n-1) Prśr = n(ln n+γ) gdzie γ=0,577216 jest stałą Eulera Prmax = trunc(n/4)2 + 3(n-1)

Sortowanie niestabilne, w miejscu, wewnętrzne.

Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (Sortowanie przez wybieranie (SelectionSelectionSelectionSelectionSelectionSelectionSelectionSelection Sort)Sort)Sort)Sort)Sort)Sort)Sort)Sort)

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 19191919....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

Literatura i bibliografia:Literatura i bibliografia:Literatura i bibliografia:Literatura i bibliografia:Literatura i bibliografia:Literatura i bibliografia:Literatura i bibliografia:Literatura i bibliografia:

� Algorytmy sortujące: http://www.i-lo.tarnow.pl/edu/inf/alg/algsort/index.html

� Algorytmy sortujące: http://www.home.umk.pl/~abak/wdimat/s/Index.html

� L. Banachowski, K. Diks, W. Rytter: „Algorytmy i struktury danych”, WNT, Warszawa, 2001

� Z. Fortuna, B. Macukow, J. Wąsowski, „Metody numeryczne”, WNT, Warszawa, 1993.

� K. Jakubczyk, „Turbo Pascal i Borland C++”, Wydanie II, Helion, 2006.

� J. i M. Jankowscy, „Przegląd metod i algorytmów numerycznych”, WNT, Warszawa, 1988.

� A. Kiełbasiński, H. Schwetlick, „Numeryczna algebra liniowa”, WNT, Warszawa 1992.

� A. Kierzkowski, „Turbo Pascal. Ćwiczenia praktyczne.”, Helion 2006.

� K. Koleśnik, „Wstęp do programowania z przykładami w Turbo Pascalu”, Helion,

Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona Wykład 5. Strona 20202020....PODSTAWY INFORMATYKI, Adrian Horzyk, http://home.agh.edu.pl/~horzyk

� M. Sysło: „Elementy Informatyki”.

� A. Szepietowski: „Podstawy Informatyki”.

� R. Tadeusiewicz, P. Moszner, A. Szydełko: „Teoretyczne podstawy informatyki”.

� W. M. Turski: „Propedeutyka informatyki”.

� N. Wirth: „Wstęp do programowania systematycznego”.

� N. Wirth: „ALGORYTMY + STRUKTURY DANYCH = PROGRAMY”.