Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
po:lab1 [2018/01/24 23:05]
pszwed created
po:lab1 [2018/01/24 23:10]
pszwed
Line 1: Line 1:
-xyz+====== Programowanie obiektowe - Laboratorium 1 ====== 
 + 
 + 
 +===== 1.1 Kompilacja i uruchomienia Hello World ===== 
 + 
 +  * Za pomocą swojego ulubionego edytora utwórz plik HelloWorld.java 
 +  * zadeklaruj w nim klasę HelloWorld 
 +  * Wpisz wewnątrz funkcję  
 +<code java> 
 +public static void main(String[] args) 
 +</code> 
 +  * W funkcji wypisz: tekst ''Hello World'' --  użyj instrukcji ''System.out.println("tekst")'' 
 + 
 +Sprawdź czy działają polecenia: 
 +  * ''javac'' - kompilator 
 +  * ''java'' - maszyna wirtualna 
 + 
 +Skmpiluj program wywołując  
 +<code> 
 +javac HelloWorld.java 
 +</code> 
 + 
 +Co pojawiło się w wyniku kompilacji na dysku? 
 + 
 +Uruchom program wywołując 
 +<code> 
 +java HelloWorld 
 +</code> 
 + 
 +===== 1.2 Klasa należąca do pakietu ===== 
 + 
 +  * Utwórz podkatalog ''lab1'' 
 +  * Skopiuj tam plik HelloWorld.java 
 +  * Dodaj na początku pliku 
 +<code java> 
 +package lab1; 
 +</code> 
 +  * Skompiluj za pomocą ''javac'' 
 +  * Spróbuj uruchomić wywołując: 
 +    - ''java HelloWorld'' 
 +    - ''java lab1/HelloWorld''    
 +    - ''java lab1.HelloWorld''    
 +    - ''java -cp .. lab1.HelloWorld''    
 + 
 +Które rozwiązanie zadziałało i z jakiej lokalizacji względem pliku HelloWorld.class? 
 +===== 1.3 Proste wejście wyjście ===== 
 + 
 +**Wyjście** - wypróbuj warianty: 
 + 
 +<code java> 
 +System.out.print("..."
 +System.out.println("..."
 +System.out.printf("String %s int %d double %d",???
 +</code> 
 + 
 +**Wejście** - wczytywanie danych z konsoli: 
 + 
 +Zaimportuj klasy ''Scanner'' i ''Locale'' 
 + 
 +<code java> 
 + 
 +import java.util.Scanner; 
 +import java.util.Locale; 
 + 
 +public class Main { 
 + 
 +    public static void main(String[] args) { 
 +     ... 
 +    } 
 +}    
 + 
 +</code> 
 + 
 +Zobacz, jak można wczytać dane 
 + 
 +<code java> 
 +        Scanner scan = new Scanner(System.in); 
 +        String s = scan.next(); 
 +        int i = scan.nextInt(); 
 +        double d = scan.nextDouble(); 
 +        System.out.printf("Wczytano %s , %d, %f",s,i,d); 
 + 
 +</code> 
 + 
 +Wolisz stosować kropki, jako separator dziesiętny? Zmień locale na ''Locale.US'' 
 + 
 +<code java> 
 +        Scanner scan = new Scanner(System.in).useLocale(Locale.US); 
 +        String s = scan.next(); 
 +        int i = scan.nextInt(); 
 +        double d = scan.nextDouble(); 
 +        System.out.printf(Locale.US,"Wczytano %s , %d, %f",s,i,d); 
 +</code> 
 + 
 +''Locale.US'' to stała (zmienna statyczna) zdefiniowana wewnątrz klasy ''Locale''. Kropka ma takie znaczenie, jak operator zasięgu ''::'' w C++.  
 + 
 +===== Wybór IDE ===== 
 + 
 +Netbeans :-) vs. InteliJ  =) vs. Eclipse :-\ 
 + 
 +  * Osobiście najczęściej używam Netbeans (sprawnie obsługuje kodowanie w Java, C/C++, SQL i PHP, usługi sieciowe, JavaScript, itp.). Rozwijane przez Oracle, bezpłatne. 
 +  * InteliJ ma podobną efektywność i funkcjonalność. Praktycznie ten sam produkt jest oficjalnym narzędziem budowy aplikacji dla systemu Android. Dostępna wersja community lub pełna (dla studentów bezpłatna) 
 +  * Eclipse jest rozpowszechnione, także jako platforma do budowy samodzielnych aplikacji z GUI. Mam jednak wrażenie, że działa wolno i często "zatyka się", zwłaszcza przy uzupełnianiu kodu (//code completion//). Bezpłatne. 
 +===== 1.4 Tworzymy pierwszy projekt w IDE ===== 
 + 
 +  * Utwórz projekt Lab1 
 +  * Utwórz w nim klasę ''SimpleIO'' umieszczoną w pakiecie ''lab1''. W zależności od IDE - może być konieczne wpierw utworzenie pakietu, a potem klasy 
 +  * Przekopiuj tam kod  
 +  * Obserwuj edytor - program jest kompilowany w locie, błędy są zaznaczane, część rutynowych działań mających na celu ich wyeliminowanie można wykonać automatycznie (klikając lub używając kombinacji klawiszy) 
 +  * Uruchom (możesz wybrać Run lub Run file) 
 + 
 +===== 1.5 Druga funkcja main ? ===== 
 + 
 +Utwórz klasę o nazwie ''Fibo'' i utwórz w niej funkcję ''main()'' 
 + 
 +Zaimplementuj tam kod umieszczony w funkcji ''main()'', który  
 +  * wczytuje liczbę całkowitą ''n'' z zakresu 1 - 45 (dla liczb spoza zakresu wychodzi z funkcji ''main''
 +  * deklaruje tablicę (czytaj: deklaruje zmienną ''tab'' i tworzy tablicę na stercie) ''int[] tab = new int[n]'' 
 +  * wypełnia ją wartościami ciągu Fibbonaciego 
 +  * Wypisuje elementy tablicy 
 + 
 +Uruchom program za pomocą opcji Run File 
 + 
 + 
 +===== 1.6 Trzecia funkcja main? Problem 610A ===== 
 + 
 +  *Dodaj do projektu klasę ''Problem610A'' 
 +  *Przeczytaj opis zadania na stronie [[http://codeforces.com/problemset/problem/610/A]] 
 +  *Zaimplementuj... 
 +  *Sprawdź działanie dla opublikowanych przykładów 
 +  *Opcjonalnie: załóż konto i prześlij kod do wykonania w chmurze. Sprawdź, czy przeszedł wszystkie testy? 
 + 
 +===== 1.7 I jeszcze czwarta. Problem 115A ===== 
 + 
 +  *Dodaj do projektu klasę ''Problem115A'' 
 +  *Przeczytaj opis zadania na stronie [[http://codeforces.com/problemset/problem/115/A]] 
 +  * Podobnie, jak poprzednio zaimplementuj i przetestuj 
 + 
 + 
 + 
 + 
 + 
po/lab1.txt · Last modified: 2018/10/11 12:45 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0