Technologia informacyjna - PowerPoint PPT Presentation

1 / 57
About This Presentation
Title:

Technologia informacyjna

Description:

Technologia informacyjna Typy z o one konglomeraty zmiennych prostych lub innych typ w z o onych Tablice S owniki Zbiory Rekordy Klasy Pliki Kolejki Stosy ... – PowerPoint PPT presentation

Number of Views:111
Avg rating:3.0/5.0
Slides: 58
Provided by: mro148
Category:

less

Transcript and Presenter's Notes

Title: Technologia informacyjna


1
Technologia informacyjna
2
Cele 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

4
Informatyka???
5
Nauka o komputerach??
6
Ró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.

7
b) 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
8
c) 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
9
f) 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
10
Najwazniejsze 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
11
Algorytm 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

13
Informacja ???
  • 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).

16
2. 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.
17
Przechowywanie i przekazywanie informacji
  • KOMUNIKAT zakodowana wiadomosc zawierajaca
    pewna ilosc informacji
  • Bit BInary digiT cyfra binarna jednostka
    informacji wywodzaca sie z prawdopodobienstwa
    wystapienia komunikatu

18
Ilosc 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

20
kod ó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
21
Zapisywanie sygnalów analogowych w technice
cyfrowej (dyskretyzacja)
22
Okres 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.
23
Kwantyzacja
  • 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

24
Sygnal 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)

27
Rzymski 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
28
Pozycyjnym 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.
29
System 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
30
Ulamki 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.
31
Dla 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

33
Algorytmy 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

35
Ada -- 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
36
Slownik 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
37
Rekord 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
38
Klasa 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
39
Wykorzystanie 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)
40
Pojecia 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
41
5. 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.
42
Plik 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)
43
Stos 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
44
Liczby 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
45
Przyklady algorytmów - algorytmy obliczeniowe
obliczanie wartosci takich jak pierwiastki,
NWN, NWD, rozwiazania równan
46
Algorytm 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
47
else begin X1 (-bsqrt(D))/(2a) X2
(-b-sqrt(D))/(2a) Pisz( X1 , X1,
X2 , X2) end end
48
Algorytm 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?
49
Algorytmy 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
50
Silnia, wersja rekurencyjna Function
SilniaR(N) begin if (n0) then begin
return (1) end return nSilniaR(n-1) end

51
Ciag 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
52
Wersja 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

54
Algorytm szukania polówkowego Dla tablicy
uporzadkowanej rosnaco (Zapis graficzny)
55
Przyklad (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.
56
Zlozonosc 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
57
Przetwarzanie 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
Write a Comment
User Comments (0)
About PowerShow.com