Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 1 Wprowadzenie Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2
O Sobie Od 2014 r. związany jestem z firmą ALTCONNECT (Tarnów ul. Kochanowskiego 32B). Pracuję na stanowisku Programista Java. Wspólnie z kolegami z zespołu wykonaliśmy kilkanaście aplikacji dla polskich i zagranicznych klientów. Technologie i narzędzia, z którymi mam styczność na codzień w firmie: Java / Spring Framework / JPA / HIBERNATE (backend) HTML / CSS / ANGULAR JS (frontend) MySql GiT IntelliJ IDEA Kontakt Strona domowa tomaszgadek.com Email gadektomek@gmail.com (W temacie proszę wpisać: [NiSP]) Konsultacje Pokój C200e Warunki zaliczenia przedmiotu Kolokwium zaliczeniowe z przedmiotu, Zadania na laboratoriach, Obecność (Dopuszczalne 2 nieusprawiedliwione nieobecności). 1
Narzędzia wykorzystywane na zajęciach Java Obiektowy język programowania stworzony przez grupę roboczą pod kierunkiem Jamesa Goslinga z firmy Sun Microsystems. Java jest językiem tworzenia programów źródłowych kompilowanych do kodu bajtowego, czyli postaci wykonywanej przez maszynę wirtualną. Język cechuje się silnym typowaniem. Spring Framework Spring DI Spring WEB MVC Jest to platforma, której głównym celem jest uproszczenie procesu tworzenia oprogramowania klasy enterprise w technologii Java/J2EE. Rdzeniem Springa jest kontener wstrzykiwania zależności, który zarządza komponentami i ich zależnościami. IntelliJ IDEA Komercyjne zintegrowane środowisko programistyczne (IDE) dla Javy firmy JetBrains. 2
JSON JavaScript Object Notation, lekki format wymiany danych komputerowych. JSON jest formatem tekstowym, bazującym na podzbiorze języka JavaScript. Postman Jest to wtyczka dla przeglądarki Google Chrome przy pomocy, której można testować żądania HTTP. Maven Narzędzie automatyzujące budowę oprogramowania na platformę Java. Poszczególne funkcje Mavena realizowane są poprzez wtyczki, które są automatycznie pobierane przy ich pierwszym wykorzystaniu. Plik określający sposób budowy aplikacji nosi nazwę POM (ang. Project Object Model). Maven jest rozprowadzany na licencji Apache License. 3
Bitbucket Internetowa usługa hostingowa należąca do Atlassian, używana do tworzenia kodu źródłowego i projektów programistycznych wykorzystujących system kontroli wersji Git. Bitbucket oferuje zarówno plany komercyjne, jak i darmowe konta. Oferuje darmowe konta z nieograniczoną liczbą prywatnych repozytoriów (które mogą mieć maksymalnie pięciu użytkowników). Bitbucket integruje się z innymi oprogramowaniem Atlassian, takimi jak Jira, HipChat, Confluence i Bamboo. Git Jest jednym ze znanych i szeroko stosowanych systemów kontroli wersji do tworzenia oprogramowania. Jest to darmowy, na licencji open source, rozproszony system przeznaczony do szybkiej i wydajnej obsługi dowolnych projektów, zarówno tych najmniejszych, jak i tych bardzo dużych i skomplikowanych. Do przechowywania kodów źródłowych projektów i kontroli wersji wykorzystywane jest repozytorium Git. Zadania Wyszukaj MIN (LN1, LN3) Proszę zaimplementować funkcję do wyszukiwania minimum z dowolnie długiego ciągu liczb umieszczonych w stałej typu String rozdzielonych,. Metoda powinna zwracać wyjątek EmptyData- Exception w przypadku gdy parametr wejściowy digits jest pusty. Bardzo proszę nie zmieniać nagłówka metody zwracającej minimum!. class EmptyDataException extends Exception { class Main { // rzuca wyjatek EmptyDataException gdy parametr wejsciowy jest pusty 4
private int getminfromdigits(final String digits) throws EmptyDataException { // prosze zaimplementowac algorytm wyszukiwania min z podanego ciagu cyfr // naglowek metody nie moze ulec zmianie! public static void main(string[] args) { final String listofdigits = "1,2,3,4,5,5,6,10,5,4,2,1"; final Main main = new Main(); try { int minfromdigits = main.getminfromdigits(listofdigits); System.out.printf("min(%s) = %d \n", listofdigits, minfromdigits); catch(emptydataexception e) { System.out.println("Lista nie moze byc pusta!"); Wylicz średnią arytmetyczną (LN5) Proszę zaimplementować funkcję do wyliczania średniej arytmetycznej z dowolnie długiego ciągu liczb umieszczonych w stałej typu String rozdzielonych,. Metoda powinna zwracać wyjątek EmptyDataException w przypadku gdy parametr wejściowy digits jest pusty. Bardzo proszę nie zmieniać nagłówka metody wyliczającej średnią arytmetyczną! class EmptyDataException extends Exception { class Main { // rzuca wyjatek EmptyDataException gdy parametr wejsciowy jest pusty private double getaverage(final String digits) throws EmptyDataException { // prosze zaimplementowac algorytm do wyliczania sredniej // arytmetycznej z podanego ciagu liczb // naglowek metody nie moze ulec zmianie! public static void main(string[] args) { final String listofdigits = "1.0,2.0,3.5,4.5,5.0,5.5,6.0,10.1,5.2,4.3,2.1,1.1"; final Main main = new Main(); try { double average = main.getaverage(listofdigits); System.out.printf("avg(%s) = %.2f \n", listofdigits, average); catch(emptydataexception e) { System.out.println("Lista nie moze byc pusta!"); 5
Wyszukaj unikalne (LN2, LN4) Proszę zaimplementować funkcję do wyszukiwania unikalnych wartości (liczb) z dowolnie długiego ciągu liczb umieszczonych w stałej typu String rozdzielonych,. Metoda powinna zwracać wyjątek EmptyDataException w przypadku gdy parametr wejściowy digits jest pusty. Bardzo proszę nie zmieniać nagłówka metody wyszukującej unikalne wartości! class EmptyDataException extends Exception { class Main { // rzuca wyjatek EmptyDataException gdy parametr wejsciowy jest pusty private String distinct(final String digits) throws EmptyDataException { // prosze dokonczyc implemenntacje metody, // ktora zwroci unikalne liczby z ciagu wejsciowego // naglowek metody nie moze ulec zmianie! public static void main(string[] args) { final String listofdigits = "1,1,2,3,3,4,5,3"; final Main main = new Main(); try { String distinctfromdigits = main.distinct(listofdigits); System.out.printf("distinct(%s) = %s \n", listofdigits, distinctfromdigits); catch(emptydataexception e) { System.out.println("Lista nie moze byc pusta!"); 6