ALGORYTMY I STRUKTURY DANYCH

Powrót

Zadania

nr temat zadania treść zadania termin oddania
0a sumowanie wyrazów szeregu / wyliczanie silni [HTM] -
0b metoda bisekcji [HTM] -
1 sortowanie przez wstawianie [HTM] -
2 wyszukiwanie binarne [HTM] -
3 generowanie podciągu (test losowy) [HTM] -
4 generowanie podciągu (przemieszanie) [HTM] -
5 szukanie największej sumy elementów spójnego fragmentu wektora [HTM] -
6 sortowanie szybkie - metodą "dziel i rządź" [HTM] -
7 sortowanie stogowe [HTM] -
8 wyznaczanie wartości liczby PI [HTM] -
9 Anagramy (zadanie dla chętnych) [HTM] -

Gotowe procedury i funkcje (oprócz zadań 0a i 0b) należy przesyłać w formie załączników na mój adres e-mail. Jako temat wiadomości proszę wpisywać: "ALG n", gdzie n jest numerem przesyłanego zadania (np. ALG 3). Jednym listem proszę przesyłać tylko jedną procedurę.
Wszelkie opisy i komentarze dotyczące działania programów proszę umieszczać nie w treści listu, ale bezpośrednio w programie, jako komentarz. Każda procedura powinna być ponadto podpisana (również w formie komentarza na początku pliku).
W przypadku napisania nowej wersji danej procedury, proszę zapisywać ją w odpowiednio nazwanym pliku, np. zadanie3-2.c, jezeli plik oryginalny nazywał się zadanie3.c.
Należy przysyłać tylko plik z procedurą / funkcją, bez programu głównego. Jeżeli jednak jest to konieczne, np. ze względu na niestandardowe wywołanie procedury, program główny należy oczywiście załączyć.

Przykłady z zajęć

[HTM] Metoda bisekcji

Zaliczenie końcowe

Na końcową ocenę z przedmiotu składają się oceny z wykładu (50%) i laboratorium (50%).

Ocena (punktowa, z zakresu 0-100) z laboratorium będzie zależała od:
- obecności na zajęciach,
- liczby oddanych programów,
- terminowości ich oddawania,
- jakości kodu (poprawność, jakość komentarzy oraz w zależności od zadania: przejrzystość kodu lub jego efektywność),
- wyniku rozmowy zaliczeniowej.

Podczas rozmowy zaliczeniowej proszę się spodziewać podstawowych pytań dotyczących zastosowanych w zadaniach algorytmów oraz sposobu ich realizacji. Pytania będa miały na celu sprawdzenie stopnia zrozumienia tych algorytmów oraz samodzielności wykonania zadań.

Tabelka, określająca w przybliżeniu zakres punktowy, odpowiadający oddanym programom:

oddane programyzakres punktowy
1, 2, 3, 4, 5a, 6a51 - 60
1, 2, 3, 4, 5a, 6a, 7a56 - 70
1, 2, 3, 4, 5a, 6a, 7a, 861 - 80
1, 2, 3, 4, 5a, 6a, 6b, 7a, 871 - 90
1, 2, 3, 4, 5a, 5b, 6a, 6b, 7a, 8, 986 - 95
1, 2, 3, 4, 5a, 5b, 6a, 6b, 7a, 7b, 8, 991 - 100
(są możliwe niewielkie odstępstwa od powyższych reguł, ustalane indywidualnie).
Laboratorium jest zaliczone po uzyskaniu co najmniej 51 punktów.
Objaśnienia do tabeli:
5a - wersja o koszcie kwadratowym; 5b - wersja o koszcie mniejszym niż kwadratowy
6a - wersja bez optymalizacji; 6b - wersja zoptymalizowana
7a - wersja działająca na dwóch tablicach; 7b - wersja działająca w miejscu

Literatura

Algorytmy i struktury danych
Niklaus Wirth, "Algorytmy + struktury danych = programy", WNT 2002
T.H. Cormen, C.E. Leiserson, R.L. Rivest, "Wprowadzenie do algorytmów", WNT 1997
L. Banachowski, K. Diks, W. Rytter, "Algorytmy i struktury danych", WNT 1996
A.V. Aho, J.E. Hopcroft, J.D. Ullman, "Projektowanie i analiza algorytmów komputerowych", PWN 1983

C / C++
B.W. Kernighan, D.M. Ritchie, "Język ANSI C", WNT 1994
A. Drozdek, L. Simon, "Struktury danych w języku C", WNT 1996
Przykładowy kurs C/C++:   [HTM] 1  2  3  4  5  6  7         [PDF] 1  2  3  4  5  6  7

Python
[HTM] Zapraszam na swoją stronę poświęconą Pythonowi - jednemu z najprostszych a zarazem najpotężniejszych języków programowania!


Powrót na początek strony