wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Podobne dokumenty
Egzamin, AISDI, I termin, 18 czerwca 2015 r.

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

Teoria obliczeń i złożoność obliczeniowa

Zadanie 1. Potęgi (14 pkt)

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

Algorytmy i Struktury Danych egzamin na studia uzupełniające wrzesień 2013 r.

Lista zadań - Relacje

Zasady analizy algorytmów

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

Sortowanie przez scalanie

Złożoność obliczeniowa zadania, zestaw 2

a) 7 b) 19 c) 21 d) 34

Analiza algorytmów zadania podstawowe

Zaawansowane algorytmy i struktury danych

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Zadanie 1. Suma silni (11 pkt)

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

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

Wstęp do programowania

ZADANIE 1. Ważenie (14 pkt)

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

1 Automaty niedeterministyczne

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

EGZAMIN MATURALNY Z INFORMATYKI

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Podstawy Informatyki. Sprawność algorytmów

1. Analiza algorytmów przypomnienie

Pole wielokąta. Wejście. Wyjście. Przykład

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

EGZAMIN MATURALNY Z INFORMATYKI

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

Lista 0. Kamil Matuszewski 1 marca 2016

Algorytmy i Struktury Danych

Porządek symetryczny: right(x)

Zadania do wykładu ALGORYTMY I STRUKTURY DANYCH

Złożoność algorytmów. Wstęp do Informatyki

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

INFORMATYKA SORTOWANIE DANYCH.

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Struktury Danych i Złożoność Obliczeniowa

Struktury danych: stos, kolejka, lista, drzewo

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.

Wstęp do informatyki- wykład 1 Systemy liczbowe

Imię, nazwisko, nr indeksu

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

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Algorytmy i struktury danych. wykład 5

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

Efektywność algorytmów

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

EGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne)

Sortowanie - wybrane algorytmy

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak:

EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 9:00 CZĘŚĆ I WYBRANE: Czas pracy: 90 minut

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

Egzaminy i inne zadania. Semestr II.

Wykład 10 Grafy, algorytmy grafowe

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Programowanie dynamiczne

Efektywna metoda sortowania sortowanie przez scalanie

INFORMATYKA DANE.

Algorytm. a programowanie -

Czas pracy: 60 minut

Wstęp do informatyki- wykład 2

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

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

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

Algorytmy i Struktury Danych. (c) Marcin Sydow. Sortowanie Selection Sort Insertion Sort Merge Sort. Sortowanie 1. Listy dowiązaniowe.

KARTA MODUŁU KSZTAŁCENIA

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

Algorytmy i struktury danych

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Matematyczne Podstawy Informatyki

Teoretyczne Podstawy Informatyki

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

KARTA MODUŁU KSZTAŁCENIA

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Algorytmika i pseudoprogramowanie

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)

Sortowanie topologiczne skierowanych grafów acyklicznych

Teoretyczne podstawy informatyki

Strategia "dziel i zwyciężaj"

Rekurencja. Przykład. Rozważmy ciąg

Wstęp do programowania

Transkrypt:

egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:.............................................................. Udziel krótkich ale precyzyjnych odpowiedzi na wszystkie pytania zamieszczone poniżej. Zadanie 1 (1.0 pkt.) Podaj przykład takiej funkcji h(x) : R + R +, że h(n) / O(n) oraz h(n) / Ω(n). Odpowiedź uzasadnij. Zadanie 2 (1.0 pkt.) Zapisz liczbę wymierną 44 2 9 w postaci binarnej w systemie stałopozycyjnym z dokładnością do 6 miejsc po kropce dwójkowej. Wykonaj stosowne obliczenia. Zadanie 3 (1.0 pkt.) Narysuj schemat blokowy dla zadania obliczania funkcji signum(x). Zakładamy, że wczytana wartość parametru x jest liczbą rzeczywistą. 1

Zadanie 4 (1.0 pkt.) Co to jest bufor LIFO? Jakie operacje są wykonywane na takim buforze? Podaj przykład struktury danych typu LIFO. Zadanie 5 (1.5 pkt.) Zapisz w notacji postfiksowej ONP wyrażenie ex4 5x +6 x+7 2π 3x. Możesz używać tylko operatorów dodawania, odejmowania, mnożenia, dzielenia i potęgowania. Nie zakładaj żadnej wiedzy o przemienności i łączności tych operatorów. Zadanie 6 (0.5 pkt.) Jaka jest złożoność czasowa algorytmu Euklidesa w zależności od wartości danych wejściowych? Zadanie 7 (1.0 pkt.) Co to znaczy, że algorytm jest stabilny? Zadanie 8 (1.0 pkt.) Jakie zadanie rozwiązuje algorytmu wyszukiwania binarnego? Zadanie 9 (1.0 pkt.) Ile dokładnie zamian elementów wykona algorytm sortowania przez wstawianie, jeśli uruchomimy go na odwrotnie posortowanym ciągu? Odpowiedź uzasadnij. Zadanie 10 (1.0 pkt.) Czy algorytm scalania omówiony na wykładzie działa w miejscu? Odpowiedź uzasadnij. Zadanie 11 (1.0 pkt.) Na czym polega problem podziału? Zadanie 12 (1.0 pkt.) Jaka jest złożoność czasowa algorytmu Hoare a w najgorszym i w średnim (oczekiwanym) przypadku? 2

egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:.............................................................. Udziel krótkich ale precyzyjnych odpowiedzi na wszystkie pytania zamieszczone poniżej. Zadanie 13 (0.5 pkt.) Jaka technika rozwiązywania zadań obliczeniowych została wykorzystana w algorytmie Karacuby? Zadanie 14 (1.0 pkt.) Jaka jest złożoność pamięciowa i czasowa algorytmu rozwiązującego problem triangulacji wielokąta wypukłego? Zadanie 15 (1.0 pkt.) Na czym polega problem LIS? Zadanie 16 (1.5 pkt.) Skonstruuj automat skończony akceptujący tylko niepuste słowa zbudowane nad alfabetem Σ = {a, b, c}, w których nie sąsiadują ze sobą dwie takie same litery (słowa nie zawierają podsłów aa, bb ani cc). Zadanie 17 (1.0 pkt.) Napisz wyrażenie regularne, do którego dopasuje się poprawnie zapisana w systemie dziesiętnym liczba naturalna bez zer wiodących. 3

Zadanie 18 (1.5 pkt.) Napisz w notacji BNF formuły definiujące palindrom zbudowany nad alfabetem Σ = {a, b}. Przykłady: a, bb, aba, aaaa. Zadanie 19 (1.0 pkt.) Co to jest wartownik w liście z wartownikiem? Zadanie 20 (1.0 pkt.) Narysuj drzewo BST, które jest drzewem zupełnym, zawierającym 10 różnych liczb całkowitych. Zadanie 21 (0.5 pkt.) Jaki jest czas budowy kopca od dołu z zadanych n wartości? Zadanie 22 (0.5 pkt.) Ile węzłów zawiera drzewo dwumianowe B 4? Zadanie 23 (0.5 pkt.) Jaki jest czas działania operacji meld na kopcach dwumianowych w zależności od rozmiaru kopców? Zadanie 24 (1.0 pkt.) Co to jest graf dwudzielny? Zadanie 25 (1.0 pkt.) Jaka jest złożoność czasowa operacji wyznaczania stopnia wierzchołka w grafie pamiętamym w postaci macierzy sąsiedztwa a jaka w grafie pamiętanym w postaci list sąsiadów? 4

egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część zadaniowa (2 zad. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:.............................................................. Wybierz dwa spośród poniższych zadań i napisz ich rozwiązania. Zadanie 1: implementacja stosu na tablicy (5 pkt.) Stos to bufor służący do przechowywania elementów pewnego zbioru dynamicznego. Na stos można wstawiać elementy i usuwać, ale usunąć można tylko ten element, który został dodany najpóźniej. Opisz, jak zaimplementować stos na n elementowej tablicy. Zapisz w pseudokodzie i skomentuj wszystkie funkcje stosowe. Jaka będzie złożoność obliczeniowa każdej z tych funkcji. Ile miejsca w pamięci zajmuje ta struktura w zależności od liczby wstawionych elementów? Zadanie 2: maksimum w ciągu rosnąco malejącym (5 pkt.) W n elementowej tablicy T [0... n 1] zapisany jest ciąg, który najpierw rośnie a potem maleje. Tak więc istnieje pozycja k {0... n 1} taka, że T 0 <... < T k >... > T n 1. Można założyć, że liczby w tym ciągu są różne. Widać zatem, że na pozycji k tej znajduje się maksimum tego ciągu. Ale my nie znamy tej pozycji. Zadanie polega na wymyśleniu i opisaniu efektywnego algorytmu wyznaczającego wartość maksymalną w takiej tablicy. Oszacuj złożoność obliczeniową (czasową i pamięciową) zaprezentowanej metody. Uwaga: chciałbym obejrzeć rozwiązanie lepsze od naiwnego działające szybciej niż w czasie O(n), gdzie n to liczba wyrazów ciągu. Zadanie 3: podciąg który jest swoim negatywowym odbiciem (5 pkt.) Powiemy, że ciąg cyfr dziesiętnych jest swoim negatywowym odbiciem, gdy suma cyfr równo odległuch od końca i od początku tego ciągu sumuje się do 9. Oto kilka przykładów takich ciągów: 18 (bo 1+8 = 9), 9360 (bo 9+0 = 3+6 = 9), 2859417 (bo 2+7 = 8+1 = 5+4 = 9). Zauważmy, że w ciągu o nieparzystej długości może się w środku znaleźć cyfra 9. Dany jest ciąg n cyfr dziesiętnych. Należy wyznaczyć długość najdłuższego podciągu w tym ciągu, który jest swoim negatywowym odbiciem. Zaprojektuj efektywny algorytm rozwiązujący ten problem: przedstaw ideę rozwiązania, zapisz w pseudokodzie swój algorytm a na koniec oszacuj jego złożoność obliczeniową (czasową i pamięciową). Przykład: Dla ciągu 630929465 rozwiązaniem będzie liczba 5, ponieważ najdłuższy podciąg, który jest swoim negatywowym odbiciem to 30996. 5

Zadanie 4: lista z możliwą pętlą na końcu (5 pkt.) Rozważmy listę jednokierunkową bez wartownika. Może się tak zdarzyć, że wskaźnik na następnika w ostatnim węźle listy zamiast być pusty będzie wskazywał na jakiś węzeł w środku listy (może to być także pierwszy albo ostatni węzeł w tej liście). Wówczas na końcu tej lity powstanie cykl. Mając taką listę nie wiemy, czy ma ona cykl na końcu czy kończy się wskaźnikiem pustym. Zaprojektuj i opisz algorym, który policzy węzły na liście bez względu na to, czy zadana lista jest listą prostą czy listą z cyklem na końcu. Napisz w pseudokodzie swój algorytm i oszacuj jego złożoność obliczeniową. Podpowiedź: twój algorytm powinien działać w liniowym czasie O(n) względem n liczby węzłów na liście oraz z wykorzystaniem stałej liczby dodatkowych komórek pamięci O(1). Zadanie 5: wyznaczanie k tego co do wielkości elementu ze zbioru (5 pkt.) Niech k będzie z góry ustaloną liczba naturalną. Zaprojektuj strukturę danych, która będzie efektywnie realizowała operacje insert (wstawienie nowego elementu do zbioru) oraz extract kth (usunięcie ze zbioru elementu k tego co do wielkości). Opisz dokładnie działanie tych operacji i oszacuj złożoność obliczeniową każdej z nich. Wskazówka: podziel zbiór na dwie części, przy czym jedna z nich ma mieć dokładnie k elementów. Zadanie 6: dwukolorowanie drzewa (5 pkt.) Dany jest graf T będący drzewem. Należy pokolorować wierzchołki w tym drzewie tak, aby dwa sąsiednie nie miały tego samego koloru. Użyj minimalnej liczby kolorów. Zaprojektuj i opisz algorym, który pokoloruje wierzchołki w zadanym drzewie. Oszacuj jego złożoność obliczeniową (czasową i pamięciową). Podpowiedź: twój algorytm powinien użyć nie więcej niż dwóch kolorów. 6