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);

}

}

Package package1Tatar

public class Thread1 implements Runnable{

public void run() {

Klasa1Tatar.print(”Thread1”);

}

}

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

0x08 graphic

Ć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

0x08 graphic