/Projekt-Pastwisko

Simple project for course Scripting Languages (Python + Batch)

Primary LanguageJava

Projekt-Pastwisko

Simple project for course Scripting Languages (Python + Batch)

Projekt powstał na bazie zadania 4 z konkursu “Algorytmion 2013”. Oto treść tego zadania: 

Rolnik ma pastwisko w kształcie koła o promieniu 1 m. Na okręgu tego koła przywiązuje kozę, której łańcuch ma długość r<1 m. Napisz program wyznaczający długość łańcucha, aby koza miała możliwość wygryzienia trawy z połowy pastwiska. Zadanie to można rozwiązać eksperymentalnie: przy ustalonym promieniu r, wylosować dostatecznie dużo (przykładowo n) punktów należących do tego pastwiska. Następnie zliczyć ile spośród tych punktów trafia w „wygryziony” obszar (przykładowo m). Ilość punktów trafionych w ten obszar do ilości wszystkich punktów ma się tak, jak pole tego obszaru do pola całego obszaru. Z tej zależności da się znaleźć (pośrednio lub w przybliżony sposób) wartość r. 

Po konsultacji z autorem zadania okazało się, że wersja zadania dostępna na stronie konkursu jest błędna i w treści nie powinno być warunku ograniczającego długość łańcucha kozy do maksymalnie 1 m, ponieważ ten warunek sprawia, że zadanie jest niemożliwe do rozwiązania.  

Sposób rozwiązania problemu 

Program rozwiązuje zadany problem metodą eksperymentalną, poprzez losowanie punktów z terenu pola rolnika i sprawdzaniu, ile z tych punktów należy do pastwiska kozy, jeśli ta będzie miała łańcuch o długości 1m, później 1.01m, 1.02m, itd. aż do momentu, kiedy koza będzie w stanie zjeść trawę z połowy pola rolnika (kiedy 50% punktów z pola rolnika będzie należało do pastwiska kozy). 

Funkcjonalność:

  • program pobiera dane wejścowe, czyli liczbę punktów do losowania z plików tekstowych(batch)
  • losuje punkty, sprawdza czy należą do obszaru koła (python)
  • wykonuje obliczenia i na końcu zwraca wynik: na konsolę, do plików tekstowych oraz zapisuje je w tabeli w pliku .html (python)
  • wyświetla informacje o programie (batch)
  • wykonuje backup plików .html (batch)

SCREENSHOTY:

menu program backup strona

Program posiada też swoją wersję w języku Java w postaci aplikacji okienkowej.

Funkcjonalność wersji w języku Java:

  • program pobiera dane (liczbę punktów do wylosowania) od użytkownika
  • program sprawdza poprawność wprowadzonych danych
  • wykonuje obliczenia i na końcu zwraca wynik w okienku aplikacji
  • wyświetla informacje o programie

SCREENSHOTY:

java1 java2 java3 java4