Title: Technologia informacyjna
1Technologia informacyjna
2Cele kursu
- Cwiczenia zapewnic umiejetnosci potrzebne do
przetrwania studiów - Wyklad Prezentacja najbardziej istotnych
zagadnien z zakresu technologii informacyjnej, ze
szczególnym uwzglednieniem ich dalszego
praktycznego zastosowania. Dyskusja biezacych
problemów zwiazanych z prezentowanymi
zagadnieniami. Wprowadzenie do efektywnego
wykorzystania systemów komputerowych
i sieciowych.
3- Cwiczenia
- - Pisanie tekstów naukowych (wzory matematyczne,
chemiczne, tabele itp.) - Darmowe oprogramowanie OpenOffice (Windows,
Linux) - Obliczenia
- numeryczne
- Jezyk R (do ilustracji wybranych algorytmów
Fortran) - arkusz kalkulacyjny Excel, Euler
- - symboliczne Maxima, Euler
- - Wizualizacja danych naukowych R, gnuplot,
- - Edytory struktur molekularnych Avogadro
- - obsluga systemów operacyjnych Windows i Linux
- - podstawowe komendy systemu
- - oprogramowanie narzedziowe (edytory,
archiwizatory) - - oprogramowanie sieciowe
- - oprogramowanie antywirusowe
4Informatyka???
5Nauka o komputerach??
6Rózne definicje informatyki
- a) Informatyka jest to dziedzina wiedzy i
dzialalnosci czlowieka zajmujaca sie
gromadzeniem, przetwarzaniem i wykorzystywaniem
informacji. Informatyka zajmuje sie równiez
badaniem, jak te informacje przetworzyc.
7b) Informatyka to dziedzina, która zajmuje sie
przetwarzaniem informacji za pomoca pewnych
schematów postepowania (zwanych algorytmami).
Wynikiem takiego procesu jest znów informacja.
Przy czym poprzez przetwarzanie nie nalezy
wylacznie rozumiec zamiane czy
przeksztalcenie jednej informacji w druga. Do
zadan informatyki nalezy równiez wyszukiwanie
oraz udostepnianie czy prezentacja informacji.
Wszystko to bedziemy jednak traktowali jako
szersze ujecie przetwarzania. c 2009 by P.
Fulmanski, Uniwersytet Lódzki. Wersja z dnia 9
stycznia 2010
8c) Informatyka nauka o przetwarzaniu informacji
przy uzyciu srodków technicznych.
W. Turski d) Informatyka
okresla sie caloksztalt dzialalnosci obejmujacej
wiedze i umiejetnosci jej wykorzystania, a
dotyczacej zastosowania metod i srodków
technicznych do sprawnego - zbierania, -
przetwarzania (analizy), - przechowywania
informacji (danych) - przesylania informacji w
celu sprawnego i okreslonego (celowego) dzialania
danego systemu. e) Informatyka (computer
science, computing science, information
technology (IT) ) dziedzina nauki i techniki
zajmujaca sie przetwarzaniem informacji w tym
technologiami przetwarzania informacji oraz
technologiami wytwarzania systemów
przetwarzajacych informacje.
Romuald Marczynski
9f) Informatyka (w sensie anglojezycznego terminu
Informatics) jest studiowaniem systemów
pozyskujacych, reprezentujacych, przetwarzajacych
i wytwarzajacych informacje wlaczajac w to
wszystkie obliczeniowe, kognitywne i spoleczne
aspekty. Zasadniczym przedmiotem zainteresowania
jest przetwarzanie (przeksztalcanie) informacji
czy to przez procesy obliczeniowe czy
komunikacyjne, czy to przez organizmy zywe czy
urzadzenia. W tym sensie informatyke nalezy
postrzegac jako dziedzine znacznie szersza niz
informatyka w sensie Computer Science. Mozna
powiedziec, ze informatyka (w sensie
Informatics) ogólnie pojety aspekt pozyskiwania,
przetwarzania, skladowania itd. informacji
rozciaga zarówno nad maszynami (komputery) jak i
istotami zywymi a ogólnie, wszystkim tym co ma
jakikolwiek zwiazek z informacja P.
Fulmanski, Uniwersytet Lódzki. Wersja z dnia 9
stycznia 2010
10Najwazniejsze dziedziny badan wspólczesnej
informatyki - Teoria informacji Teoria
informacji zajmuje sie informacja, jej
transmisja, jak równiez kodowaniem
danych w celu pewniejszego lub szybszego
przeslania jej od nadawcy do odbiorcy.-
Algorytmika Tworzenie i badanie algorytmów
11Algorytm w matematyce oraz informatyce to
skonczony, uporzadkowany ciag jasno
zdefiniowanych czynnosci, koniecznych do
wykonania pewnego zadania. Powinien spelniac
nastepujace wymagania 1. Musi posiadac
okreslony stan poczatkowy, czyli operacje, od
której zaczyna sie jego realizacja. 2. Liczba
operacji potrzebnych do zakonczenia pracy musi
byc skonczona warunek dyskretnosci. 3. Musi
dac sie zastosowac do rozwiazywania calej klasy
zagadnien, a nie jednego konkretnego zadania
warunek uniwersalnosci. 4. Interpretacja
poszczególnych etapów wykonania musi byc
jednoznaczna warunek jednoznacznosci. 5.
Cel musi byc osiagniety w akceptowalnym czasie
warunek efektywnosci. Co oznacza akceptowalny
to zalezy od zadania. 6. Musi posiadac wyrózniony
koniec.
12- Najwazniejsze dziedziny badan wspólczesnej
informatyki (cd.) - Bazy danych
- Grafika komputerowa
- Programowanie
- Systemy operacyjne
- Sieci komputerowe
- Kryptografia
- - Sztuczna inteligencja
13Informacja ???
- a) Informacja (definicja ogólna) to taki czynnik,
któremu czlowiek moze przypisac okreslony sens
(znaczenie), aby móc ja wykorzystywac do róznych
celów. - Informacja (definicja informatyczna) to zbiór
danych zebranych w celu ich przetwarzania i
otrzymania wyników (nowych danych)
14- b) Kazdy czynnik zmniejszajacy stopien niewiedzy
o jakims zjawisku - czy obiekcie nazywamy informacja
-
Tomasz Kwiatkowski -
Obserwatorium Astronomiczne -
UAM, Poznan - c) Claude Shannon (1948-49) komunikat ma tym
wiecej informacji - im mniejsze jest prawdopodobienstwo jego
wystapienia. - d) Informacja obiektywna
- W cybernetyce i teorii informacji najbardziej
ogólnie kazde rozpoznanie - stanu ukladu, odróznialnego od innego stanu tego
ukladu (stanu wyróznionego) - wyróznienie pewnego stanu wyróznionego
(odróznialnego) z repertuaru - (zbioru stanów wyróznionych). "...w pojeciu
informacji istotne jest nie samo - zaistniale zjawisko, lecz jego stosunek do zbioru
zdarzen, które mogly byly - zaistniec".
- Mozna odróznic
- informacje swobodna, kiedy mozliwosci (stany,
zdarzenia) uwazamy za - abstrakcyjne i nie przypisujemy im zadnego
znaczenia fizycznego, - 2. informacje zwiazana, kiedy mozliwosci (stany,
zdarzenia) moga byc
15- Ilosc informacji otrzymanej przy zajsciu
zdarzenia xi (entropia tego zdarzenia, - entropia indywidualna) to (Hartley 1928)
- gdzie
- Ii - ilosc informacji otrzymanej przy zajsciu
zdarzenia xi, - pi - prawdopodobienstwo zajscia zdarzenia xi,
- r - podstawa logarytmu.
- W teorii informacji najczesciej stosuje sie
logarytm o podstawie - r 2, wówczas jednostka informacji jest bit
(szanon). - Przy r e jednostka jest nat (nit), natomiast
- przy r 10 - dit (hartley).
162. Przecietna ilosc informacji przypadajaca na
zajscie zdarzenia z pewnego zbioru n zdarzen
(entropia bezwarunkowa tego zbioru, entropia
przecietna) jest srednia arytmetyczna wazona
ilosci informacji otrzymywanej przy zajsciu
poszczególnych zdarzen, gdzie wagami sa
prawdopodobienstwa tych zdarzen
(Shannon 1948)
gdzie H(X) - entropia bezwarunkowa zbioru X, n -
liczba zdarzen w zbiorze, pi - prawdopodobienstwo
zajscia zdarzenia xi.
17Przechowywanie i przekazywanie informacji
- KOMUNIKAT zakodowana wiadomosc zawierajaca
pewna ilosc informacji - Bit BInary digiT cyfra binarna jednostka
informacji wywodzaca sie z prawdopodobienstwa
wystapienia komunikatu
18Ilosc bitów k log2 (p) - log2 (p) p
prawdopodobienstwo wystapienia komunikatu Np.
p 1 k 0 p 0,5
k 1 p 0,01 k 6,64
p 1/256 k 8 (bajt) kod komunikatu
slowo kodowe dlugosc slowa kodowego (const
stala lub var zmienna) B (bajt - byte) 8
bitów - (binarne slowo kodowe o dlugosci 8
znaków) 28 256 KB 1024 B (210)
np. (10000111)2 (135)10 kB 1000 B ? k
tysiac (kilo) (11111111)2
(255)10 MB 1024 KB GB 1024 MB (gigabajt) TB
1024 GB (terabajt) PB 1024 TB (petabajt)
19 Zapisy dwójkowe a zbyt dlugie do latwego
pamietania kod hexadecymalny bajt dzielony na
pólbajty (ang. nibble) i kazdy jest kodowany w
systemie 16-kowym, np. 010
O16 1010 A16 1210 C16 1510 F16
0 1 1 1 1 1 0 1
7 D ? 7D
20kod ósemkowy podstawa 8 BCD Binary Coded
Decimal (59)10 0101 1001 (158)10
(10011110)2 9E (256)8 (000101011000)BCD AS
CII American Standard Code for Information
Interchange oparty o slowo 8 bitowe, np.
Spacja 32 20, 0 (zero) 48 30 A 65 41
a 97 61 ASCII zwykly (7 bitowe) ASCII
rozszerzony (8 bitowe) Unicode rozszerzenie
standardowego kodu ASCII kodowanie znaków na 2B
(1 zgodny z ASCII) A 0104 a 0105 C 0106 c
0107, n 0144
21Zapisywanie sygnalów analogowych w technice
cyfrowej (dyskretyzacja)
22Okres próbkowania Ts to odstep czasu pomiedzy
pobieraniem kolejnych próbek. Czestotliwosc
próbkowania to odwrotnosc okresu próbkowania
. Aby spróbkowany sygnal z postaci cyfrowej dalo
sie przeksztalcic bez straty informacji z
powrotem do postaci analogowej, musi byc
spelnione twierdzenie Kotielnikowa-Shannona o
próbkowaniu. Mówi ono, ze czestotliwosc
próbkowania nie moze byc mniejsza niz podwojona
szerokosc pasma sygnalu. Jesli ten warunek nie
jest spelniony, wówczas wystepuje zjawisko
aliasingu. ( nieodwracalne znieksztalcenie
sygnalu). Przyklad praktycznego wykorzystania
Ludzkie ucho slyszy dzwieki do czestotliwosci
okolo 20 kHz. Wedlug twierdzenia
Kotielnikowa-Shannona, czestotliwosc zapisu
cyfrowego musi byc zatem wieksza niz 40 kHz, aby
nie dalo sie uslyszec przeklaman (tzw.
czestotliwosc Nyquista). Stad 44 100 próbek na
sekunde (44,1 kHz) dla kazdego kanalu, na plycie
CD-Audio przyjeto za wartosc wystarczajaca.
23Kwantyzacja
- Jest to drugi (po próbkowaniu) etap procesu
przetwarzania sygnalu analogowego na cyfrowy. - Sygnaly analogowe moga przyjmowac dowolne
wartosci - Zapis cyfrowy uzywa slów o skonczonej liczbie
bitów, a co z tym idzie narzuca ograniczenia na
zbiór wartosci zapisywanego sygnalu. - Dozwolone wartosci nazywane sa poziomami
reprezentacji (cyfrowej) - kwantyzacja polega na przypisaniu wartosci
analogowych do najblizszych (liczbowo) poziomów
reprezentacji - blad kwantyzacji - róznica pomiedzy wartoscia
skwantowana i oryginalna
24Sygnal cyfrowy mala czestosc próbkowania i
slaba rozdzielczosc
Sygnal analogowy
Kwantyzacja
Sygnal cyfrowy zwiekszona czestosc próbkowania
i poprawiona rozdzielczosc
25- Rodzaje kwantyzacji
- Skalarna kwantuje sie pojedyncze wartosci
- 2) Wektorowa jednoczesnie kwantuje sie dwie
lub wiecej wartosci - Kw. skalarna moze byc
- Równomierna
- Nierównomierna
- -Równomierna stosuje stale odleglosci
pomiedzy poziomami reprezentacji - -Nierównomierna dostosowuje polozenia
poziomów do rozkladu - prawdopodobienstwa wartosci sygnalów
analogowych - Bardziej dokladne omówienie konwersji A/D mozna
znalezc np. na stronie - Próbkowanie teoria i praktyka - artykul w
Internecie - http//www.promusic.pl/artykuly/artykuly-single-vi
ew/artykul/probkowanie-teoria-i-praktyka/ - Zawiera przystepny opis problemów zwiazanych z
konwersja danych analogowych do postaci zapisu
cyfrowego
26- Liczba jest pewnym abstrakcyjnym bytem
wykorzystywanym do zliczania - i mierzenia.
- Symbol lub slowo jezyka naturalnego wyrazajace
liczbe nazywamy numeralem lub cyfra (ang.
numeral, digit) a w jezyku potocznym, po prostu
liczba. - i XXXIV to dwa rózne numeraly reprezentujace te
sama liczbe - System liczbowy (SL) jest sposobem reprezentacji
liczb przy uzyciu cyfr (numeralów) w jednolity
sposób. - Rodzaje systemów liczbowych
- Unarny SL kazda liczba naturalna jest
reprezentowana przez n-krotne powtórzenie znaku
reprezentujacego jednostke np. IIII - Takie systemy nazywamy addytywnymi (zeby znalezc
wartosc liczby nalezy dodac wartosci
reprezentowane przez cyfry (tutaj jednostki)
27Rzymski SL Symbol Wartosc I
1 (unus) V
5 (quinque) X 10
(decem) L 50
(quinquaginta) C 100
(centum) D 500 (quingenti)
M 1000 (mille) Do zapisu
wiekszych liczb uzywano dodatkowych symboli
(pionowa kreska) liczba pomiedzy takimi
kreskami mnozona przez 100 MC (1000100)100
110 000 (1000100)1000 1 100
000 Jezeli przed symbolem o wiekszej wartosci
wystepowal symbol o mniejszej wartosci to
oznaczalo to odejmowanie. Jezeli dana liczba
mogla byc zapisana na wiele sposobów to poprawny
byl zapis bardziej zwarty
np. IX zamiast VIIII
28Pozycyjnym systemem liczbowym (ang. positional
numeral system) nazywamy pare (bD), Gdzie b
jest liczba naturalna nazywana podstawa systemu
(ang. base), D jest skonczonym zbiorem b symboli
s0 s1 sb, nazywanych cyframi (ang.
digits). System taki nazywamy systemem liczbowym
o podstawie b (ang. base-b system). Kazda liczba
jest jednoznacznie reprezentowana jako ciag cyfr
a jej wartosc zalezy zarówno od cyfr jak i
pozycji na jakich one wystepuja. Wartosc v ciagu
dkdk-1 . d1d0 obliczamy wedlug ponizszej
formuly v dkbk dk-1bk-1 d1b1
d0b0 (2.1) gdzie d0 dk to cyfry danego
SL.
29System dwójkowy Przejscie z systemu dziesietnego
na dwójkowy (algorytm) zamieniamy liczbe x
zapisana w systemie dziesietnym na jej dwójkowy
odpowiednik y 1) Poczatek 2) Niech z x 3)
Podziel z przez 2, zapamietaj wynik jako q 4)
Jezeli q jest calkowite zapisz 0 5) Jezeli q nie
jest calkowite zapisz 1 6) Jako nowa wartosc z
wez calkowita czesc liczby q 7) Jezeli z jest
rózna od zera idz do punktu 3 8) Jezeli z jest
równe 0 idz do punktu 9 9) Koniec Poszczególne
wyniki zapisuj od prawej do lewej! x z 37510
1872 1 (q 187, r 1, y 1) z
187 932 1 (q 93 , r 1, y 11)
z 93 462 1 (q 46 , r
1, y 111) z 46 232 0 (q
23 , r 0, y 0111) z 23
112 1 (q 11 , r 1, y 10111) z
11 52 1 (q 5 , r 1, y
110111) z 5 22 1 (q
2 , r 1, y 1110111) z 2
12 0 (q 1 , r 0, y 01110111)
z 1 02 1 (q 0 , r 1,
y 101110111) z 0
30Ulamki 0,11012 12-1 12-2 02-3 12-4
0,5 0,25 0 0,0625 0,812510 Zamiana
ulamka dziesietnego na dwójkowy 1. Start. 2.
Niech w x. 3. Mnozymy w przez 2. 4. Jesli
wynikiem operacji mnozenia jest liczba wieksza od
jednosci, zapisujemy na boku 1. 5. Jesli
wynikiem operacji mnozenia jest liczba mniejsza
od jednosci, zapisujemy na boku 0. 6.
Ulamkowa czesc wyniku po odrzuceniu ewentualnej
czesci calkowitej zapisujemy jako w. 7.
Jesli w jest rózne od 0, przechodzimy z powrotem
do kroku 2. 8. Jesli w jest równe 0, konczymy
procedure. 9. Koniec.
31Dla 0, 4062510, otrzymujemy 0,40625 2
0,40625 0,8125 0,8125 2 0,8125
1,625 0,625 2 0,625 1,25 0,25
2 0,25 0,5 0,5 2 0,5
1,0 0,0 koniec Czyli 0,4062510
0,011012 Klopot? x 0,3 0,3 2 0,3
0,6 0,6 2 0,6 1,2 0,2 2 0,2
0,4 0,4 2 0,4 0,8 0,8 2 0,8
1,6 0,6 ... Otrzymujemy ulamek dwójkowy
okresowy, warto sprawdzic czy poprzestanie na
5-ciu cyfrach dwójkowych zapewni dobra dokladnosc
0,010012 0,25 0,03125 0,2812510 ?
32- Dane
- Liczby
- Calkowite
- Rzeczywiste
- Zespolone
- Wartosci logiczne
- Tekstowe
- Liczby calkowite
- dlugosc - zakres wartosci
- 1 B (bajt) -128 do 127
- 2 B -32768 do 32767
- 4 B -2147483648 do 2147483647
- 8 B 9,223,372,036,854,775,808
do 9,223,372,036,854,775,807 - Liczby rzeczywiste
- 4 B 6-7 cyfr -110-38
- 8 B 13 cyfr -110-308
- Liczby zespolone
- para liczb rzeczywistych (4B lub 8B)
- Wielkosci logiczne
33Algorytmy i struktury danych
- Informacja przechowywana w komputerach jest tylko
pewnym wycinkiem swiata rzeczywistego stanowi
jego abstrakcyjny model. - Abstrakcja oznacza tu ignorowanie tych cech
danego rzeczywistego obiektu, które dla
rozwiazania danego problemu nie sa potrzebne. - Jezeli chcemy rozwiazac problem to musimy
zdecydowac jakie dane beda przetwarzane i jak
beda one przechowywane w komputerze - Typy danych
- - proste
- - zlozone
- Proste (wbudowane)
- - liczbowe (calkowite, zmiennoprzecinkowe)
- - znakowe (teksty)
- - logiczne (prawda, falsz)
34- Typy zlozone konglomeraty zmiennych prostych
lub innych typów zlozonych - Tablice
- Slowniki
- Zbiory
- Rekordy
- Klasy
- Pliki
- Kolejki
- Stosy
- Drzewa
- Tablica - pozwala zapamietac wylacznie elementy
tego samego typu. - Tablice zapewniaja dostep swobodny do kazdego
elementu dostep odbywa sie - w identyczny sposób i mozna sie do nich
odwolywac w dowolnej kolejnosci. - Odwolanie sie do danego elementu odbywa sie
poprzez tzw. Indeksowanie - (oprócz nazwy tablicy podajemy numer elementu, do
którego chcemy sie odwolac - T10 5
- W niektórych jezykach programowania wymagane jest
podanie rozmiaru tablicy i
35Ada -- definicja typu tablicowego type TableType
is array(1 .. 100) of Integer -- definicja
zmiennej okreslonego typu tablicowego MyTable
TableType Visual Basic Dim a(1 to 5,1 to 5) As
Double Dim MyIntArray(10) As Integer Dim
MySingleArray(3 to 5) As Single C char
my_string40 int my_array
1,23,17,4,-5,100 Java int counts counts
new int5 PHP pierwszy_kwartal array(1
gt Styczen, Luty, Marzec) Python mylist
"List item 1", 2, 3.14
36Slownik Zbiór obiektów, do których mozemy
dotrzec podajac tzw klucz identyfikator
(haslo) wskazujace na dany obiekt (wartosc).
Obiekty w slowniku nie posiadaja
kolejnosci. Operacje na slowniku (Python) d
"key1""val1", "key2""val2" x
d"key2" d"key3" 122 d42
"val4 Rekord Pozwala przechowywac obiekty
róznego typu elementy rekordu to tzw.
pola type osoba is record imie napis
nazwisko napis wiek Integer end
37Rekord Zawiera dane róznego typu definicja type
osoba is record imie napis nazwisko
napis wiek Integer end uzycie o
osoba wypisz(o.imie) o.wiek 12
38Klasa Oprócz informacji o cechach obiektu zawiera
róniez informacje o dozwolonych na tym obiekcie
dzialaniach (funkcjach, jakie obiekt moze
wykonywac) class Samochod marka String
pojemnosc Float kolor Color
Jedz(kierunek) StanLicznika() Stop()
UruchomSilnik() end
39Wykorzystanie x,i Float i0 myCar new
Samochod() myCar.marka"Nissan" myCar.pojemnosc
1.8 myCar.UruchomSilnik() xmyCar.StanLicznika()
myCar.Jedz("przod") while(ilt10) begin imyCar.
StanLicznika()-x end myCar.Stop() Polecenie
myCar new Samochod() Definiuje obiekt klasy
Samochod (operator new)
40Pojecia zwiazane z klasa Obiekt to konkretna
realizacja klasy Dziedziczenie (ang.
Inheritance) pozwala tworzyc obiekty
wyspecjalizowane na podstawie obiektów bardziej
ogólnych. Nie trzeba definiowac calosci cech i
funkcjonalnosci a jedynie te, które róznia obiekt
specjalizowany od ogólniejszego. pojazd wlasnosc
i (dane) predkosc, polozenie dzialania Stój,
PoruszajSie pojazdCzterokolowy taki sam jak typ
pojazd oraz dodatkowo wlasnosci iloscDobrychKól
dzialania SkrecWLewo, SkrecWPrawo wodnosamolot
taki sam jak typ pojazd oraz dodatkowo
wlasnosci szybkoscToniecia dzialania Startuj,
Laduj pojazdKosmiczny wlasnosci zapasPowietrza
415. pojzadMarsjanski taki sam jak typ
pojazdCzterokolowy oraz taki sam jak typ
pojazdKosmiczny oraz wlasnosci
stanNaladowaniaAkumulatorów dzialania
RozlózBaterieSloneczne, LadujAkumulatory Abstrakc
ja (ang. abstraction) Rózne traktowanie tego
samego obiektu SamochódNissansrodek
transportu Enkapsulacja (ang. Encapsulation) -
ukrywanie implementacji, (syn. Hermetyzacja).
Obiekt nie moze zmieniac stanu wewnetrznego
innych obiektów w sposób dowolny kazdy obiekt
udostepnia innym tzw. interfejs, który narzuca
ograniczenia na wspólprace pomiedzy obiektami.
Np.. obiekt Kontobankowe nie powinien dopuscic by
dowolny inny obiekt mogl zmienic pole StanKonta
Polimorfizm (ang. Polymorphism)
(wielopostaciowosc) operacje na obiektach klas
rodzicielskich mozna przenosic na klasy
pochodne.
42Plik Sekwencyjna struktura, której elementy
ustawione sa jeden za drugim. Tymi elementami
moga byc rekordy, tablice i inne typy zlozone.
Liczba elementów moze byc dowolna (ograniczenia
moze narzucac nosnik pliku). Elementy pliku
mozna dopisywac na koncu pliku, mozna je
pobierac (czytac), mozna laczyc dwa pliki.
Plik mozna równiez tworzyc i otwierac
(udostepniac do przetwarzania). Kolejka Struktu
ra o nieokreslonym rozmiarze, zwykle zlozona z
obiektów tego samego typu. Elementy te tworza
ciag wazne poczatek kolejki (ang. head ,
glowa) i koniec (ang. Tail, ogon). Kolejka jest
obslugiwana pierwszy element (glowa) jest
pierwszym obslugiwanym, nowy trafia zawsze na
koniec kolejki stajac sie jej nowym ogonem.
Elementy obsluzone sa usuwane z kolejki. Taka
kolejka to tzw. FIFO (First In First Out).
Warianty kolejka priorytetowa (kolejnosc
kazdego obiektu w kolejce wynika z przypisanego
mu priorytetu. Kolejka cykliczna pierwszy
element ma poprzednika (ogon kolejki)
43Stos Podobny do kolejki (dowolna liczba
elementów), rózni sie sposobem obslugi Ostatni
dodany element jest pierwszym obslugiwanym. LIFO
Last In First Out Drzewo Strukture drzewa
tworza korzen, wezly, galezie i liscie. Od
korzenia odchodza wezly pierwszego poziomu, z
nimi moga byc polaczone wezly drugiego poziomu,
itd.. Wezel, z którego nie odchodza dalsze wezly
to lisc. Droga która laczy korzen z danym
lisciem to galaz. Jezeli od wezla n-tego poziomu
odchodzi wezel (wezly) poziomu n1szego to
mówimy, ze wezel n-ty jest rodzicem wezla
n1szego, natomiast n1szy jest jego
dzieckiem. Drzewa mozna wykorzystac np. w
algorytmach sortowania. Przyklad (wg. P.
Fulmanskiego) zasady Kazdy wezel przechowuje
jedna liczbe, Kazdy rodzic moze miec tylko dwójke
dzieci Po lewej stronie kazdego wezla wypisujemy
wartosci mniejsze od liczby w wezle, Po prawej
stronie liczby wieksze od przechowywanej w
wezle Liczby z drzewa wypisujemy podajac najpierw
wartosci na lewo od wezla, potem z wezla, potem z
prawej strony wezla
44Liczby sortowane 15,10,17,16,18,4,12,11. Etap 1
Etap 2 Etap 3 Etap 4
Etap 5 15 15
15 15
15 / / \
/ \ / \
10 10 17 10 17
10 17
/
/ \
16 16
18 Etap 6 Etap
7 Etap 8
15 15
15 /
\ / \
/ \ 10 17
10 17
10 17 / / \
/ \ / \
/ \ / \ 4 16 18
4 12 16 18 4 12 16
18
/
11
45Przyklady algorytmów - algorytmy obliczeniowe
obliczanie wartosci takich jak pierwiastki,
NWN, NWD, rozwiazania równan
46Algorytm znajdujacy pierwiastki równania
kwadratowego (zapis w pseudojezyku) Czytaj
a,b,c If (a0) then begin Pisz( To nie
jest równanie kwadratowe) end else
begin D b2-4ac if (D lt 0) then
begin RR -b/(2a) IM
Sqrt(-D)/(2A) Pisz( Dwa
rozwiazania zespolone, X1
, RR,i,IM, X2 , RR,-i,IM)
end else if(D0) then
begin X1 -b/(a) Pisz(
X1 X2 , X1) end
47else begin X1 (-bsqrt(D))/(2a) X2
(-b-sqrt(D))/(2a) Pisz( X1 , X1,
X2 , X2) end end
48Algorytm sortowania przez wstawianie Tablica A
zawiera N nieuporzadkowanych liczb For i1 to
N-1 step 1 do begin for ji1 to N step 1
do if (Ai lt Aj) then begin
w Ai Ai Aj
Aj w end end Porzadkowanie
rosnace czy malejace?
49Algorytmy iteracyjne i rekurencyjne Lac. Iteratio
powtarzanie algorytmy ieracyjne powtarzaja
pewien zestaw instrukcji Obiekt jest
rekurencyjny jezeli wystepuje we wlasnej
definicji (powoluje sie na siebie) N!
123.N, 0! 1 Iteracyjnie Function
Silnia(N) begin i0 s1 while (i lt N) do
begin i i1 s si end
return(s) end
50Silnia, wersja rekurencyjna Function
SilniaR(N) begin if (n0) then begin
return (1) end return nSilniaR(n-1) end
51Ciag Fibonacciego, dla n gt 1, Fibn Fibn-1
Fibn-2 Fib1 Fib0 1 Przyklad bardzo
nieskutecznej rekursji function FibR(n) begin
if (n0 or n1) then begin return (1)
end return (FibR(n-1)FibR(n-2)) end
52Wersja iteracyjna function FibIt(n) begin i
1 licznik q 0 zmienna
robocza x 1 wyraz n-1 y 1
wyraz n-2 while (iltn) do begin tmp
y zapamietaj wyraz n-2 y
yx przesun wyraz n-2 na kolejna wartosc
ciagu x q przesun wyraz n-1 na
kolejna wartosc ciagu
-- na wartosc wyrazu n-1 przed jego
przesunieciem ii1 //
zmieniamy stan licznika licznika end return
(x) end
53- Algorytmy wyszukiwania
- Dwa przypadki
- Wyszukujemy liczbe w zbiorze nieuporzadkowanym
wyszukiwanie liniowe - Wyszukujemy liczbe w zbiorze uporzadkowanym
(rosnaco lub malejaco) - - przeszukiwanie liniowe lub
- - przeszukiwanie polówkowe (binarne) bardziej
wydajne
54Algorytm szukania polówkowego Dla tablicy
uporzadkowanej rosnaco (Zapis graficzny)
55Przyklad (wg. T.Lubinski, http//www.algorytm.org/
Niech bedzie dana tablica 5-elementowa, a 1,
2, 4, 6, 7.Poszukajmy w niej element x 2.-Na
poczatku l 1, p 5.-Wybieramy element
srodkowy s (1 5) / 2 3.-Sprawdzamy czy
a3 jest równe 2? Nie, element ten jest równy 4,
jest on wiekszy od 2 zatem modyfikujemy p s
- 1 3 - 1 2.-Wybieramy element srodkowy s
(1 2) / 2 1. Sprawdzamy czy a1 jest równe
2? Nie, element ten jest równy 1, jest on
mniejszy od 2 zatem modyfikujemy l s 1 1
1 2.-Wybieramy element srodkowy s (2 2) /
2 2. Sprawdzamy czy a2 jest równe 2? Tak,
znalezlismy szukany element pod indeksem
2.Poszukajmy teraz element x 5.Na poczatku l
1, p 5.-Wybieramy element srodkowy s (1
5) / 2 3.-Sprawdzamy czy a3 jest równe 5?
Nie, element ten jest równy 4, jest on
mniejszy od 5 zatem modyfikujemy l s 1 3
1 4.-Wybieramy element srodkowy s (4 5) /
2 4.Sprawdzamy czy a4 jest równe 5? Nie,
element ten jest równy 6, jest on wiekszy od 5
zatem modyfikujemy p s - 1 3.-W tym momencie
l jest wieksze od p, zatem konczymy wyszukiwanie.
-Elementu o wartosci 5 nie ma w przeszukiwanej
tablicy.
56Zlozonosc obliczeniowa algorytmu Miara ilosci
zasobów (czas, liczba operacji, pamiec) jakie
potrzebuje algorytm Zwykle jest funkcja rozmiaru
danych wejsciowych (nie zawsze!) Np. obliczanie
wartosci wyznacznika z macierzy NxN metoda
rozwijania wg. dopelnien algebraicznych ma
zlozonosc N! Te sama wartosc mozna obliczyc
metoda rozkladu macierzy na iloczyn dwóch
macierzy trójkatnych (np.. metoda Crouta) ze
zlozonoscia N3 Zlozonosc czasowa miara jest
zwykle liczba operacji a nie rzeczywisty
czas Zlozonosc pamieciowa miara ilosci pamieci
niezbednej do realizacji zadania
57Przetwarzanie sekwencyjne i równolegle Przetwarza
nie sekwencyjne wykonywanie instrukcji
programów kolejno jedna za druga. Przetwarzanie
wspólbiezne wykonywanie instrukcji
programów równoczesnie na tym samym procesorze (z
podzialem czasu procesora). Przetwarzanie
równolegle wykonywanie instrukcji
programów równoczesnie na róznych procesorach
Przetwarzanie