technologia informacyjna

57
Technologia informacyjna

Upload: nero

Post on 12-Jan-2016

50 views

Category:

Documents


0 download

DESCRIPTION

Technologia informacyjna. Cele kursu. Ćwiczenia – zapewnić umiejętności potrzebne do przetrwania studiów - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Technologia informacyjna

Technologia informacyjna

Page 2: Technologia informacyjna

Cele kursu

• Ćwiczenia – zapewnić umiejętności potrzebne do przetrwania studiów

• Wykład – Prezentacja najbardziej istotnych zagadnień z zakresu technologii informacyjnej, ze szczególnym uwzględnieniem ich dalszego praktycznego zastosowania. Dyskusja bieżących problemów związanych z prezentowanymi zagadnieniami. Wprowadzenie do efektywnego wykorzystania systemów komputerowych i sieciowych.

Page 3: Technologia informacyjna

Ćwiczenia- Pisanie tekstów naukowych (wzory matematyczne, chemiczne, tabele itp.) Darmowe oprogramowanie OpenOffice (Windows, Linux)-Obliczenia: -numeryczne Język R (do ilustracji wybranych algorytmów Fortran) arkusz kalkulacyjny Excel, Euler- symboliczne Maxima, Euler- Wizualizacja danych naukowych – R, gnuplot, - Edytory struktur molekularnych – Avogadro- obsługa systemów operacyjnych Windows i Linux- podstawowe komendy systemu- oprogramowanie narzędziowe (edytory, archiwizatory)- oprogramowanie sieciowe - oprogramowanie antywirusowe

Page 4: Technologia informacyjna

Informatyka???

Page 5: Technologia informacyjna

Nauka o komputerach??

Page 6: Technologia informacyjna

Różne definicje informatyki:

• a) Informatyka jest to dziedzina wiedzy i działalności człowieka zajmująca się gromadzeniem, przetwarzaniem i wykorzystywaniem informacji. Informatyka zajmuje się również badaniem, jak te informacje przetworzyć.

Page 7: Technologia informacyjna

b) Informatyka to dziedzina, która zajmuje się przetwarzaniem informacji za pomocą pewnych schematów postępowania (zwanych algorytmami). Wynikiem takiego procesu jest znów informacja. Przy czym poprzez przetwarzanie nie należy wyłącznie rozumieć „zamianę” czy „przekształcenie” jednej informacji w drugą. Do zadań informatyki należy również wyszukiwanie oraz udostępnianie czy prezentacja informacji. Wszystko to będziemy jednak traktowali jako szersze ujecie „przetwarzania”.

c 2009 by P. Fulmanski, Uniwersytet Łódzki. Wersja z dnia: 9 stycznia 2010

Page 8: Technologia informacyjna

c) Informatyka – nauka o przetwarzaniu informacji przy użyciu środków technicznych. W. Turski:

d) Informatyką określa się całokształt działalności obejmującej wiedzę i umiejętności jej wykorzystania, a dotyczącej zastosowania metod i środków technicznych do sprawnego: - zbierania, - przetwarzania (analizy), - przechowywania informacji (danych) - przesyłania informacjiw celu sprawnego i określonego (celowego) działania danego systemu.

e) Informatyka (computer science, computing science, information technology (IT) )– dziedzina nauki i techniki zajmująca się przetwarzaniem informacji – w tym technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informacje. Romuald Marczyński

Page 9: Technologia informacyjna

f) Informatyka (w sensie anglojęzycznego terminu Informatics) jest studiowaniem systemów pozyskujących, reprezentujących, przetwarzających i wytwarzających informacje włączając w to wszystkie obliczeniowe, kognitywne i społeczne aspekty. Zasadniczym przedmiotem zainteresowania jest przetwarzanie (przekształcanie) informacji czy to przez procesy obliczeniowe czy komunikacyjne, czy to przez organizmy żywe czy urządzenia. W tym sensie informatykę należy postrzegać jako dziedzinę znacznie szersza niż informatyka w sensie Computer Science. Można powiedzieć, ze informatyka (w sensie Informatics) ogólnie pojęty aspekt pozyskiwania, przetwarzania, składowania itd. informacji rozciąga zarówno nad maszynami (komputery) jak i istotami żywymi a ogólnie, wszystkim tym co ma jakikolwiek związek z informacja

P. Fulmanski, Uniwersytet Łódzki. Wersja z dnia: 9 stycznia 2010

Page 10: Technologia informacyjna

Najważniejsze dziedziny badań współczesnej informatyki - Teoria informacji Teoria informacji zajmuje sie informacją, jej transmisją, jak również kodowaniem danych w celu pewniejszego lub szybszego przesłania jej od nadawcy do odbiorcy.- Algorytmika

Tworzenie i badanie algorytmów

Page 11: Technologia informacyjna

Algorytm – w matematyce oraz informatyce to skończony, uporządkowany ciąg jasno zdefiniowanych czynnosci, koniecznych do wykonania pewnego zadania.

Powinien spełniać następujące wymagania:

1. Musi posiadać określony stan początkowy, czyli operacje, od której zaczyna sie jego realizacja.2. Liczba operacji potrzebnych do zakończenia pracy musi być skończona – warunek dyskretnosci.3. Musi dać się zastosować do rozwiązywania całej klasy zagadnień, a nie jednego konkretnego zadania – warunek uniwersalnosci.4. Interpretacja poszczególnych etapów wykonania musi być jednoznaczna – warunek jednoznacznosci.5. Cel musi być osiągnięty w akceptowalnym czasie – warunek efektywnosci. Co oznacza akceptowalny to zależy od zadania.6. Musi posiadać wyróżniony koniec.

Page 12: Technologia informacyjna

Najważniejsze dziedziny badań współczesnej informatyki (cd.)

- Bazy danych

- Grafika komputerowa

- Programowanie

- Systemy operacyjne

- Sieci komputerowe

- Kryptografia

- Sztuczna inteligencja

Page 13: Technologia informacyjna

Informacja ???

• a) Informacja (definicja ogólna) to taki czynnik, któremu człowiek może przypisać określony sens (znaczenie), aby móc ją wykorzystywać do różnych celów.

• Informacja (definicja informatyczna) to zbiór danych zebranych w celu ich przetwarzania i otrzymania wyników (nowych danych)

Page 14: Technologia informacyjna

b) Każdy czynnik zmniejszający stopień´ niewiedzy o jakimś´ zjawisku czy obiekcie nazywamy informacją Tomasz Kwiatkowski Obserwatorium Astronomiczne UAM, Poznańc) Claude Shannon (1948-49) – komunikat ma tym więcej informacji im mniejsze jest prawdopodobieństwo jego wystąpienia.

d) Informacja obiektywna W cybernetyce i teorii informacji najbardziej ogólnie: każde rozpoznanie stanu układu, odróżnialnego od innego stanu tego układu (stanu wyróżnionego); wyróżnienie pewnego stanu wyróżnionego (odróżnialnego) z repertuaru (zbioru stanów wyróżnionych). "...w pojęciu informacji istotne jest nie samo zaistniałe zjawisko, lecz jego stosunek do zbioru zdarzeń, które mogły były zaistnieć".Można odróżnić:1. informację swobodną, kiedy możliwosci (stany, zdarzenia) uważamy za abstrakcyjne i nie przypisujemy im żadnego znaczenia fizycznego,2. informację związaną, kiedy możliwosci (stany, zdarzenia) mogą być interpretowane jako mikrostany (lub zbiory mikrostanów) pewnego układu fizycznego.Informacja zawarta w stanach układu kwantowego to informacja kwantowa.

Wikipedia.pl

Page 15: Technologia informacyjna

1. Ilość informacji otrzymanej przy zajściu zdarzenia xi (entropia tego zdarzenia, entropia indywidualna) to (Hartley 1928):

gdzie:Ii - ilość informacji otrzymanej przy zajściu zdarzenia xi,pi - prawdopodobieństwo zajścia zdarzenia xi,r - podstawa logarytmu.

W teorii informacji najczęściej stosuje się logarytm o podstawie r = 2, wówczas jednostką informacji jest bit (szanon).

Przy r = e jednostką jest nat (nit), natomiast

przy r = 10 - dit (hartley).

Page 16: Technologia informacyjna

2. Przeciętna ilość informacji przypadająca na zajście zdarzenia z pewnego zbioru n zdarzeń (entropia bezwarunkowa tego zbioru, entropia przeciętna) jest średnią arytmetyczną ważoną ilości informacji otrzymywanej przy zajściu poszczególnych zdarzeń, gdzie wagami są prawdopodobieństwa tych zdarzeń (Shannon 1948):

gdzie:H(X) - entropia bezwarunkowa zbioru X,n - liczba zdarzeń w zbiorze,pi - prawdopodobieństwo zajścia zdarzenia xi.

Page 17: Technologia informacyjna

Przechowywanie i przekazywanie informacji

• KOMUNIKAT – zakodowana wiadomość zawierająca pewną ilość informacji;

• Bit – BInary digiT – cyfra binarna – jednostka informacji wywodząca się z prawdopodobieństwa wystąpienia komunikatu

Page 18: Technologia informacyjna

Ilość bitów k = log2 (p) = - log2 (p) p – prawdopodobieństwo wystąpienia 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 – słowo kodowedługość słowa kodowego – (const – stała lub var – zmienna)B (bajt - byte) – 8 bitów - (binarne słowo kodowe o długości 8 znaków) 28 = 256KB = 1024 B (210) np. (10000111)2 = (135)10

kB = 1000 B === k = tysiąc (kilo) (11111111)2 = (255)10

MB = 1024 KBGB = 1024 MB (gigabajt)TB = 1024 GB (terabajt)PB = 1024 TB (petabajt)

Page 19: Technologia informacyjna

Zapisy dwójkowe ą zbyt długie do łatwego pamiętaniakod hexadecymalny – bajt dzielony na półbajty (ang. „nibble”) i każdy 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

Page 20: Technologia informacyjna

kod ósemkowy – podstawa 8

BCD – Binary Coded Decimal (59)10 = 0101 1001 (158)10 = (10011110)2 = #9E = (256)8 = (000101011000)BCD

ASCII – American Standard Code for Information Interchange – oparty o słowo 8 bitowe, np. Spacja 32 # 20, 0 (zero) 48 #30 A 65 # 41 a 97 # 61

ASCII zwykły – (7 bitowe)ASCII rozszerzony (8 bitowe)

Unicode – rozszerzenie standardowego kodu ASCII – kodowanie znaków na 2B (1 zgodny z ASCII) Ą 0104 ą 0105 Ć 0106 ć 0107, ń 0144

Page 21: Technologia informacyjna

Zapisywanie sygnałów analogowych w technice cyfrowej

(dyskretyzacja)

Page 22: Technologia informacyjna

Okres próbkowania Ts to odstęp czasu pomiędzy pobieraniem kolejnych próbek. Częstotliwość próbkowania to odwrotność okresu próbkowania: .Aby spróbkowany sygnał z postaci cyfrowej dało się przekształcić bez straty informacji z powrotem do postaci analogowej, musi być spełnione twierdzenie Kotielnikowa-Shannona o próbkowaniu. Mówi ono, że częstotliwość próbkowania nie może być mniejsza niż podwojona szerokość pasma sygnału. Jeśli ten warunek nie jest spełniony, wówczas występuje zjawisko aliasingu.( nieodwracalne zniekształcenie sygnału).

Przykład praktycznego wykorzystania Ludzkie ucho słyszy dźwięki do częstotliwości około 20 kHz. Według twierdzenia Kotielnikowa-Shannona, częstotliwość zapisu cyfrowego musi być zatem większa niż 40 kHz, aby nie dało się usłyszeć przekłamań (tzw. częstotliwość Nyquista). Stąd 44 100 próbek na sekundę (44,1 kHz) dla każdego kanału, na płycie CD-Audio przyjęto za wartość wystarczającą.

Page 23: Technologia informacyjna

Kwantyzacja

• Jest to drugi (po próbkowaniu) etap procesu przetwarzania sygnału analogowego na cyfrowy.

• Sygnały analogowe mogą przyjmować dowolne wartości

• Zapis cyfrowy używa słów o skończonej liczbie bitów, a co z tym idzie narzuca ograniczenia na zbiór wartości zapisywanego sygnału.

• Dozwolone wartości nazywane są poziomami reprezentacji (cyfrowej)

• kwantyzacja polega na przypisaniu wartości analogowych do najbliższych (liczbowo) poziomów reprezentacji

• błąd kwantyzacji - różnica pomiędzy wartością skwantowaną i oryginalną

Page 24: Technologia informacyjna

Sygnał analogowy

Kwantyzacja

Sygnał cyfrowy – mała częstość próbkowania i słaba rozdzielczość

Sygnał cyfrowy – zwiększona częstość próbkowania i poprawiona rozdzielczość

Page 25: Technologia informacyjna

Rodzaje kwantyzacji:1) Skalarna – kwantuje się pojedyncze wartości 2) Wektorowa – jednocześnie kwantuje się dwie lub więcej wartości

Kw. skalarna może być:a) Równomiernab) Nierównomierna -Równomierna stosuje stałe odległości pomiędzy poziomami reprezentacji -Nierównomierna dostosowuje położenia poziomów do rozkładu prawdopodobieństwa wartości sygnałów analogowych

Bardziej dokładne omówienie konwersji A/D można znaleźć np. na stronie:„Próbkowanie teoria i praktyka” - artykuł w Internecie

http://www.promusic.pl/artykuly/artykuly-single-view/artykul/probkowanie-teoria-i-praktyka/

Zawiera przystępny opis problemów związanych z konwersją danych analogowych do postaci zapisu cyfrowego

Page 26: Technologia informacyjna

Liczba jest pewnym abstrakcyjnym bytem wykorzystywanym do zliczaniai mierzenia.

Symbol lub słowo jezyka naturalnego wyrazajace liczbę nazywamy numerałem lub cyfrą (ang. numeral, digit) a w jezyku potocznym, po prostu liczbą.

34 i XXXIV to dwa różne numerały reprezentujące tę samą liczbę

System liczbowy (SL) jest sposobem reprezentacji liczb przy uzyciu cyfr (numerałów) w jednolity sposób.

Rodzaje systemów liczbowych:

1) Unarny SL – każda liczba naturalna jest reprezentowana przez n-krotne powtórzenie znaku reprezentującego jednostkę np. IIII

Takie systemy nazywamy addytywnymi (żeby znaleźć wartość liczby należy dodać wartości reprezentowane przez cyfry (tutaj jednostki)

Page 27: Technologia informacyjna

Rzymski SLSymbol Wartość I 1 (unus) V 5 (quinque) X 10 (decem) L 50 (quinquaginta) C 100 (centum) D 500 (quingenti) M 1000 (mille)

Do zapisu większych liczb używano dodatkowych symboli:| (pionowa kreska) – liczba pomiędzy takimi kreskami mnożona przez 100|MC| = (1000+100)*100 = 110 000 = (1000+100)*1000 = 1 100 000

Jeżeli przed symbolem o większej wartości występował symbol o mniejszej wartości to oznaczało to odejmowanie.

Jeżeli dana liczba mogła być zapisana na wiele sposobów to poprawny był zapis bardziej zwarty: np. IX zamiast VIIII

CM

Page 28: Technologia informacyjna

Pozycyjnym systemem liczbowym (ang. positional numeralsystem) nazywamy parę (b;D), Gdzie:b jest liczbą naturalną nazywaną podstawą systemu (ang. base), D jest skończonym zbiorem b symboli {s0; s1; : : : ; sb},nazywanych cyframi (ang. digits). System taki nazywamy systememliczbowym o podstawie b (ang. base-b system).Każda liczba jest jednoznacznie reprezentowana jakociąg cyfr a jej wartość zależy zarówno od cyfr jak i pozycji na jakich onewystepuja. Wartosc v ciagu dkdk-1 …. d1d0

obliczamy według ponizszej formuły”

v = dkbk + dk-1bk-1 + : : : + d1b1 + d0b0 (2.1)gdzie d0; : : : ; dk to cyfry danego SL.

Page 29: Technologia informacyjna

System dwójkowy:Przejście z systemu dziesiętnego na dwójkowy (algorytm) – zamieniamy liczbę x zapisaną w systemie dziesiętnym na jej dwójkowy odpowiednik y:1) Początek2) Niech z = x3) Podziel z przez 2, zapamiętaj wynik jako q4) Jeżeli q jest całkowite zapisz 05) Jeżeli q nie jest całkowite zapisz 16) Jako nową wartość z weź całkowitą część liczby q7) Jeżeli z jest różna od zera idź do punktu 38) Jeżeli z jest równe 0 idź do punktu 99) Koniec

Poszczególne wyniki zapisuj od prawej do lewej!x = z = 37510 | 187*2 +1 (q =187, r = 1, y = 1) z = 187 | 93*2 +1 (q =93 , r = 1, y = 11) z = 93 | 46*2 +1 (q =46 , r = 1, y = 111) z = 46 | 23*2 +0 (q =23 , r = 0, y = 0111) z = 23 | 11*2 +1 (q =11 , r = 1, y = 10111) z = 11 | 5*2 +1 (q = 5 , r = 1, y = 110111) z = 5 | 2*2 +1 (q = 2 , r = 1, y = 1110111) z = 2 | 1*2 +0 (q = 1 , r = 0, y = 01110111) z = 1 | 0*2 +1 (q =0 , r = 1, y = 101110111) z = 0

Page 30: Technologia informacyjna

Ułamki

0,11012 = 1*2-1 + 1*2-2 + 0*2-3 + 1*2-4 = 0,5 + 0,25 + 0 + 0,0625 = 0,812510

Zamiana ułamka dziesiętnego na dwójkowy:1. Start.2. Niech w = x.3. Mnożymy w przez 2.4. Jeśli wynikiem operacji mnożenia jest liczba większa od jedności, zapisujemy na boku 1.5. Jeśli wynikiem operacji mnożenia jest liczba mniejsza od jedności, zapisujemy na boku 0.6. Ułamkową część wyniku – po odrzuceniu ewentualnej części całkowitej – zapisujemy jako w.7. Jeśli w jest różne od 0, przechodzimy z powrotem do kroku 2.8. Jeśli w jest równe 0, kończymy procedurę.9. Koniec.

Page 31: Technologia informacyjna

Dla 0, 4062510, otrzymujemy:

0,40625 | 2 * 0,40625 = 0,81250,8125 | 2 * 0,8125 = 1,6250,625 | 2 * 0,625 = 1,250,25 | 2 * 0,25 = 0,50,5 | 2 * 0,5 = 1,00,0 | koniec

Czyli 0,4062510 = 0,011012

Kłopot?x = 0,30,3 | 2 * 0,3 = 0,60,6 | 2 * 0,6 = 1,20,2 | 2 * 0,2 = 0,40,4 | 2 * 0,4 = 0,80,8 | 2 * 0,8 = 1,60,6 | ...

Otrzymujemy ułamek dwójkowy okresowy, warto sprawdzić czy poprzestanie na 5-ciu cyfrach dwójkowych zapewni dobrą dokładność 0,010012 = 0,25 + 0,03125 = 0,2812510 ?

Page 32: Technologia informacyjna

Dane:1)Liczby

a) Całkowiteb) Rzeczywistec) Zespolone

2)Wartości logiczne3)TekstoweLiczby całkowite: długość - zakres wartości 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,807Liczby rzeczywiste: 4 B 6-7 cyfr +-1*10+-38

8 B 13 cyfr +-1*10+-308

Liczby zespolone: para liczb rzeczywistych (4B lub 8B)Wielkości logiczne Prawda (1) lub fałsz (0)Teksty Zwykle 80-255 znaków

Page 33: Technologia informacyjna

Algorytmy i struktury danych

• Informacja przechowywana w komputerach jest tylko pewnym wycinkiem świata rzeczywistego – stanowi jego abstrakcyjny model.

• Abstrakcja oznacza tu ignorowanie tych cech danego rzeczywistego obiektu, które dla rozwiązania danego problemu nie są potrzebne.

• Jeżeli chcemy rozwiązać problem to musimy zdecydować jakie dane będą przetwarzane i jak będą one przechowywane w komputerze

• Typy danych:

• - proste

• - złożone

• Proste – (wbudowane)

• - liczbowe (całkowite, zmiennoprzecinkowe)

• - znakowe (teksty)

• - logiczne (prawda, fałsz) …

Page 34: 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-Drzewa

-Tablica - pozwala zapamietać wyłącznie elementy tego samego typu. Tablice zapewniają dostęp swobodny – do każdego elementu dostęp odbywa się w identyczny sposób i można się do nich odwoływać w dowolnej kolejności. Odwołanie się do danego elementu odbywa się poprzez tzw. Indeksowanie (oprócz nazwy tablicy podajemy numer elementu, do którego chcemy się odwołaćT[10] := 5

W niektórych językach programowania wymagane jest podanie rozmiaru tablicy i sposobu indeksowania

Np. T3: Array[-2..8] of Real T4: Array[1..10] [1..5] [1..6] of Integer

Page 35: Technologia informacyjna

Ada:-- definicja typu tablicowegotype TableType is array(1 .. 100) of Integer;-- definicja zmiennej okreslonego typu tablicowegoMyTable : TableType;

Visual Basic:Dim a(1 to 5,1 to 5) As DoubleDim MyIntArray(10) As IntegerDim MySingleArray(3 to 5) As Single

C:char my_string[40];int my_array[] = {1,23,17,4,-5,100};

Java:int [] counts;counts = new int[5];

PHP:$pierwszy_kwartal = array(1 => ’Styczen’, ’Luty’, ’Marzec’);

Python:mylist = ["List item 1", 2, 3.14]

Page 36: Technologia informacyjna

Słownik:

Zbiór obiektów, do których możemy dotrzeć podając tzw klucz – identyfikator (hasło)wskazujące na dany obiekt (wartość). Obiekty w słowniku nie posiadają kolejności.Operacje na słowniku (Python)d = {"key1":"val1", "key2":"val2"}x = d["key2"]d["key3"] = 122d[42] = "val4„

RekordPozwala przechowywać obiekty różnego typu – elementy rekordu to tzw. pola

type osoba is record imie: napis; nazwisko: napis; wiek: Integer;end

Page 37: Technologia informacyjna

Rekord:Zawiera dane różnego typu

definicjatype osoba is record imie: napis; nazwisko: napis; wiek: Integer;end

użycieo: osoba;wypisz(o.imie);o.wiek := 12;

Page 38: Technologia informacyjna

KlasaOprócz informacji o cechach obiektu zawiera rónież informację o dozwolonychna tym obiekcie działaniach (funkcjach, jakie obiekt może wykonywać)

class Samochod: marka: String; pojemnosc: Float; kolor: Color; Jedz(kierunek); StanLicznika(); Stop(); UruchomSilnik();end

Page 39: Technologia informacyjna

Wykorzystanie:x,i: Float;i:=0;

myCar = new Samochod();myCar.marka="Nissan";myCar.pojemnosc=1.8;myCar.UruchomSilnik();x=myCar.StanLicznika();myCar.Jedz("przod");

while(i<10)begini=myCar.StanLicznika()-x;endmyCar.Stop();

Polecenie myCar = new Samochod();

Definiuje obiekt klasy Samochod (operator „new”)

Page 40: Technologia informacyjna

Pojęcia związane z klasą

Obiekt to konkretna realizacja klasy

Dziedziczenie (ang. Inheritance) – pozwala tworzyc obiekty wyspecjalizowane na podstawie obiektów bardziej ogólnych. Nie trzeba definiować całości cech i funkcjonalności a jedynie te, które róznia obiekt specjalizowany od ogólniejszego.

pojazd:własnosci (dane): predkosc, połozeniedziałania: Stój, PoruszajSie

pojazdCzterokołowy: taki sam jak typ pojazd oraz dodatkowo własności: iloscDobrychKół działania: SkrecWLewo, SkrecWPrawo

wodnosamolot: taki sam jak typ pojazd oraz dodatkowo własnosci: szybkoscToniecia działania: Startuj, Laduj

pojazdKosmiczny: własnosci: zapasPowietrza

Page 41: Technologia informacyjna

5.pojzadMarsjanski: taki sam jak typ pojazdCzterokołowy oraz takisam jak typ pojazdKosmiczny oraz własnosci: stanNaładowaniaAkumulatorówdziałania: RozłózBaterieSłoneczne, ŁadujAkumulatory

Abstrakcja (ang. abstraction) Rózne traktowanie tego samego obiektuSamochód–Nissan–srodek transportu

Enkapsulacja (ang. Encapsulation) - ukrywanie implementacji,(syn. Hermetyzacja). Obiekt nie może zmieniać stanu wewnętrznego innych obiektóww sposób dowolny – każdy obiekt udostępnia innym tzw. interfejs, który narzuca ograniczenia na współprace pomiędzy obiektami. Np.. obiekt Kontobankowe niepowinien dopuścić by dowolny inny obiekt mogł zmienic pole StanKonta

Polimorfizm (ang. Polymorphism) – (wielopostaciowość) operacje na obiektach klas rodzicielskich można przenosić na klasy pochodne.

Page 42: Technologia informacyjna

PlikSekwencyjna struktura, której elementy ustawione są jeden za drugim. Tymi elementami mogą być rekordy, tablice i inne typy złożone. Liczba elementówmoże być dowolna (ograniczenia może narzucać nośnik pliku).

Elementy pliku można dopisywać na końcu pliku, można je pobierać (czytać), można łączyć dwa pliki.

Plik można również tworzyć i otwierać (udostępniać do przetwarzania).

KolejkaStruktura o nieokreślonym rozmiarze, zwykle złozona z obiektów tego samego typu.Elementy te tworzą ciąg – ważne: początek kolejki (ang. head , głowa) i koniec (ang. Tail, ogon). Kolejka jest obsługiwana – pierwszy element (głowa) jest pierwszym obslugiwanym, nowy trafia zawsze na koniec kolejki stajac się jej nowym ogonem. Elementy obsłużone są usuwane z kolejki. Taka kolejka to tzw. FIFO(First In First Out). Warianty: kolejka priorytetowa (kolejność każdego obiektu w kolejce wynika z przypisanego mu priorytetu. Kolejka cykliczna – pierwszy element ma poprzednika (ogon kolejki)

Page 43: Technologia informacyjna

StosPodobny do kolejki (dowolna liczba elementów), rózni się sposobem obsługi:Ostatni dodany element jest pierwszym obsługiwanym.LIFO – Last In First Out

DrzewoStrukture drzewa tworzą: korzeń, węzły, gałęzie i liście. Od korzenia odchodzą węzłypierwszego poziomu, z nimi mogą być połączone węzły drugiego poziomu, itd..Węzeł, z którego nie odchodzą dalsze węzły to liść. Droga która łączy korzeń z danym liściem to gałąź. Jęzeli od węzła n-tego poziomu odchodzi węzeł (węzły)poziomu n+1szego to mówimy, że węzeł n-ty jest rodzicem węzlą n+1szego, natomiast n+1szy jest jego dzieckiem.Drzewa można wykorzystać np. w algorytmach sortowania.Przykład (wg. P. Fulmańskiego) – zasady:Każdy węzeł przechowuje jedną liczbę,Każdy rodzic może mieć tylko dwójkę dzieciPo lewej stronie każdego węzła wypisujemy wartości mniejsze od liczby w węźle,Po prawej stronie liczby wieksze od przechowywanej w węźleLiczby z drzewa wypisujemy podając najpierw wartości na lewo od węzła, potemz węzła, potem z prawej strony węzła

Page 44: Technologia informacyjna

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

Page 45: Technologia informacyjna

Przykłady algorytmów: - algorytmy obliczeniowe obliczanie wartości takich jak: pierwiastki, NWN, NWD, rozwiązania równań

Page 46: Technologia informacyjna

Algorytm znajdujący pierwiastki równania kwadratowego(zapis w pseudojęzyku)

Czytaj: a,b,cIf (a=0) then begin Pisz( „To nie jest równanie kwadratowe”) end else begin D:= b^2-4*a*c if (D < 0) then begin RR := -b/(2*a); IM:= Sqrt(-D)/(2*A); Pisz( „Dwa rozwiązania zespolone:”, „X1 =„ , RR,”+i*”,IM, „X2 =„ , RR,”-i*”,IM) end else if(D=0) then begin X1 = -b/(*a) Pisz( „X1 = X2 =„ , X1) end

Page 47: Technologia informacyjna

else begin X1 := (-b+sqrt(D))/(2*a); X2 := (-b-sqrt(D))/(2*a); Pisz( „X1 =„ , X1, „X2 =„, X2) end

end

Page 48: Technologia informacyjna

Algorytm sortowania przez wstawianieTablica A zawiera N nieuporządkowanych liczb

For i:=1 to N-1 step 1 do begin for j:=i+1 to N step 1 do if (A[i] < A[j]) then begin w := A[i]; A[i] := A[j]; A[j] = w; end end

Porządkowanie rosnące czy malejące?

Page 49: Technologia informacyjna

Algorytmy iteracyjne i rekurencyjneŁac. Iteratio – powtarzanie algorytmy ieracyjne powtarzają pewien zestaw instrukcji

Obiekt jest rekurencyjny jeżeli występuje we własnej definicji (powołuje się na siebie)

N! = 1*2*3*….*N, 0!= 1

Iteracyjnie:Function Silnia(N)begin i:=0; s:=1; while (i < N) do begin i := i+1 s = s*i; end return(s);end

Page 50: Technologia informacyjna

Silnia, wersja rekurencyjna

Function SilniaR(N)begin if (n=0) then begin return (1); end return n*SilniaR(n-1);end

Page 51: Technologia informacyjna

Ciag Fibonacciego, dla n > 1,

Fibn := Fibn-1 + Fibn-2;

Fib1 = Fib0 = 1

Przykład bardzo nieskutecznej rekursji

function FibR(n)begin if (n=0 or n=1) then begin return (1); end return (FibR(n-1)+FibR(n-2));end

Page 52: Technologia informacyjna

Wersja iteracyjna

function FibIt(n)begin i := 1; # licznik q := 0; # zmienna robocza x := 1; # wyraz n-1 y := 1; # wyraz n-2 while (i<n) do begin tmp := y; # zapamietaj wyraz n-2 y := y+x; # 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 i:=i+1; // zmieniamy stan licznika licznika end return (x);end

Page 53: Technologia informacyjna

Algorytmy wyszukiwania:Dwa przypadki: 1) Wyszukujemy liczbę w zbiorze nieuporządkowanym – wyszukiwanie liniowe2) Wyszukujemy liczbę w zbiorze uporządkowanym (rosnąco lub malejąco)

- przeszukiwanie liniowe lub- przeszukiwanie połówkowe (binarne) – bardziej wydajne

Page 54: Technologia informacyjna

Algorytm szukania połówkowegoDla tablicy uporządkowanej rosnąco(Zapis graficzny)

Page 55: Technologia informacyjna

Przykład (wg. T.Lubiński, http://www.algorytm.org/:Niech będzie dana tablica 5-elementowa, a = {1, 2, 4, 6, 7}.Poszukajmy w niej element x = 2.-Na początku l = 1, p = 5.-Wybieramy element środkowy s = (1 + 5) / 2 = 3.-Sprawdzamy czy a[3] jest równe 2? Nie, element ten jest równy 4, jest on większy od 2 zatem modyfikujemy p = s - 1 = 3 - 1 = 2.-Wybieramy element środkowy s = (1 + 2) / 2 = 1. Sprawdzamy czy a[1] 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 środkowy s = (2 + 2) / 2 = 2. Sprawdzamy czy a[2] jest równe 2? Tak, znaleźliśmy szukany element pod indeksem 2.

Poszukajmy teraz element x = 5.Na początku l = 1, p = 5.-Wybieramy element środkowy s = (1 + 5) / 2 = 3.-Sprawdzamy czy a[3] 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 środkowy s = (4 + 5) / 2 = 4.Sprawdzamy czy a[4] jest równe 5? Nie, element ten jest równy 6, jest on większy od 5 zatem modyfikujemy p = s - 1 = 3.-W tym momencie l jest większe od p, zatem kończymy wyszukiwanie. -Elementu o wartości 5 nie ma w przeszukiwanej tablicy.

Page 56: Technologia informacyjna

Złożoność obliczeniowa algorytmu

Miara ilości zasobów (czas, liczba operacji, pamięć) jakie potrzebuje algorytmZwykle jest funkcją rozmiaru danych wejściowych (nie zawsze!)

Np. obliczanie wartości wyznacznika z macierzy NxN metodą rozwijania wg. dopełnień algebraicznych ma złożonośc N!

Tę sama wartośc można obliczyć metodą rozkładu macierzy na iloczyndwóch macierzy trójkątnych (np.. metoda Crouta) ze złożonością N3

Złożoność czasowa – miara jest zwykle liczba operacji a nie rzeczywisty czas

Złożoność pamięciowa – miara ilości pamieci niezbędnej do realizacji zadania

Page 57: Technologia informacyjna

Przetwarzanie

Przetwarzanie sekwencyjne i równoległe

Przetwarzanie sekwencyjne – wykonywanie instrukcji programów kolejnojedna za drugą.

Przetwarzanie współbieżne – wykonywanie instrukcji programówrównocześnie na tym samym procesorze (z podziałem czasu procesora).

Przetwarzanie równoległe – wykonywanie instrukcji programówrównocześnie na różnych procesorach