20515

20515



nazwylnterfejsów] {/ nagłówki metod /} • Przykład interfejsu: interface OperacjeGraficzne {/ void rysowanie(); / void usuwanie(); /}. Implementacja interfejsu • Definicja metod umieszczonych w interfejsach umieszczana jest w klasach implementujących dany interfejs. • ... class nazwaKlasy extends... implements Listalnterfejsów • klasa implementująca interfejs musi zawierać definicje wszystkich metod zadeklarowanych w interfejsie (w przeciwnym przypadku staje się klasą abstrakcyjną) • klasa może implementować wiele interfejsów. Zastosowanie interfeisówwskazuie na właściwości pewnego abstrakcyjnego pojęcia •definiowanie związków pomiędzy klasami - wszystkie klasy implementujące interfejs posiadają wspólne właściwości (mogą realizować operacje określone w interfejsie) *nazwa interfejsu może funkcjonować jako nazwa typu. INTERFEJS ITERATOR Public interface Iterator {/ boolean hasNext(); / Object next(); / void remove(); /}

Wykorzystanie iteratora do usuwania elementów Collection collection = ...; / Iterator iterator = collection.iterator(); / while (iterator.hasNext()) {/ Object element = iterator.next(); / if (removalCheck(element)) {/ iterator.remove(); /} / }

WYMAGANIA WOBEC ALGORYTMÓW* poprawność - algorytm generuje prawidłowe rezultaty (nie zawiera błędów),* wydajność - realizacja algorytmu wymaga użycia akceptowalnej ilości zasobow:-czasu,- pamięci.

Pojecie błędu* niezgodność z obowiązującymi regułami pisania, liczenia, wymowy itp.; odstępstwo od normy; pomyłka* postępek, działanie, które przynosi komuś złe skutki; niewłaściwe posunięcie, przedsięwzięcie* mylne, fałszywe mniemanie o czymś (przestarz.)

Błędy w programowaniu* błędy logiczne - na etapie projektowania algorytmu (środki zaradcze: stosowanie sprawdzonych algorytmów, formalne dowodzenie poprawności algorytmu, testowanie programu)* błędy wykonania programu - ujawniające się w trakcie realizacji algorytmu zapisanego w postaci programu (ujawniające się w postaci wyjątków)* błędy syntaktyczne - polegające na niezgodności tekstu programu z gramatyką języka programowania (wykrywane przez kompilator)

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMU - ilość zasobow systemu komputerowego niezbędnych do jego realizacji. • Zasoby systemu komputerowego niezbędne do realizacji algorytmu: - czas pracy procesora (złożoność czasowa algorytmu), - pamięć operacyjna (złożoność pamięciowa algorytmu). • Złożoność obliczeniowa jest uzależniona od wielkości zadania. Oszacowanie czasu realizacji algorytmu • Analiza powyższych danych pozwala stwierdzić, że czas obliczeń uzależniony jest przede wszystkim od składnika: 0,000002 n2 Składnik ten nazywany jest składnikiem dominującym.* Po pominięciu stałych współczynników można stwierdzić, że zależność pomiędzy czasem wykonania a wielkością zadania ma charakter funkcji kwadratowej. Kwadratowy charakter zależności uwidacznia się w coraz większym stopniu wraz ze wzrostem wielkości zadania. CECHY EMPIRYCZNEGO OKREŚLANIA ZŁOŻONOŚCIZalety:

-    otrzymane czasy obliczeń są proste w interpretacji • Wady: - konieczność wielokrotnego uruchamiania programu (dla złożonych algorytmów może to być bardzo czasochłonne), - uzyskane wyniki dotyczą zastosowanego w obliczeniach zestawu danych (trudno jest określić czas realizacji dla przypadku „najlepszego", najgorszego" oraz „przeciętnego"), - wyniki dotyczą zwykle stosunkowo niewielkich zbiorow danych - nie wiadomo, czy dla zbiorow o większym rozmiarze charakter zależności się nie zmieni,

-    czas jest uzależniony od szybkości i architektury komputera, języka programowanie, techniki translacji, systemu operacyjnego - trudna porównywalność wyników - z uwagi na wielozadaniowy charakter systemów operacyjnych trudno jest określić, jaka część czasu była rzeczywiście przeznaczona na realizację analizowanego programu.

BEZPOŚREDNIA ANALIZA ALGORYTMÓW dotyczy: • charakteru zależności (np. zależność liniowa lub kwadratowa), a nie jej dokładnej postaci (wzór funkcji) - uwzględniany jest element dominujący, pomijane są współczynniki stałe • górnego i dolnego ograniczenia czasu realizacji algorytmu (a nie czasu realizacji algorytmu) - górne ograniczenie - czas realizacji algorytmu jest nie większy niż ... (ale może być krótszy) - przypadek pesymistyczny, - dolne ograniczenie - czas realizacji algorytmu jest nie mniejszy niż ... (ale może być dłuższy) - przypadek optymistyczny, • zachowania się algorytmu dla zbiorow danych o dużej wielkości (czyli dla wszystkich n większych od pewnej wartości nO)

GÓRNE OGRANICZENIE CZASU REALIZACJI ALGORYTMU • f(n) - czas realizacji algorytmu (zależny od n) • f(n) zależy od wielu czynników i podanie dokładnego charakteru zależności jest trudne • łatwiej jest



Wyszukiwarka

Podobne podstrony:
Kompletny przykład interface IZadanie{ void wprowadzDaneO ; void dyskusjaRozwiazaniaO ; void
interf3 (2) "Puste" definicje metod interface Rozbudowany Interfejs { voidmetodal(); void
56794 interf3 (2) "Puste" definicje metod interface Rozbudowany Interfejs { voidmetodal();
interf3 (2) "Puste" definicje metod interface Rozbudowany Interfejs { voidmetodal(); void
interf3 Definitions of methods are empty interface AComplenlnterface { void rnethodl() ; void m
MGQ52m 46 • Jfla Mwko 0vsky est typowym przykładem interferencji towarzyskich gestów-znaków z gesto
DSCN5186 (2) Egzemplarz interfejsu ... wywoływanie metod Zmienna interfejsu wskazująca obiekt klasy
Przykłady sieciowych systemów operacyjnych •    VIN ES, •
IMAG0189 (1) 37.    Nagłówek funkcji przykładowa jest następujący: function przykłado
IMAG0194 (1) 37. 38. 39. 40.test (1) -28 listopada 2011 Nagłówek funkcji przykładowa jest następując
Innym przykładem zadania systemu operacyjnego jest zarządzanie pamięcią operacyjną. Pamięć operacyjn
QFD i Dom Jakości I yiapowa technic funkcje metod przykł iie głosu klienta na parametry zne
p1020936 (2) Monolityczny system operacyjny 3€ Przykład: małe systemy operacyjne, takie jak np. MS D
Ekologia 114 Przykłady wskaźników osiągnięć operacyjnych -lostarczają informacji o faktycznych osi
p1020936 (2) Monolityczny system operacyjny 3€ Przykład: małe systemy operacyjne, takie jak np. MS D

więcej podobnych podstron