EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM VI INDEKSOWANIE + LUCENE
|
|
- Martyna Marciniak
- 8 lat temu
- Przeglądów:
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 Tomasz Joran Kruk NASK Dział Naukowy Cezary Rzewuski Politechnika Warszawska NASK/ PW Konferencja SECURE 2006,
Bardziej szczegółowoZaawansowane 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ółowoAlgorytmy 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ółowoPodstawy 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ółowoProgramowanie 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ółowoJę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ółowoProgramowanie 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ółowoTeoretyczne 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ółowoProgramowanie 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ółowoPrzykł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) 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ółowoAlgorytmy 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ółowoAbstrakcyjne 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ółowoMap 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ółowoSortowanie 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ółowo2. 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ółowoJę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ółowoZasady 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ółowoTadeusz 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ółowoWyszukiwanie 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ółowoAplikacje 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ółowoProjekty 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ółowoUkł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ółowoPodstawy 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ółowoTeoretyczne 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ółowoPodstawy 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ółowoJę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ółowoJę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ółowoWykł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ółowoStrumienie, 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ółowoRozpoznawanie 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ółowoWydział 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ółowoBiblioteka 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ółowojava.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ółowoDokumentacja 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ółowoPodstawy 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ółowoRekurencja (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ółowoSQL, 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ółowoPodstawy 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ółowoWykł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ółowoProgramowanie 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ółowoMetoda 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ółowoWprowadzenie 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ółowoInternet 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ółowoDokumentacja 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ółowoWykł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ółowoDziedziczenie 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ółowoMetoda 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ółowoProgramowanie 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ółowoOvidSP - 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ółowoZastosowania 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ółowoProgramowanie 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ółowoStrumienie, 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ółowoIndeksowanie 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ółowoAlgorytmy 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
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ółowoModelowanie 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ółowoWstę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ółowoDrzewo 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ółowoJę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ółowoLaboratorium 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ółowo1 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ółowoAlgorytm 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ółowoAlgorytmy 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ółowoNarzę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ółowoEGZAMIN 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ółowoXQuery. 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ółowoProgramowanie 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ółowoPodstawy 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ółowoKurs 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ółowoPLAN 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ółowoPodstawy 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ółowoI. 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ółowoDef. 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ółowododatkowe 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ółowoXQTav - 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ółowoFunkcje 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ółowoOpis: 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ółowoTajemnice 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ółowoPOMOC. 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ółowoWysokość 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ółowoMetody 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ółowoTechniki 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ółowoPodstawy 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ółowoKaż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ółowoSUM 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ółowoInstrukcja 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ółowoAlgorytmy 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ółowoAlgorytmy 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ółowoKompilacja 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ółowoAlgorytmy 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ółowoSieciowe 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ółowoJava 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ółowoEgzamin 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ółowoZapytania 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ółowovoid 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ółowoUML 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ółowoTomasz 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ółowoProgramowanie 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