Algorytmy przeszukiwania wzorca
|
|
- Karolina Sowa
- 7 lat temu
- Przeglądów:
Transkrypt
1 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 przeszukiwania wzorca w tekście służą do odnajdywania w zadanym tekście określonego ciągu znaków. Ciąg ten może oczywiście występować więcej, niż jeden raz. Możliwe jest również, że przeszukiwany ciąg nie występuje w tekście. W opisie algorytmów zakłada się, że tekst i wzorzec są jednowymiarowymi tablicami znaków, indeksowanymi od zera. 2 Algorytm naiwny brute force Algorytm ten jest najprostszą metodą na znalezienie wzorca w tekście. Zasada działania opiera się na porównywaniu odpowiednich liter tekstu i wzorca, zaczynając od pierwszej litery tekstu i wzorca. Jeśli fragmenty tekstu są zgodne, porównywany jest następny znak tekstu z następnym znakiem wzorca itd. Jeśli wystąpiła niezgodność w dowolnym miejscu algorytm rozpoczyna całą procedurę przeszukiwania od drugiego znaku tekstu i pierwszego znaku wzorca. Jeśli zostanie znaleziony cały szukany wzorzec, algorytm rozpoczyna przeszukiwanie od następnego znaku. Innymi słowy, wzorzec jest zawsze przesuwany o jeden znak. Jest to podstawowa wada tego algorytmu. Przykład działania algorytmu po odnalezieniu wzorca (przeszukiwany tekst to AAA, wzorzec: AA) Tekst A A A Następna iteracja algorytmu rozpoczyna się od kolejnego znaku w badanym tekście: Tekst A A A Złożoność obliczeniowa w najgorszym przypadku wynosi O(N*M), gdzie N jest długością tekstu, M zaś długością wzorca. 2.1 Przykład Tekst do przeszukania ma postać: AACAA, szukany wzorzec: AA. Przeszukiwanie rozpoczyna się od pierwszego znaku tekstu i pierwszego znaku wzorca.
2 Algorytmy przeszukiwania wzorca 2 Ponieważ występuje zgodność, porównuje się następne znaki: Ponieważ występuje zgodność, porównuje się następne znaki: Ponieważ C, więc algorytm rozpoczyna się od początku, jednakże zaczynając od 2. litery tekstu: Ponieważ występuje zgodność, porównuje się następne znaki: Ponieważ C A, więc algorytm rozpoczyna się od początku, jednakże zaczynając od 3. litery tekstu: Ponieważ C A, więc algorytm rozpoczyna się od początku, jednakże zaczynając od 4. litery tekstu: Ponieważ A, więc algorytm rozpoczyna się od początku, jednakże zaczynając od 5. litery tekstu:
3 Algorytmy przeszukiwania wzorca 3 Ponieważ wszystkie 3 litery są zgodne, więc został odnaleziony poszukiwany ciąg. Algorytm kontynuuje działanie od miejsca k + 1 w badanym tekście, gdzie k oznacza miejsce startu algorytmu, Ponieważ w opisywanym przykładzie liczba nieprzebadanych znaków tekstu jest mniejsza od długości przeszukiwanego tekstu, przeszukiwanie kończy się. 3 Algorytm KMP Algorytm Knutha-Morrisa-Pratta, opublikowany w 1976 roku, stanowi rozwinięcie algorytmu naiwnego. Algorytm naiwny wykonuje wiele powtarzających się przeszukiwań, nie wykorzystując w przypadku niezgodności którejś z liter wzorca informacji wcześniej przebadanej (np. dla tekstu AAAAAC i wzorca AAAAC marnuje się przy pierwszej kolizji 6 porównań). W algorytmie KMP wykorzystywana jest informacja o możliwości wykonania przesunięcia wzorca o więcej, niż jeden znak. 3.1 Tworzenie tablicy przesunięć Tablica przesunięć (o zwyczajowej nazwie next) wykorzystywana jest w algorytmie KMP do wyznaczania maksymalnych bezpiecznych przesunięć wzorca względem przeszukiwanego tekstu. Tworzona jest według następującego algorytmu: 1) next[0] = 1; j = 1 2) umieść kopię pierwszych j znaków wzorca pod fragmentem wzorca złożonym z pierwszych j liter wzorca, przesuniętych w prawo o jeden znak 3) przesuwaj tę kopię w prawo do chwili gdy: - wszystkie nakładające się znaki są identyczne, lub - nie ma nakładających się znaków 4) next[j] jest równe liczbie nakładających się znaków j = j + 1 jeśli j jest równe długości wzorca - stop, w przeciwnym przypadku skocz do punktu 2) Przykład Przyjmijmy, że mamy następujący wzorzec: wzorzec= AAA, zgodnie z krokiem 1) mamy, że: next[0] = 1, j = 1, wykonując krok 2) otrzymujemy:
4 Algorytmy przeszukiwania wzorca 4 Ponieważ nie ma nakładających się fragmentów wzorca, więc: next[1] = 0. Zgodnie z krokiem 4) algorytmu mamy: j = 2, więc A A (nakładające się fragmenty wzorca zaznaczono kolorem szarym). Ponieważ nie wszystkie nakładające się elementy wzorca są identyczne, więc konieczne jest przesunięcie dolnego fragmentu wzorca o jeden znak w prawo Ponieważ nie ma nakładających się fragmentów wzorca, więc: next[2] = 0. Zgodnie z krokiem 4), j = 3, więc A A A A Ponieważ nie wszystkie nakładające się elementy wzorca są identyczne, więc konieczne jest przesunięcie dolnego fragmentu wzorca o jeden znak w prawo A A Ponieważ wszyskie nakładające się znaki są identyczne, więc next[3] jest równe liczbie nakładających się znaków. W przykładzie będzie to: next[3] = 1. Postępując analogicznie dla pozostałych wartości j = 4, 5, 6, 7 otrzymuje się: j next[j] Algorytm KMP - wykorzystanie tablicy next Celem prezentacji algorytmu konieczne jest wprowadzenie oznaczeń: T [x] - przeszukiwany tekst, x - indeks znaku w tekście T, x 0, W [y] - szukany wzorzec o długości M, y - indeks znaku we wzorcu W, y 0. Algorytm KMP możne zostać zapisany przy pomocy następującego pseudokodu: 1) x = 0; y = 0 2) Wyznaczyć tablicę przesunięć next dla danego wzorca 3) Dopóki T [x] = W [y] i nie przeszukano całego tekstu, zwiększ x i y o jeden 4) Jeśli przeszukano cały tekst, wtedy możliwe są dwa przypadki: Jeśli y = M 1 to wzorzec został znaleziony na pozycji x M + 1, w przeciwnym przypadku wzorzec nie został znaleziony 5) Ponieważ T [x] <> W [y], więc należy skoczyć do 3) zmieniając y na wartość next[y]. Jeśli y = 1, należy zwiększyć x i y o jeden i również skoczyć do 3) Krok 5) odpowiada przesunięciu wzorca tak, aby litera o indeksie next[y] znalazła się pod znakiem o indeksie x. Wszystkie znaki wzorca na lewo od znaku x tekstu są zgodne z tekstem. Algorytm KMP działa w czasie O(M + N) w najgorszym przypadku.
5 Algorytmy przeszukiwania wzorca Przykład Znaleźć wzorzec AAA w tekście: AAAAAAA. Wykonanie algorytmu rozpoczyna się od ustawienia wartości początkowych: x = 0, y = 0. Następnie konieczne jest wyznaczenie tablicy next. Została ona wyznaczona w przykładzie indeks T x tekst T A A A A A A A wzorzec W A A A y indeks W next Ponieważ znaki T [x] i W [y] są zgodne, następuje przesunięcie x i y aż do momentu stwierdzenia niezgodności lub znalezienia całego wzorca. W przykładzie niezgodność występuje na pozycji 4: indeks T x tekst T A A A A A A A wzorzec W A A A y indeks W next Z tego powodu konieczne jest przesunięcie wzorca (poprzez zmianę y) tak, aby znak o indeksie next[4] (czyli 2), oznaczony pismem pogrubionym znalazł się pod znakiem o indeksie x (oznaczonym kolorem szarym): indeks T x tekst T A A A A A A A wzorzec W A A A y indeks W next Ponieważ znaki tekstu o indeksach od 4 do 8 są zgodne z odpowiednimi znakami (od 2. do 6.) wzorca, więc następuje przesuwanie indeksów x i y zgodnie z krokiem 3). Różne znaki występują na pozycji 9:
6 Algorytmy przeszukiwania wzorca 6 indeks T x tekst T A A A A A A A wzorzec W A A A y indeks W next Z tego powodu konieczne jest przesunięcie wzorca (poprzez zmianę y) tak, aby znak o indeksie next[7] (czyli 1), oznaczony pismem pogrubionym znalazł się pod znakiem o indeksie x (oznaczonym kolorem szarym): indeks T x tekst T A A A A A A A wzorzec W A A A y indeks W next Ponieważ wszystkie pozostałe znaki są zgodne z wzorcem, więc na koniec x przyjmie wartość x = 15, dlugość wzorca wynosi M = 8, stąd też wzorzec został odnaleziony na pozycji x M + 1 = = 8. Zwróć uwagę, że tablice tekstu i wzorca są indeksowane od wartości 0. 4 Algorytm oyera i Moore a W algorytmie tym w przeciwieństwie do algorytmu KMP porównywany jest ostatni znak wzorca. Jeśli badany znak o (indeksie x) tekstu nie wchodzi w skład wzorca, możliwe jest przesunięcie indeksu x o długość wzorca. Jeśli znak ten występuje - konieczne jest przesunięcie wzorca tak, aby znak ten znalazł się pod odpowiadającym mu znakiem wzorca. 4.1 Tablica przesunięć shift Celem wyznaczenia optymalnego przesunięcia, konieczne jest wyznaczenie na podstawie wzorca tablicy przesunięć, zwanej zwyczajowo shif t. Tablica ta, o rozmiarze równym liczbie wszystkich możliwych znaków, które mogą wystąpić w tekście przeszukiwanym i we wzorcu, zawiera wartość zero w komórce odpowiadającej indeksowi ostatniego znaku wzorca, 1 - przedostatniego itd. Jeśli określony znak nie występuje we wzorcu, tablica shift przyjmuje wartość równą długości wzorca. Przy wyznaczaniu tej tablicy zakłada się ponadto, że jeśli określony znak istnieje we wzorcu więcej, niż jeden raz, pod uwagę bierze się tylko ostatnią pozycję (dążąc tym samym do minimalizacji wartości elementów tablicy shif t) Przykład Niech wzorzec= AGD, zaś wszystkie możliwe znaki tekstu i wzorca to ACDEFGH. Znaki we wzorcu numeruje się od końca:
7 Algorytmy przeszukiwania wzorca 7 A G D Długość wzorca wynosi 5. Wartości tablicy shif t wynoszą więc: k shift[k] komentarz A 4 jest na pozycji 4, licząc od końca 1 wynosi minimum{1, 3} = 1 C 5 nie występuje we wzorcu, więc wartość równa długości wzorca, czyli 5 D 0 na ostatniej pozycji wzorca, więc zero E 5 nie występuje we wzorcu, więc wartość równa długości wzorca, czyli 5 F 5 nie występuje we wzorcu, więc wartość równa długości wzorca, czyli 5 G 2 jest na pozycji 2, licząc od końca H 5 nie występuje we wzorcu, więc wartość równa długości wzorca, czyli 5 Przy wyznaczaniu elementów tablicy shift, należy pamiętać, iż najmniejszą jej wartością jest zero, na pozycji odpowiadającej ostatniemu znakowi wzorca. 4.2 Algorytm M Założenia: M długość wzorca W, N długość tekstu T. Algorytm oyera Moore a można przedstawić następująco (należy pamiętać, że tablice znaków indeksowane są od zera): 1) Wyznaczyć tablicę przesunięć shif t dla szukanego wzorca 2) Jeśli długość wzorca > długość tekstu - stop, nie znaleziono 3) Rozpocząć przeszukiwanie od ostatniej litery wzorca i odpowiadającej jej literze tekstu: i = M 1, j = M 1 4) Dopóki j > 0 wykonuj: 5) Dopóki i-ty znak tekstu oraz j-ty znak wzorca różnią się, wykonuj: 4a) Używając tablicy shif t wyznacz przesunięcie x odpowiadające znakowi T [i] 4b) Jeśli M j > x, zwiększ i o wartość M j; w przeciwnym przypadku - zwiększ i o wartość przesunięcia x 4c) Jeśli i jest większe od długości tekstu - stop, wzorca nie odnaleziono 4d) Ustaw j na ostatni znak wzorca 6) Zmniejsz i oraz j o jeden 7) Odnaleziono wzorzec na pozycji i Przykład Odnaleźć wzorzec AGD w tekście AGHHAGDEH. Tablica shif t została wyznaczona w punkcie W przykładzie ponadto M = 5, N = 12. Ponieważ M N, więc poszukiwanie może się rozpocząć.
8 Algorytmy przeszukiwania wzorca 8 Przeszukiwanie rozpoczyna się od ostatniego znaku wzorca i odpowiadającego znaku tekstu: i = 4, j = 4. indeks T i tekst T A G H H A G D E H wzorzec W A G D j indeks W Ponieważ j > 0, oraz znaki H i D różnią się, więc należy wyznaczyć przesunięcie x = shift[ H ] = 5. Ponieważ warunek 5 4 > 5 nie jest spełniony, i = = 9: indeks T i tekst T A G H H A G D E H wzorzec W A G D j indeks W Ponieważ i-ty i j-ty znak tekstu są identyczne, więc należy zbadać poprzedni znak, zmniejszając je o 1: indeks T i tekst T A G H H A G D E H wzorzec W A G D j indeks W Postępując analogicznie okaże się, że wzorzec został znaleziony. 5 Algorytm Rabina i Karpa Algorytm Rabina i Karpa opiera się na porównywaniu ze sobę całości wzorca na raz i odpowiedniego fragmentu tekstu, po zamianie ich na wartości liczbowe przy użyciu odpowiedniej funkcji H. Poprawnie skonstruowana funkcja H powinna umożliwić wykorzystanie wartości z obliczeń w poprzednim kroku algorytmu. Wyznaczenie wartości H w funkcji H dla wzorca wykonywane jest jednorazowo, na początku algorytmu. Wartość H t, czyli wartość funkcji H dla określonego fragmentu tekstu wyznaczana jest w każdym kroku algorytmu. 5.1 Wybór funkcji H Poszukiwanie wzorca w algorytmie RK polega na zamianie wzorca i fragmentu tekstu na liczbę. Oznacza to, że ciąg M znaków w kroku i będzie interpretowany jako pewna liczba x i,
9 Algorytmy przeszukiwania wzorca 9 najlepiej całkowita (szybkość porównywania). Przyjmując za b jako podstawę systemu liczbę wszystkich możliwych znaków, otrzymuje się: W kroku i + 1 otrzymuje się x i = t[i]b M 1 + t[i + 1]b M t[i + M 1] x i+1 = t[i + 1]b M 1 + t[i + 2]b M t[i + M] Funkcja H powinna umożliwiać wykorzystanie obliczeń wykonanych w kroku poprzednim do wyznaczenia wartości w kroku bieżącym. Zadanie polega więc na wyznaczeniu wartości x i+1 przy wykorzystaniu wartości x i. Wartość ta wynosi: x i+1 = (x i t[i]b M 1 ) + t[i + M] Jako funkcji H można wykorzystać funkcję H(x) = x mod p, gdzie mod oznacza resztę z dzielenia x przez p. Wartość p powinna być dużą liczbą pierwszą. Funkcja H może więc być więc wyznaczona jako H(x i+1 ) = [ (x i t[i]b M 1 ) + t[i + M] ] mod p Z własności operatora mod wynika, że zamiast wyznaczać resztę z dzielenia dla całego wyrażenia, możliwe jest jej wyznaczenie po każdej operacji cząstkowej, przenosząc wynik do następnej. Przykład: ( ) mod 7 = 568 mod 7 = 1, co jest równoważne: mod 7 = 3, ( ) mod 7 = 0, (0 + 8) mod 7 = 1. Jako wartość b wskazane jest wybranie liczby będącej potęgą liczby 2 ze względu na możliwość implementacji mnożenia jako operacji przesunięcia bitowego. 5.2 Algorytm RK Wartość H w funkcji H dla wzorca można więc wyznaczyć przy pomocy pętli, gdzie i przebiega każdy znak wzorca, jako: Hw = 0; dla i przyjmującej wartość od 0 do liczby znaków wzorca -1 wykonuj: Hw = (Hw b + (i ty znak wzorca))) mod p; Analogicznie wyznacza się wartość H t tej funkcji dla fragmentu tekstu: Ht = 0; dla i przyjmującej wartość od 0 do liczby znaków wzorca -1 wykonuj: Ht = (Ht + b p (i ty znak tekstu)) bˆm 1) mod p; Ht = (Ht b + (i + M ty znak tekstu)) mod p; Dodawanie wartości b p nie zmienia wartości wyrażenia (z uwagi na operator mod), pozwala uchronić się przed wskoczeniem w liczby ujemne. Algorytm RK polega na wyznaczaniu wartości funkcji H t i H w dla początkowego fragmentu tekstu. Następnie należy porównać te wartości. Jeśli są równe - znaleziono wzorzec. W przeciwnym przypadku należy wyznaczyć wartość funkcji H dla znaków od 2 do M +1 i porównać je z H w. Czynności te należy powtarzać, używając odpowiednich znaków tekstu, aż do znalezienia wzorca lub zbadania całego tekstu.
10 Algorytmy przeszukiwania wzorca 10 Literatura [1] P. Wróblewski. Algorytmy, struktury danych i techniki programowania, Helion, [2] L. anachowski, K. Diks, W. Rytter. Algorytmy i struktury danych, WNT [3] T. H. Cormen, Ch. E. Leiserson, R. L. Rivest. Wprowadzenie do algorytmów, WNT 1997.
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
operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.
ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb
1 abbbaabaaabaa -wzorzec: aaba
Algorytmy i złożoność obliczeniowa Laboratorium 14. Algorytmy tekstowe. 1. Algorytmy tekstowe Algorytmy tekstowe mają decydujące znaczenie przy wyszukiwaniu informacji typu tekstowego, ten typ informacji
Sortowanie zewnętrzne
Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często
Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI
Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System
Temat: Algorytmy wyszukiwania wzorca w tekście
Temat: Algorytmy wyszukiwania wzorca w tekście 1. Sformułowanie problemu Dany jest tekst T oraz wzorzec P, będące ciągami znaków o długości równej odpowiednio n i m (n m 1), nad pewnym ustalonym i skończonym
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
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Nr 4 Algorytmy sortowania zewnętrznego 1 Wstęp Bardzo często przy rozwiązywaniu praktycznych
Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Wstęp do informatyki- wykład 1 Systemy liczbowe
1 Wstęp do informatyki- wykład 1 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz,
Techniki wyszukiwania danych haszowanie
Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Techniki wyszukiwania danych haszowanie 1 Cel
Sortowanie Shella Shell Sort
Sortowanie Shella Shell Sort W latach 50-tych ubiegłego wieku informatyk Donald Shell zauważył, iż algorytm sortowania przez wstawianie pracuje bardzo efektywnie w przypadku gdy zbiór jest w dużym stopniu
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)
Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =
Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,
B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:
Dodawanie dwójkowe Do wykonywania dodawania niezbędna jest znajomość tabliczki dodawania, czyli wyników sumowania każdej cyfry z każdą inną. W systemie binarnym mamy tylko dwie cyfry 0 i 1, zatem tabliczka
Wstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji
Scenariusz lekcji 1 TEMAT LEKCJI: Algorytmy wyszukiwania wzorca w ciągu 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać definicje wyszukiwania wzorca w tekście; opisać algorytm naiwny wyszukiwania
Jeszcze o algorytmach
Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy
Kod U2 Opracował: Andrzej Nowak
PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim
Wyszukiwanie binarne
Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie
Haszowanie. dr inż. Urszula Gałązka
Haszowanie dr inż. Urszula Gałązka Problem Potrzebujemy struktury do Wstawiania usuwania wyszukiwania Liczb, napisów, rekordów w Bazach danych, sieciach komputerowych, innych Rozwiązanie Tablice z haszowaniem
Sortowanie - wybrane algorytmy
Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe
Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].
Zadanie 1. Wiązka zadań Od szczegółu do ogółu Rozważmy następujący algorytm: Dane: Algorytm 1: k liczba naturalna, A[1...2 k ] tablica liczb całkowitych. n 1 dla i=1,2,,k wykonuj n 2n s 1 dopóki s
Sortowanie przez wstawianie Insertion Sort
Sortowanie przez wstawianie Insertion Sort Algorytm sortowania przez wstawianie można porównać do sposobu układania kart pobieranych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne,
Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)
1. Liczby wymierne. - wartość bezwzględna liczby. dla 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba) - dla < 0 ( wartością bezwzględną liczby ujemnej jest liczba do niej przeciwna) W interpretacji
Ćwiczenie nr 1: Systemy liczbowe
Ćwiczenie nr 1: Systemy liczbowe Barbara Łukawska, Adam Krechowicz, Tomasz Michno Podstawowym systemem liczbowym uŝywanym na co dzień jest system dziesiętny. Podstawą tego systemu jest 10 cyfr 0, 1, 2,
znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.
Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często
Techniki multimedialne
Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo
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
1. Operacje logiczne A B A OR B
1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne
Algorytmy sortujące. Sortowanie bąbelkowe
Algorytmy sortujące Sortowanie bąbelkowe Sortowanie bąbelkowe - wstęp Algorytm sortowania bąbelkowego jest jednym z najstarszych algorytmów sortujących. Zasada działania opiera się na cyklicznym porównywaniu
Zadanie 1. Potęgi (14 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,
wagi cyfry 7 5 8 2 pozycje 3 2 1 0
Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień
PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ POZIOM ROZSZERZONY Część I
Organizatorzy: Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki, Oddział Kujawsko-Pomorski Polskiego Towarzystwa Informatycznego, Ośrodek Doskonalenia Nauczycieli w Poznaniu, Centrum
Zapis algorytmów: schematy blokowe i pseudokod 1
Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu
Wstęp do informatyki- wykład 1
MATEMATYKA 1 Wstęp do informatyki- wykład 1 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą
Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15
Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:
Programowanie dynamiczne
Programowanie dynamiczne Patryk Żywica 5 maja 2008 1 Spis treści 1 Problem wydawania reszty 3 1.1 Sformułowanie problemu...................... 3 1.2 Algorytm.............................. 3 1.2.1 Prosty
Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,
Oznaczenia: Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, to interesuje nas złożoność obliczeniowa
Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 2 Teoria liczby rzeczywiste cz.2
1 POTĘGI Definicja potęgi ł ę ę > a 0 = 1 (każda liczba różna od zera, podniesiona do potęgi 0 daje zawsze 1) a 1 = a (każda liczba podniesiona do potęgi 1 dają tą samą liczbę) 1. Jeśli wykładnik jest
2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,
2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Stany równoważne Stany p i q są równoważne,
EGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne)
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. MIN 2017 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ I DATA: 10
Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz
Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Podstawowe algorytmy przetwarzania tablic (wypełnianie, porównywanie elementów,
Wstęp do Informatyki
Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH wykład 1 wprowadzenie, struktury sterujace, projektowanie algorytmów dr hab. inż. Andrzej Obuchowicz, prof. UZ Instytut Sterowania i Systemów Informatycznych UZ p. 425 A2 tel.
Lista, Stos, Kolejka, Tablica Asocjacyjna
Lista, Stos, Kolejka, Tablica Asocjacyjna Listy Lista zbiór elementów tego samego typu może dynamicznie zmieniać rozmiar, pozwala na dostęp do poszczególnych elementów Typowo dwie implementacje: tablicowa,
LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q
LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone
Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.
Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit
L6.1 Systemy liczenia stosowane w informatyce
L6.1 Systemy liczenia stosowane w informatyce Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Publikacja jest dystrybuowana bezpłatnie Program Operacyjny Kapitał
EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY
Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2011 KOD WPISUJE ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY
Algorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY
Lista 0. Kamil Matuszewski 1 marca 2016
Lista 0 Kamil Matuszewski marca 206 2 3 4 5 6 7 8 0 0 Zadanie 4 Udowodnić poprawność mnożenia po rosyjsku Zastanówmy się co robi nasz algorytm Mamy podane liczby n i m W każdym kroku liczbę n dzielimy
Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe
Algorytmy sortujące sortowanie kubełkowe, sortowanie grzebieniowe Sortowanie kubełkowe (bucket sort) Jest to jeden z najbardziej popularnych algorytmów sortowania. Został wynaleziony w 1956 r. przez E.J.
MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)
MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny) SPOSÓB 1 (z rozszerzeniem mnożnika): Algorytm jak zwykle jest prosty: lewostronne rozszerzenie mnożnej o kilka cyfr (na pewno wystarczy
Zestaw 3. - Zapis liczb binarnych ze znakiem 1
Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Publikacja jest dystrybuowana bezpłatnie Program Operacyjny Kapitał Ludzki Priorytet 9 Działanie 9.1 Poddziałanie
3. Macierze i Układy Równań Liniowych
3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x
Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6
Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6 1 Kody cykliczne: dekodowanie Definicja 1 (Syndrom) Niech K będzie kodem cyklicznym z wielomianem generuja- cym g(x). Resztę z dzielenia słowa
Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane
Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne
Programowanie 2 - Tablice i łańcuchy
Instytut Informatyki Uniwersytetu Śląskiego Laborki Zadania String jako klasa; length() - długość łańcucha; char CharAt (int index) - sprawdzenie znaku na zadanym numerze. Użytkownik podaje n łańcuchów.
Czas pracy: 60 minut
EGZAMIN MATURALNY OD ROKU SZKOLNEGO 2014/2015 INFORMATYKA POZIOM ROZSZERZONY ARKUSZ I PRZYKŁADOWY ZESTAW ZADAŃ DLA OSÓB SŁABOSŁYSZĄCYCH (A3) WYBRANE:... (środowisko)... (kompilator)... (program użytkowy)
Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.
Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1 Spis treści 1 Pojęcie algorytmu 3 2 Sposób
Metodyki i techniki programowania
Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy
Podstawy Programowania 1 Sortowanie tablic jednowymiarowych. Plan. Sortowanie. Sortowanie Rodzaje sortowania. Notatki. Notatki. Notatki.
Podstawy Programowania 1 Sortowanie tablic jednowymiarowych Arkadiusz Chrobot Zakład Informatyki 12 listopada 20 1 / 35 Plan Sortowanie Wartość minimalna i maksymalna w posortowanej tablicy Zakończenie
Podstawy Informatyki
Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 3 1 / 42 Reprezentacja liczb całkowitych
System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.
2. Arytmetyka komputera. Systemy zapisu liczb: dziesietny, dwójkowy (binarny), ósemkowy, szesnatskowy. Podstawowe operacje arytmetyczne na liczbach binarnych. Zapis liczby binarnej ze znakiem. Reprezentacja
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Metody optymalizacji Metody bezgradientowe optymalizacji bez ograniczeń Materiały pomocnicze do ćwiczeń
Informatyka 1. Złożoność obliczeniowa
Informatyka 1 Wykład XI Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
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
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.
Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.
Iteracje Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracja inaczej zwana jest pętlą i oznacza wielokrotne wykonywanie instrukcji. Iteracje
INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.
INFORMATYKA Zajęcia organizacyjne Arytmetyka komputerowa http://www.infoceram.agh.edu.pl http://home.agh.edu.pl/~grzesik/ KONSULTACJE Zbigniew Grzesik środa, 9 ; A-3, p. 2 tel.: 67-249 e-mail: grzesik@agh.edu.pl
Metodyki i techniki programowania
Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy
EGZAMIN MATURALNY Z INFORMATYKI MAJ 2010 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY
Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2010 KOD WPISUJE ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY
1.1. Pozycyjne systemy liczbowe
1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego
EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM PODSTAWOWY CZĘŚĆ
Wyszukiwanie. Wyszukiwanie binarne
Wyszukiwanie Wejście: posortowana, n-elementowa tablica liczbowa T oraz liczba p. Wyjście: liczba naturalna, określająca pozycję elementu p w tablicy T, bądź 1, jeŝeli element w tablicy nie występuje.
EGZAMIN MATURALNY Z INFORMATYKI
ARKUSZ ZAWIERA INORMACJE RAWNIE CHRONIONE DO MOMENTU ROZOCZĘCIA EGZAMINU! Miejsce na naklejkę MIN-R1_1-082 EGZAMIN MATURALNY Z INORMATYKI MAJ ROK 2008 OZIOM ROZSZERZONY CZĘŚĆ I Czas pracy 90 minut Instrukcja
Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych
Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych Piotr Modliński Wydział Geodezji i Kartografii PW 13 stycznia 2012 P. Modliński, GiK PW Rozw.
Wyszukiwanie plików w systemie Windows
1 (Pobrane z slow7.pl) Bardzo często pracując na komputerze prędzej czy później łapiemy się na pytaniu - Gdzie jest ten plik? Zapisujemy i pobieramy masę plików i w nawale pracy pewne czynności są wykonywane
Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych
Uniwersytet Zielonogórski Wydział Informatyki, Elektrotechniki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Elektrotechnika niestacjonarne-zaoczne pierwszego stopnia z tyt. inżyniera
Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1
Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).
Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów
Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69
Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI
Andrzej Jastrz bski Akademia ETI Wyszukiwanie wzorca Wyszukiwaniem wzorca nazywamy sprawdzenie, czy w podanym tekscie T znajduje si podci g P. Szukamy sªowa kot: Ala ma kota, kot ma ale. Algorytm naiwny
INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki
INFORMATYKA Z MERMIDONEM Programowanie Moduł 5 / Notatki Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Realizator projektu: Opracowano w ramach projektu
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Zapis liczb binarnych ze znakiem
Zapis liczb binarnych ze znakiem W tej prezentacji: Zapis Znak-Moduł (ZM) Zapis uzupełnień do 1 (U1) Zapis uzupełnień do 2 (U2) Zapis Znak-Moduł (ZM) Koncepcyjnie zapis znak - moduł (w skrócie ZM - ang.
Systemy zapisu liczb.
Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy. Zdobycie umiejętności wykonywania działań na liczbach w różnych systemach. Zagadnienia:
Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).
Wykład 1 1-1 Informatyka nauka zajmująca się zbieraniem, przechowywaniem i przetwarzaniem informacji. Informacja obiekt abstrakcyjny, który w postaci zakodowanej moŝe być przechowywany, przesyłany, przetwarzany
Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów:
Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów: Listy rozkładane są do różnych przegródek. O tym, do której z nich trafi koperta, decydują różne fragmenty
Maciej Piotr Jankowski
Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji
ZADANIE 1. Ważenie (14 pkt)
ZADANIE 1. Ważenie (14 pkt) Danych jest n przedmiotów o niewielkich gabarytach i różnych wagach. Jest też do dyspozycji waga z dwiema szalkami, ale nie ma odważników. Kładąc na wadze przedmioty a i b,