Java praca domowa 03


Praca domowa 03  pack
Termin zwrotu : 30 marca godz. 23.00
Zadanie uznaje siÄ™ za zaliczone, gdy praca oceniona zostanie na co najmniej 6 pkt.
Dana jest tafla (szklana, blachy) o wymiarach n x n (kwadratowa). Rozmiar tafli określany jest parametrem zewnętrznym programu
. Plik wejściowy (wskazywany przez parametr programu) zawiera w kolejnych liniach ciąg liczb rzeczywistych,
z których każda definiuje średnicę d elementu (okrąg), który powinniśmy z tafli wyciąć. Można przyjąć, że dla każdego elementu spełniony jest
warunek d < n. Ilość elementów opisanych w zbiorze wejściowym określona jest wyłącznie poprzez ilość zapisów w pliku wejściowym.
Długość pojedynczej linii ani ilość liczb w linii nie jest w jakikolwiek sposób określona (format swobodny). Ilość elementów opisanych w
zbiorze wejściowym jest duża, a ich łączna powierzchnia jest istotnie większa od n x n (inaczej mówiąc : jest z czego wybierać).
Należy zaprojektować i zaimplementować klasę Knapsack umożliwiającą utworzenie i utrzymywanie struktury informacji o problemie.
Należy zaimplementować metodę pack() rozwiązującą zadania planowania podziału tafli w taki sposób, by wybierając dowolne z elementów
znajdujących się w zbiorze (pliku wejściowym) dokonać takiego ich rozłożenia i upakowania na tafli, by powierzchnia, która po pocięciu tafli
pozostanie niewykorzystana (tzw. odpady) była możliwie najmniejsza (wartością zwracaną przez funkcję jest ta właśnie łączna powierzchnia
odpadów).
Program ma być zapisany wyłącznie w dwóch plikach Knapsack.java zawierającym implementację zadania, oraz Main.java 
zawierającym programem główny. Program nie może korzystać z jakichkolwiek bibliotek zewnętrznych.
Proces kompilacji musi być możliwy z użyciem komendy
javac  Xlint Knapsack.java Main.java
Uruchomienie programu winno być możliwe z użyciem komendy
java Main
Przykładowy wynik końcowy z dokładnością do 5-ciu cyfr dziesiętnych (w strumieniu wyjściowym nie powinny pojawiać się jakiekolwiek inne
elementy  np. wydruki kontrolne) :
Powierzchnia odpadu : 31.39873
© 2013 dr inż. Jerzy R. Jaworowski, Instytut Teleinformatyki, Politechnika Krakowska im. Tadeusza KoÅ›ciuszki
Wymagania :
" Klasa implementująca problem winna zostać zdefiniowana w pliku Knapsack.java
" Klasa implementująca mechanizm program główny (metoda main) winny być zdefiniowane w pliku Main.java
" W pliku README.pdf winien być zawarty szczegółowy opis organizacji struktur danych oraz szczegółowy opis zastosowanego
mechanizmu poszukiwania właściwego rozwiązania.
" Proces poszukiwania rozwiązania winien się kończyć w czasie nie przekraczającym 3 min (orientacyjnie dla typowego notebooka). Po
przekroczeniu limitu czasu zadanie będzie przerywane, i traktowane podobnie jak w sytuacji błędów wykonania (czyli nie podlega
dalszej ocenie).
Sposób oceny :
" 1 pkt  Kompilacja : każdy z plików winien być kompilowany bez jakichkolwiek błędów lub ostrzeżeń (w sposób omówiony wyżej)
" 1 pkt  Wykonanie : program powinien wykonywać się bez jakichkolwiek błędów i ostrzeżeń (dla pliku danych wejściowych zgodnych
z wyżej zamieszczoną specyfikacją) z wykorzystaniem omówionych wyżej parametrów linii komend
" 2 pkt  README : plik README.pdf dokumentuje w sposób kompletny i właściwy struktury danych, oraz opis przyjętej koncepcji
algorytmu minimalizacji strat (odpadów).
" 1 pkt  Komentarze wewnętrzne : czy program jest skomentowany w sposób zapewniający zrozumienie jego działania, oraz
wyjaśniający warunki, które muszą zachodzić przed i po wykonaniu każdej z funkcji.
" 1 pkt  Styl kodowania : czy funkcji i zmienne posiadają samo-wyjaśniające nazwy ? Czy podział na funkcje ułatwia czytelność i
zrozumiałość kodu ? Czy funkcje eliminują (redukują) powtarzające się bloki kodu ? Czy wcięcia, odstępy, wykorzystanie nawiasów itp.
(formatowanie kodu) są spójne i sensowne ?
" 4 pkt  Poprawność algorytmu : czy algorytm został zaimplementowany poprawnie , przy czym za samą funkcję pack() można
otrzymać dwa punkty, a za wybór i poprawność implementacji wykorzystanej metody optymalizacji (a więc i np. złożoność czasową)
kolejne dwa..
© 2013 dr inż. Jerzy R. Jaworowski, Instytut Teleinformatyki, Politechnika Krakowska im. Tadeusza KoÅ›ciuszki


Wyszukiwarka

Podobne podstrony:
Java praca domowa
Java praca domowa
Java praca domowa
Java praca domowa
Java praca domowa
Java praca domowa
Java praca domowa
Java praca domowa
Java praca domowa
Praca domowa 4 OgarnijTemat com
praca domowa cw 3
praca domowa 1
Praca domowa 1(1) OgarnijTemat com
Praca domowa
MIB Mat Finansowa 2016 zadania praca domowa nr 2
RozwiÄ…zana praca domowa 13
praca domowa ćw 1

więcej podobnych podstron