EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM VI INDEKSOWANIE + LUCENE

Wielkość: px
Rozpocząć pokaz od strony:

Download "EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM VI INDEKSOWANIE + LUCENE"

Transkrypt

1 EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM VI INDEKSOWANIE + LUCENE 1. Plan laboratorium VI 1.1. Ineks owrotny 1.2. w-shingling 1.3. Suffix tree algorytm naiwny oraz algorytm Ukkonena; zastosowanie struktur ineksujących 1.4. Suffix array algorytm qsufsort 1.5. Lucene 2. Inverte inex - ineks (plik) owrócony Struktura anych przechowująca poszczególne termy jako klucze, oraz ientyfikatory plików, w których te termy wystąpiły jako wartości (najczęściej implementowana jako tablica hashująca lub rzewo binarne). Cel: zwiększenie szybkości ziałania wyszukiwarki przy poniesieniu kosztu oania informacji o okumencie o ineksu W ineksie najczęściej przechowywane są ineksy okumentów (numery porząkowe). Doatkowo la każego termu często przechowywana jest ługość listy okumentów, które go zawierają. W wersji pełnej ineksu przechowuje się pary (DocID, TermPos), gzie TermPos jest pozycją termu w ramach okumentu o ientyfikatorze DocID. Zwykle okumenty la anego termu są uszeregowane zgonie z DocID. Inne pomysły polegają na wykorzystaniu tzw. statycznej jakości okumentu (np. miary PageRank) lub miary TF. 3. w-shingling zbiór ciagłych posekwencji tokenów w okumencie w oznacza licznę tokenów w każym pociągu wykorzystywany o baania poobieństwa okumentów (w tym przee wszystkim wykrywania plagiatów) po wzglęem wspólnych sekwencji o określonym rozmiarze sim( 1, 2 ) = S( S( 1 1 ) S( ) S( 2 2 ) ) 4. Drzewo sufiksów - suffix tree Prefiks określenie początkowych znaków ciągu (np. S la U jeśli U=SU ). Sufiks określenie końcowych znaków ciągu (np. S la U jeśli U=U S) Drzewo sufiksów - struktura anych reprezentująca zbiór sufiksów anego słowa lub tekstu. umożliwia efektywną obsługę zapytań, które wymagają wyszukania w tekstach ciągów słów lub ciągów znaków ineksowany tekst jest traktowany jako jeen ługi ciąg znaków; Suffix trie - struktura rzewiasta o przechowywania ciągów znaków, której każy możliwy sufiks można znaleźć na ścieżce o korzenia o któregoś liścia. Drzewo sufiksów (suffix tree) to barziej zwięzła reprezentacja struktury suffix trie (każy węzeł z pojeynczym potomkiem jest eliminowany (poprzez połączenie węzła z potomkiem w pojeynczy węzeł)

2 Drzewo sufiksów T (suffix tree) la ciągu znaków S o ługości m to rzewo o następujących właściwościach: posiaa korzeń i jest skierowane m liści oznakowanych o 1 o m każa krawęź etykietowana pociągiem znaków S złączenie etykiet poszczególnych krawęzi na ścieżce o korzenia o liścia i aje sufiks i ciągu S (oznaczmy go jako S i m ) każy wewnętrzny wierzchołek ma co najmniej wójkę zieci krawęzie wychozące z korzenia muszą zaczynać się o różnych znaków Naive Suffix Tree Builing (złożoność O(m 2 )) Dla i=1 o m Doaj sufiks S i m o T, znajując najłuższy pasujący prefiks S i m, który jest już w T i rozgałęziając o tego miejsca Algorytm Ukkonena On-line zaczyna o pierwszego znaku, potem rugi, it. Wersja postawowa (złożoność O(m 3 )) Zbuuj I1 (oaj pierwszy znak o rzewa). Dla i=1 o m-1 Dla j = 1 o i+1 Znajź ścieźkę o korzenia zaetykietowaną S j i Doaj znak S i+1 na koniec ścieżki, jeśli to konieczne Trzy reguły oawania znaku na koniec ścieżki Reguła 1 Jeśli ścieżka S j i w rzewie kończy się liściem, oaj S i+1 na koniec etykiety Reguła 2 Jeśli w rzewie są ścieżki S j i, które nie kończą się w liściu i nie następuje po nich S i+1, utwórz nowy liść z etykietą S i+1 na końcu ścieżki S j i (tworząc nowy wierzchołek wewnętrzny, jeśli S j i kończy się w śroku etykiety) Reguła 3 Jeśli w rzewie są ścieżki S j i, które nie kończą się w liściu, ale po jenej z nich następuje S i+1, nie rób nic - 2 -

3 Zmniejszenie złożoności opiera się na wóch obserwacjach: I. Once a leaf always a leaf na krawęziach o liści można oawać znak bez zastanowienia. II. Jeśli w rzewie jest już jakiś sufiks, to wszystkie jego sufiksy też są już w rzewie, czyli jeśli w anej iteracji wykorzystano regułę 3 o rozszerzenia j, to można ją zastosować (czyli nic nie robić) la wszystkich alszych rozszerzeń w anej iteracji Złożoność O(m) Zbuuj I1. Dla i=1 o m-1 Dla j takiego, że jl < j < jr Znajź ścieźkę o korzenia zaetykietowaną S j i Doaj znak S i+1 na koniec ścieżki jl - w iteracji I to ineks ostatniego oanego liścia jr w iteracji I to pierwszy ineks j taki, że S j i+1 jest już w rzewie Wywołań pętli jest 2m; to, co jest wykonywane, a się zrobić w stałym czasie

4 Postawowe zastosowania: znalezienie pociągu znaków P w tekście S; najłuższa powtarzająca się sekwencja znaków w ramach jenego ciągu znaków; najłuższy wspólny pociąg kilku ciągów znaków (alibaba.taliban.) problem pociągów la kolekcji wzorców najłuższy palinrom (what o you think, o geese see Go? -> whatoyouthink ogeeseseego.ogeeseseegoknihtuoytahw) problem opasowania par suffix-prefix (la ciągów Si oraz Sj, znajź najłuższą parę suffix Si i prefix Sj, które o siebie pasują DNA sequence assembly, EST alignment) zanieczyszczenie DNA (DNA contamination) procesy laboratoryjne powouje wniknięcie niechcianego DNA o ciągu bęącego przemiotem baań; sekwencje DNA wielu możliwych zanieczyszczaczy są znane problem: mając ane S1 oraz zbiór ciągów S (potencjalne zanieczyszczenia), znajź pociągi S, które pojawiają się w S1 i są łuższe niż zaane r 5. Tablica sufiksów suffix array Każy sufiks może być jenoznacznie określony za pomocą ineksu swojego pierwszego znaku. Tablica sufiksów to tablica ineksów sufiksów posortowanych w porząku leksykograficznym. Tablica sufiksów jest zawsze permutacją ineksów sufiksów. Tablica sufiksów Suffix S(i) I Suffix S(i) I[i] banana$ 0 $ 6 anana$ 1 a $ 5 nana$ 2 -> sort -> a na $ 3 Ana$ 3 ana na$ 1 Na$ 4 banana$ 0 a$ 5 na $ 4 $ 6 na na$ 2 Główne zastosowania: Exact matching (wzór P[1 n] poszukiwany w T[1.m] P jest pociągiem T jeśli jest prefiksem jakiegoś sufiksu w T; pozycja początkowe sufiksow w T, które zaczynają się o tego samego prefiksu znajują się obok siebie w tablicy sufiksów; znajź najmniejszy i największy ineks, w którym zaczyna się any prefiks, wykorzystując np. wyszukiwanie binarne) Substring problem Tworzenie - algorytm qsufsort (Larsson, Saakane) I. W tablicy I umieść posortowane ineksy sufiksów 0,,n. Do sortowania wykorzystaj znak na pozycji i-tej. Ustaw h=1. II. Dla każego i 0 [0,n], oblicz V[i] - numer grupy sufiksu i jako najgorszą pozycję w I jaką może zajmować sufiks zaczynający się o tej samej litery co sufiks i-ty. III. Każą grupę, która nie jest jeszcze posortowana posortuj zgonie z ternary-split Quicksort, używając V[i+h] jako klucza la sufiksu i-tego. IV. Uzupełnij I[i]. Uzupełnij V[i]. Pomnóż h przez 2. V. Jeśli I skłaa się z jenej posortowanej grupy, stop. W przeciwnym razie, iź o punktu III

5 6. Ćwiczenia 1. Utwórz ineks owrócony la następujących okumentów: D1: new Home sales top forecasts Term/Doc D1 D2 D3 D4 D2: home sales rise in july forecasts forecasts D3: increase in home sales in july home home D4: july new home sales rise in In increase increase Jakie są wyniki wyszukiwania la july july Zapytań: new new sales AND rise rise rise forecasts OR increase sales sales top top 2. Utwórz w-shingling la tekstu a banana is a banana is a banana la w=4. tokeny = (a, banana, is, a, banana, is, a, banana) zbiór wszystkich kolejnych sekwencji 4 tokenów (N-gramów, 4-gramów) to: {(a, banana, is, a), (banana, is, a, banana), (is, a, banana, a), (a, banana, is, a), (banana, is, a, banana)} 4-shingling = { } 3. Utwórz rzewo sufiksów la słowa banana$, wykorzystując algorytm naiwny oraz algorytm Ukonnena 4. Utwórz tablicę sufiksów la słowa banana$, korzystając z algorytmu qsufsort X = [ b a n a n a $ ] I[i] = [ ] V[I[i]] = [ ] V[I[i+(h=1)]] = [ ] I[i] = [ ] V[I[i]] = [ ] V[I[i+(h=2)]] = [ ] I[i] = [ ] - 5 -

6 7. Zaania o samozielnego wykonania 1. [1] Utwórz ineks owrócony la następujących okumentów: D1: breakthrough rug for schizophrenia D2: new schizphrenia rug D3: new approach for treatment of schizophrenia D4: new hopes for schizophrenia patients Jakie bęą wyniki wyszukiwania la zapytań: Q1: schizophrenia AND rug Q2: for AND NOT(rug OR approach) Dla ułatwienia w arkuszu poano macierz term-okument. 2. [1] Pokaż proces tworzenia tablicy sufiksów (suffix array) la frazy tobeornottobe$ z wykorzystaniem algorytmu qsufsort. 3. [3] Celem ćwiczenia jest zapoznanie się z Lucene Java API. Lucene to biblioteka uostępniająca funkcje niezbęne la zastosowań z zieziny Information Retrieval, np. ineksowanie okumentów czy tworzenie rankingu stron la zapytań. Uostępnia ona narzęzia takie jak parsery, systemy ineksujące i rangujące, pozwalając skupić się na projekcie architektury systemu. Co więcej, Lucene uostępnia proste algorytmy tokenizacji, stemmingu, it., które mogą być zastąpione przez barziej zaawansowane mouły w zależności o wymagań użytkowników. Opis zaania jest ługi w rzeczywistości zaanie jest proste i większość rozwiązania znajuje się bezpośrenio w poniższym opisie. Zaanie sprowaza się o opisania kilkunastu linii kou, z których większość jest poana w treści ćwiczenia. Zaanie polega na utworzeniu prostej wyszukiwarki, ziałającej na zaanej kolekcji tekstów. Szkielet rozwiązania znajuje się w klasie LuceneLab6.java. Klasę należy uzupełnić zgonie z poniższymi instrukcjami. Wywołanie programu wymaga poania wóch paramterów: args[0] - nazwa katalogu z kolekcją tekstów, args[1] nazwa katalogu, w którym zostanie utworzony ineks. Zapytania jenowyrazowe poawane są przez użytkownika z poziomu konsoli. Część 1 - ustawienia śroowiska Ściągnij bibliotekę Lucene z katalogu lab6. Upewnij się, że umieściłeś.jar w katalogu Twojego projektu. W LuceneLab6.java okonano już eklaracji importu wszystkich klas, których bęziesz potrzebował la celów zaania. Kolekcja tekstów na której bęziesz pracował znajuje się w katalogu lab6. Są to teksty Shakespeare pobrane ze strony projektu Gutenberg. Ścieżkę o kolekcji poajesz jako pierwszy parametr wywołania programu. Część 2 - utworzenie ineksu, przeczytanie okumentów, utworzenie reprezentacji okumentów, wypełnienie ineksu Napisz funkcję createinex, której celem jest utworzenie i wypełnienie ineksu la zaanej kolekcji tekstów. Parametrem funkcji jest ścieżka o kolekcji tesktów. Ineks w Lucene wygląa następująco: - 6 -

7 Inex Document 1 Fiel A (name/value) Fiel B (name/value) Document 2 Fiel A (name/value) Fiel B (name/value) Do utworzenia ineksu wykorzystaj klasę InexWriter : InexWriter inexwriter = new InexWriter("inexPath", new StanarAnalyzer(), true); gzie pierwszy parametr o ścieżka o katalogu, w którym ma być przechowywany ineks, rugi parametr to typ "analizatora" (parsera okumentu), który bęzie wykorzystywany, a trzeci parametr świaczy o tym, czy buowany jest nowy ineks (true) czy też rozwijany jest ineks już istniejący (false). StanarAnalyzer jest najczęściej wykorzystywanym analizotorem ogólnego użycia. Inne możliwe to: WhiteSpaceAnalyzer (prosty analizator, które separuje tokeny na spacjach), StopAnalyzer (usuwa słowa stopwors), SnowballAnalyzer (używa pewnej fermy stemmingu). Utwórz obiekt klasy File, korzystając z konstruktora, który jako parametr przyjmuje ścieżkę o kolekcji tekstów. Następnie wykorzystaj opowienią metoę klasy File tak, by nazwy okumentów w tym katalogu reprezentować jako tablicę String[] i następnie owołując się o tych nazwy, moć w pętli oawać okumenty o ineksu. Po utworzeniu ineksu, wypełnij go zawartością, oając poszczególne okumenty. Każy okument opowiaa obiektowi klasy Document. Dokument jest opisany za pomocą wielu własności w formie (nazwa, wartość). Każa własność opowiaa obiektowi klasy Fiel. Korzystając z tych obiektów, można oać informacje nt. okumentu, takie jak tytuł, ścieżka o miejsca przechowywania, treść, it. Na przykła: FileInputStream file = new FileInputStream(ocPath); Document oc = new Document(); oc.a(new Fiel("path", ocpath, Fiel.Store.YES, Fiel.Inex.TOKENIZED)); oc.a(new Fiel("content", (Reaer) new InputStreamReaer(file))); gzie ocpath zawiera ścieżkę o okumentu; Fiel.Store.YES określa, czy własność jest przechowywana w ramach ineksu (użyteczne, jeśli chce się ją wyświetlić w ostatecznych wynikach), Fiel.Inex.TOKENIZED wskazuje, czy ane muszą być poane tokenizacji czy też nie. Napisz osobną funkcję inexdoc la utworzenia obiektu klasy Document. Po zefiniowaniu obiektu klasy Document, oaje się go o ineksu za pomocą polecenia: inexwriter.adocument(oc); Następnie należy zakończyć tworzenie ineksu poleceniem: inexwriter.close(); Część 3 - przeszukiwanie kolekcji Jeśli utworzyłeś ineks, możesz przystąpić o napisania części przetwarzającej zapytania. Wykorzystaj klasy InexSearcher oraz QueryParser: InexSearcher isearch = new InexSearcher(inexPath); - 7 -

8 gzie inexpath to zmienna String, która zawiera ścieżkę o uprzenio utworzonego ineksu. Dla zefiniowania parsera zapytania, musisz wiezieć, które pola okumentu mają być analizowane po wzglęem zgoności z zapytaniem, a także jakiego typu parser zostanie użyty o parsowania zapytania (musi być on taki sam, jak parser okumentu), np.: Analyzer analyzer = new StanarAnalyzer(); QueryParser qparser = new QueryParser("content", analyzer); Parsowanie zapytania i wyszukiwanie okumentów obywa się za pomocą wykorzystania opowienich meto klasy QueryParser i InexSearcher: Query query = qparser.parse(querystring); Hits hits = isearch.search(query); Metoa search zwraca ranking aekwatnych okumentów (poprzez klasę Hits). Znalezienie wyników powinno być zaimplementowane w funkcji processquery(). Klasa Hits uostępnia iterator, z użyciem którego można przegląać aekwatne la zapytania okumenty i miary poobieństwa. Należy wypisać te wartości, jak w poniższym przykłazie. Przykłaowe wyjście progamu: Please enter your query: (lab6 to quit) queen 12 result(s) foun Shakespeare/0ws4210.txt : Shakespeare/0ws1410.txt : Shakespeare/0ws0110.txt : Shakespeare/0ws0210.txt : Shakespeare/0ws2610.txt : Shakespeare/0ws0410.txt : Shakespeare/0ws0310.txt : Shakespeare/0ws1710.txt : Shakespeare/0ws0910.txt : Shakespeare/0ws1210.txt : Shakespeare/0ws1910.txt : Shakespeare/0ws3910.txt : Please enter your query: (lab6 to quit) arthur 2 result(s) foun Shakespeare/0ws1410.txt : Shakespeare/0ws2110.txt : W razie potrzeby okumentacja Lucene API jest o znalezienia w sieci, ale o wykonania tego zaania wystarczy realizacja (ze zrozumieniem) poleceń z powyższego opisu

9 3. [4] Zaanie polega na wykorzystaniu Lucene o zaimplementowania meto ineksowania i wyszukiwania. Kolekcją okumentów jest RSS utworzony z BBC News bbc_rss_fee.xml. Dana jest klasa o parsowania RSS (RSSFeeParser), która zwraca okumenty jako obiekty Javy zawierające istotne z punktu naszego zastosowania pola: tytuł, opis oraz atę publikacji (klasa RssFeeDcoument). Klasą, którą należy uzupełnić to LuceneSearchApp (funkcje inex oraz search): Na etapie ineksowania okumentów trzy pola (tytuł, opis, ata) muszą być rozróżniane tak by zapytania mogły otyczyć zawartości poszczególnych pól. Metoa wyszukiwania powinna zwracać tytuły okumentów, które opowiaają zapytaniu. Szkielet klasy LuceneSearchApp zawiera funkcję main o testowania Twojej implementacji meto ineksowania oraz wyszukiwania. Wywoływana jest w niej kolejno: istniejąca funkcja parsowania RSS (ścieżka o pliku RSS jest poawana jako argument wywołania w linii komen), funkcja ineksowania okumentów oraz funkcje generujące kolejne zapytania testowe i wypisujące wynik. W pliku test-output.txt ane jest wzorcowe wyjście, o którego możesz przyrównywać swoje rozwiązanie. Implementacja wyszukiwania powinna uwzglęniać następujące parametry: słowa, które występują w tytule (operator logiczny AND); słowa, które nie występują w tytule (operator logiczny NOT); słowa,które występują w opisie (operator logiczny AND); słowa, które nie występują w opisie (operator logiczny NOT); zakres aty publikacji (operator logiczny AND la różnych at) aty w formacie RRRR-MM-DD zakresy powinny być typu [początek, koniec], by ata końcowa i początkowa były zawarte w przeziale (a nie typu (start, koniec)) jeżeli ata początkowa lub końcowa nie jest poana, przyjmuje się przeział otwarty z tej strony (nieograniczony) Funkcja search przyjumuje więc na wejście sześć parametrów: tablice stringów intitle, notintitle, indescription, notindescription oraz stringi startdate oraz endate. Jako rozwiązanie trzeba przesłać ko źrółowy klasy LuceneSearchApp. Do realizacji zaania stosowana była wersja Lucene (klasy potrzebne w rozwiązaniu są zawarte w lucencore jar oraz lucene-analyzers-common jar). Można też wykorzystać na pewno Lucene Doatkowe 2 punkty (bonusowe w stosunku o 4 przewizianych za to zaanie i nie zwiększające sumarycznej liczby punktów) można zobyć, implementując własną klasę EziScoreQuery (rozszerzającą CustomScoreQuery), która w metozie getcustomscoreprovier obliczałaby inną niż omyślna funkcja poobieństwa. Stanarowo przy utworzeniu nowego InexSearcher, Lucene wykorzystuje DefaultSimilarity, które jest miarą kosinusową opartą na tf-if. Dla uproszczenia możemy uznać, że funkcja bęzie wykorzystywana tylko la zapytań o słowa, które występują w tytule i/lub opisie i może polegać na prostym zliczaniu tych słów (okument tym barziej jest poobny, im częściej słowa z zapytania w nim występują). Dla przejrzystości i ułatwienie sprawzania, wersja stanarowa rozwiązania (bez nowej funkcji poobieństwa) niech zostanie w LuceneSearchApp, a la wersji rozszerzonej zróbcie nową klasę LuceneSearchSimApp. Czas przesłania zaań 24 listopaa lub 1 grunia (patrz następne zaanie)

Efektywne wyszukiwanie wzorców w systemach automatycznej generacji sygnatur ataków sieciowych

Efektywne wyszukiwanie wzorców w systemach automatycznej generacji sygnatur ataków sieciowych Efektywne wyszukiwanie wzorców w systemach automatycznej generacji sygnatur ataków sieciowych Tomasz Joran Kruk NASK Dział Naukowy Cezary Rzewuski Politechnika Warszawska NASK/ PW Konferencja SECURE 2006,

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6a Model danych oparty na drzewach 1 Model danych oparty na drzewach Istnieje wiele sytuacji w których przetwarzane informacje mają strukturę hierarchiczną lub zagnieżdżoną,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Przykładowe B+ drzewo

Przykładowe B+ drzewo Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

Algorytmy sortujące i wyszukujące

Algorytmy sortujące i wyszukujące Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.

Bardziej szczegółowo

Abstrakcyjne struktury danych - stos, lista, drzewo

Abstrakcyjne struktury danych - stos, lista, drzewo Sprawozdanie Podstawy Informatyki Laboratoria Abstrakcyjne struktury danych - stos, lista, drzewo Maciej Tarkowski maciek@akom.pl grupa VII 1/8 1. Stos Stos (ang. Stack) jest podstawową liniową strukturą

Bardziej szczegółowo

Map Reduce Proste zliczanie słów i zapytania SQL

Map Reduce Proste zliczanie słów i zapytania SQL Map Reduce Proste zliczanie słów i zapytania SQL 15 maja 2014 Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały

Bardziej szczegółowo

Sortowanie bąbelkowe

Sortowanie bąbelkowe 1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym

Bardziej szczegółowo

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych 2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 2

Języki i techniki programowania Ćwiczenia 2 Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

Wyszukiwanie informacji w internecie. Nguyen Hung Son

Wyszukiwanie informacji w internecie. Nguyen Hung Son Wyszukiwanie informacji w internecie Nguyen Hung Son Jak znaleźć informację w internecie? Wyszukiwarki internetowe: Potężne machiny wykorzystujące najnowsze metody z różnych dziedzin Architektura: trzy

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Projekty zaliczeniowe Podstawy Programowania 2012/2013 Projekty zaliczeniowe Podstawy Programowania 2012/2013 0. Zasady ogólne W skład projektu wchodzą następujące elementy: dokładny opis rozwiązywanego problemu opis słowny rozwiązania problemu wraz z pseudokodami

Bardziej szczegółowo

Układy VLSI Bramki 1.0

Układy VLSI Bramki 1.0 Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6b: Model danych oparty na drzewach http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Model danych oparty na drzewach

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

Języki programowania imperatywnego

Języki programowania imperatywnego Katedra Inżynierii Wiedzy laborki 7 i 8 Klasy abstrakcyjne klasa abstrakcyjna pozwala wymusić implementację metody; klasa oznaczona jest jako abstrakcyjna, jeżeli przynajmniej jedna metoda jest abstrakcyjna;

Bardziej szczegółowo

Wykład 6. Wyszukiwanie wzorca w tekście

Wykład 6. Wyszukiwanie wzorca w tekście Wykład 6 Wyszukiwanie wzorca w tekście 1 Wyszukiwanie wzorca (przegląd) Porównywanie łańcuchów Algorytm podstawowy siłowy (naive algorithm) Jak go zrealizować? Algorytm Rabina-Karpa Inteligentne wykorzystanie

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Operacje I/O w Javie Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy

Bardziej szczegółowo

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot.

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot. Rozpoznawanie obrazu Implementujesz oprogramowanie do rozpoznawania obrazu dla robota. Za każdym razem, gdy robot robi zdjęcie kamerą, jest ono zapisywane jako czarno-biały obraz w pamięci robota. Każdy

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych wersja: 1.0 Nr ćwiczenia: 12, 13 Temat: Cel ćwiczenia: Wymagane przygotowanie

Bardziej szczegółowo

Biblioteka Wirtualnej Nauki

Biblioteka Wirtualnej Nauki Biblioteka Wirtualnej Nauki BAZA SCOPUS Scopus jest największą na świecie bibliograficzną bazą abstraktów i cytowań recenzowanej literatury naukowej, wyposażoną w narzędzia bibliometryczne do śledzenia,

Bardziej szczegółowo

java.util.* :Kolekcje Tomasz Borzyszkowski

java.util.* :Kolekcje Tomasz Borzyszkowski java.util.* :Kolekcje Tomasz Borzyszkowski Wstęp Kolekcje w Java dają programiście pewien standardowy sposób radzenia sobie z przetwarzaniem grup obiektów. Implementacja kolekcji w Java składa się z następujących

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

Bardziej szczegółowo

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel SQL, LIKE, IN, CASE, EXISTS Marcin Orchel Spis treści 1 LIKE 2 2 BETWEEN 4 3 IN 5 4 EXISTS 6 5 WYRAŻENIA CASE 7 6 Zadania 9 1 Rozdział 1 LIKE Predykat LIKE jest testem dopasowującym wzorzec łańcucha. Składnia

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 6 - klasa BigDecimal i String oraz tablice mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 listopada 2018 1 / 27 mgr inż. Krzysztof Szwarc Podstawy

Bardziej szczegółowo

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Internet wyszukiwarki internetowe

Internet wyszukiwarki internetowe Internet wyszukiwarki internetowe 1. WYSZUKIWARKI INTERNETOWE to doskonały sposób na znalezienie potrzebnych informacji w Internecie. Najpopularniejsze wyszukiwarki to: http://www.google.pl/ http://www.netsprint.pl/

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java: Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java: p u b l i c c l a s s Punkt { i n t x, y ; Punkt ( ) { x = 1 ; y = 1 ; Punkt ( i n t wspx, i n t wspy ) { x = wspx ; y = wspy ; Punkt (

Bardziej szczegółowo

Metoda Tablic Semantycznych

Metoda Tablic Semantycznych Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,

Bardziej szczegółowo

Programowanie zaawansowane

Programowanie zaawansowane Programowanie zaawansowane Ćwiczenie 6 Komunikacja silnie typowana I. Utwórz aplikację okienkową realizującą proste obliczenia arytmetyczne. Obsługa zdarzeń w aplikacji typu Windows Form Application odbywa

Bardziej szczegółowo

OvidSP - Skrócony opis wyszukiwania - Wyszukiwanie proste i złożone,

OvidSP - Skrócony opis wyszukiwania - Wyszukiwanie proste i złożone, OvidSP - Skrócony opis wyszukiwania - Wyszukiwanie proste i złożone, zapisywanie wyników wyszukiwania w bibliotece referencji, tworzenie alertów i powiadomień. Operatory do tworzenia wyszukiwania zaawansowanego:

Bardziej szczegółowo

Zastosowania drzew binarnych

Zastosowania drzew binarnych Laboratorium 3 Zastosowania drzew binarnych Cel ćwiczenia Celem ćwiczenia jest praktyczne zapoznanie się z wybranymi algorytmami operującymi na strukturach drzewiastych dla różnych typów danych, złożonością

Bardziej szczegółowo

Programowanie obiektowe - zadania

Programowanie obiektowe - zadania Programowanie obiektowe - zadania Elementy języka Java Zad.1. Napisz program, który sprawdza, czy dana liczba całkowita jest parzysta. Zad.2. Napisz program, który sumuje dane dwie liczby tylko w przypadku,

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy

Bardziej szczegółowo

Indeksowanie full text search w chmurze

Indeksowanie full text search w chmurze Prezentacja przygotowana dla: 5. Konferencja MIC w Poznaniu, 16.06.20111 Lucene.NET Indeksowanie full text search w chmurze K2 i Windows Azure dlaczego dla nas to możliwe? 1. Mamy unikalne połącznie kompetencji

Bardziej szczegółowo

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

- - Ocena wykonaniu zad3. Brak zad3

- - Ocena wykonaniu zad3. Brak zad3 Indeks Zad1 Zad2 Zad3 Zad4 Zad Ocena 20986 218129 ocena 4 Zadanie składa się z Cw3_2_a oraz Cw3_2_b Brak opcjonalnego wywołania operacji na tablicy. Brak pętli Ocena 2 Brak zad3 Ocena wykonaniu zad3 po

Bardziej szczegółowo

Modelowanie motywów łańcuchami Markowa wyższego rzędu

Modelowanie motywów łańcuchami Markowa wyższego rzędu Modelowanie motywów łańcuchami Markowa wyższego rzędu Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki 23 października 2008 roku Plan prezentacji 1 Źródła 2 Motywy i ich znaczenie Łańcuchy

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

Drzewo binarne BST. LABORKA Piotr Ciskowski

Drzewo binarne BST. LABORKA Piotr Ciskowski Drzewo binarne BST LABORKA Piotr Ciskowski zadanie 1. drzewo binarne - 1 Zaimplementuj drzewo binarne w postaci: klasy Osoba przechowującej prywatne zmienne: liczbę całkowitą to będzie klucz, wg którego

Bardziej szczegółowo

Języki programowania imperatywnego

Języki programowania imperatywnego Katedra Inżynierii Wiedzy laborki 10 Jeszcze o plikach i katalogach File.Exists; File.Delete; Directory.Exists; Directory.Delete(nazwa, true); File.Move(nazwa, nowanazwa); Directory.CreateDirectory(nazwa);

Bardziej szczegółowo

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych

Bardziej szczegółowo

1 Powtórzenie wiadomości

1 Powtórzenie wiadomości 1 Powtórzenie wiadomości Zadanie 1 Napisać program, który w trybie dialogu z użytkownikiem przyjmie liczbę całkowitą, a następnie wyświetli informację czy jest to liczba parzysta czy nieparzysta oraz czy

Bardziej szczegółowo

Algorytm DIC. Dynamic Itemset Counting. Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek

Algorytm DIC. Dynamic Itemset Counting. Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek Algorytm DIC Dynamic Itemset Counting Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek Spis treści 1 2 3 4 Algorytm DIC jako rozszerzenie apriori DIC Algorytm znajdowania reguł asocjacyjnych

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

Bardziej szczegółowo

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa Narzędzie pomocnicze przedmiotu Podstawy Informatyki - złożoność obliczeniowa Piotr Jeruszka 1 25 listopada 2013 1 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska pjeruszka@icis.pcz.pl

Bardziej szczegółowo

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA POZIOM ROZSZERZONY FORMUŁA DO 2014 ( STARA MATURA ) ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1,R2 MAJ 2018 Uwaga: Akceptowane są wszystkie odpowiedzi

Bardziej szczegółowo

XQuery. sobota, 17 grudnia 11

XQuery. sobota, 17 grudnia 11 XQuery XQuery XQuery pozwala na wydobywanie danych z dokumentów XML w sposób podobny do tego w jaki używany jest SQL do tabel w bazach danych. XQuery to język do wykonywania zapytań na dokumentach XML.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał

Bardziej szczegółowo

Kurs języka Python. Lista 1.

Kurs języka Python. Lista 1. 2 października 2015 Lista 1. Zadanie 1. Zaprogramuj funkcję rzut_kostka(), która symuluje rzut sześcienną kością do gry, tzn. funkcja ma zwracać losową liczbę naturalną z przedziału [1... 6]. Korzystając

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

I. Podstawy języka C powtórka

I. Podstawy języka C powtórka I. Podstawy języka C powtórka Zadanie 1. Utwórz zmienne a = 730 (typu int), b = 106 (typu long long), c = 123.45 (typu double) Wypisz następujące komunikaty: Dane sa liczby: a = 730, b = 106 i c = 123.45.

Bardziej szczegółowo

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu

Bardziej szczegółowo

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

dodatkowe operacje dla kopca binarnego: typu min oraz typu max: ASD - ćwiczenia IX Kopce binarne własność porządku kopca gdzie dla każdej trójki wierzchołków kopca (X, Y, Z) porządek etykiet elem jest następujący X.elem Y.elem oraz Z.elem Y.elem w przypadku kopca typu

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Mariusz Jankowski autor strony internetowej poświęconej Excelowi i programowaniu w VBA; Bogdan Gilarski właściciel firmy szkoleniowej Perfect And Practical;

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Tajemnice skutecznego wyszukiwania na przykładzie

Tajemnice skutecznego wyszukiwania na przykładzie Tajemnice skutecznego wyszukiwania na przykładzie Przeglądarka program otwierający wrota Internetu Wyszukiwarka a przeglądarka Wyszukiwarka program pozwalający wyszukiwać linki do stron WWW Kilka podstawowych

Bardziej szczegółowo

POMOC. 1. Wybór Katalogu

POMOC. 1. Wybór Katalogu Bibliografia Regionalna obejmuje książki i czasopisma lokalne zawierające wszelkie wiadomości na temat Woli. Gromadzone informacje dotyczą najczęściej takich zagadnień jak życie społeczne, inwestycje,

Bardziej szczegółowo

Wysokość drzewa Głębokość węzła

Wysokość drzewa Głębokość węzła Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Standardowa biblioteka szablonów (Standard Template

Bardziej szczegółowo

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie

Bardziej szczegółowo

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące

Bardziej szczegółowo

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania, SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Wykład 3 1 SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Przykład Bingo 2 Treść przykładu Jak wygląda karta do

Bardziej szczegółowo

Instrukcja do laboratorium Materiały budowlane Ćwiczenie 12 IIBZ ĆWICZENIE 12 METALE POMIAR TWARDOŚCI METALI SPOSOBEM BRINELLA

Instrukcja do laboratorium Materiały budowlane Ćwiczenie 12 IIBZ ĆWICZENIE 12 METALE POMIAR TWARDOŚCI METALI SPOSOBEM BRINELLA Instrukcja o laboratorium Materiały buowlane Ćwiczenie 1 ĆWICZENIE 1 METALE 1.1. POMIAR TWAROŚCI METALI SPOSOBEM BRINELLA Pomiar twarości sposobem Brinella polega na wciskaniu przez określony czas twarej

Bardziej szczegółowo

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 8

Algorytmy i struktury danych. wykład 8 Plan wykładu: Kodowanie. : wyszukiwanie wzorca w tekście, odległość edycyjna. Kodowanie Kodowanie Kodowanie jest to proces przekształcania informacji wybranego typu w informację innego typu. Kod: jest

Bardziej szczegółowo

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem

Bardziej szczegółowo

Algorytmy przeszukiwania wzorca

Algorytmy przeszukiwania wzorca Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Algorytmy przeszukiwania wzorca 1 Wstęp Algorytmy

Bardziej szczegółowo

Sieciowe Technologie Mobilne. Laboratorium 2

Sieciowe Technologie Mobilne. Laboratorium 2 Sieciowe Technologie Mobilne Laboratorium 2 Tworzenie wieloplatformowych aplikacji mobilnych przy użyciu biblioteki PhoneGap. Łukasz Kamiński Laboratorium 2 Na dzisiejszym laboratorium skupimy się na implementacji

Bardziej szczegółowo

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Egzamin z Podstaw informatyki i programowania 2007/2008

Egzamin z Podstaw informatyki i programowania 2007/2008 Egzamin z Podstaw informatyki i programowania 2007/2008 Imię i nazwisko:... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 suma 1. Napisz funkcję logiczną, która dla zadanej parametrem wartości rzeczywistej x, oblicza

Bardziej szczegółowo

Zapytania do baz danych

Zapytania do baz danych Zapytania do baz danych 1. Korzystając z bazy kwerenda pobranej ze strony www.informatykamg.cba.pl. 2. Zobacz w tej bazie jak wyglądają relacje pomiędzy tabelami. Rys. 1 Relacje pomiędzy tabelami. 3. Tworzymy

Bardziej szczegółowo

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog); Program 19 Zadeklarować strukturę Student o polach: Imie, Nazwisko (ciągi znaków), Oceny (pięcioelementowa tablica wartości rzeczywistych reprezentujących oceny studenta) i Semestr_zaliczony (wartość logiczna

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite Tomasz Boiński: 1 Pozycjonowanie stron i zastosowanie mod_rewrite Pozycjonowanie stron Promocja strony odbywa się poprzez umiejscowienie jej jak najwyżej w wynikach wyszukiwania Wyszukiwarki indeksują

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo