SPRAWOZDANIE 2 (labolatoria 3 i 4)
Tatar gr. 22_1
Ćwiczenie 1:
1)Kod programu:
Klasa1:
package package1Tatar;
public class Klasa1Tatar {
public static void main(String[] args) {
Thread1 t1=new Thread1();
Thread2 t2=new Thread2();
(new Thread(t1)).start();
(new Thread(t2)).start();
}
public static synchronized void print (String text){
System.out.println(text);
}
}
Klasa2:
Package package1Tatar
public class Thread1 implements Runnable{
public void run() {
Klasa1Tatar.print(”Thread1”);
}
}
Klasa3:
Package package1Tatar;
public class Thread2 implements Runnable{
public void run() {
Klasa1Tatar.print(”Thread2”);
}
}
2) Opis działania i użytych funkcji:
W programie tworzymy najpierw 2 osobne wątki, które uruchamiamy. Następnie używamy funkcji synchronized, aby wykonać wątki po kolei, najpeirw w całości 1 pierwszy, dopiero po nim cały drugi.
Thread1 t1=new Thread1(); - tutaj tworzymy instancję klasy Thread1
(new Thread(t1)).start(); - zostaje uruchomiona instancja klasy Thread1 czyli t1 jako wątek
public static synchronized void print (String text){
System.out.println(text); - funkcja synchronized zostaje użyta w
stosunku do funkcji println, co powoduje, że wątki wykonujące funkcję println muszą wykonywać ją po kolei, czyli najpierw wykonuje ją pierwszy wątek w kolejce, dopiero potem kolejny itd.
public class Thread1 implements Runnable{
public void run() {
Klasa1Tatar.print(”Thread1”); - klasa Thread1 implementuje interfejs Runnable, przez co może
zostać przekazana wątkowi do wykonania metody w niej zawartej.
Ćwiczenie 2:
1) Kod programu:
package package1Tatar;
public class Klasa2Tatar {
public static void main(String[] args) {
String s1= new String("String1");
String s2= new String("String2");
System.out.println(s1.length());
System.out.println(s1.concat(s2));
System.out.println(s1.toUpperCase());
System.out.println(s1.equals(s2));
System.out.println(s1.charAt(0));
System.out.println(s1.substring(2,5));
}
}
2) Opis działania i użytych funkcji:
Program ma wyświetlić teksty w różny sposób modyfikowane argumentami metody println:
length() - zwraca wartość długosci wyrazu
concat(String) - zwraca sumę dwóch wyrazów
toUpperCase() - zwraca wyraz zapisany wielkimi literami
equals(String) - sprawdza czy wyrazy są takie same
charAt(int) - wypisuje litere znajdującą się na okreslonej pozycji
substring(int,int) - zwraca wycięty fragment testu
Ćwiczenie 3:
1) Kod Programu:
package package1Tatar;
public class Klasa3Tatar {
public static void main(String[] args) {
double[] result = new double[4];
result[0]= Math.log(Math.PI);
result[1]= Math.round(5.827345);
result[2]= Math.random();
result[3]= Math.toRadians(180);
for (int i=0;i<4;i++)
System.out.println(result[i]);
double s=1/3f;
double wynik= Math.pow((2*(Math.log(521)/Math.log(10))+(7.5*Math.pow(10, 8))/(128*422)), s);
System.out.println(wynik);
System.out.println(s);
}
}
2)Opis działania i uzytych funkcji:
Program wypisuje efekty zastosowania różnych metod zawartych w bilbiotce math.
Math.log() - zwraca logarytm z liczby
Math.PI - zwraca wartosc liczby pi
Math.round - zwraca liczbę zaokrągloną do całości
Math.random - zwraca losową liczbę z przedziału <0;1)
Math.toRadians - zwraca liczbę przleiczoną na radiany