import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;

/*
 * kod ukazujący działanie na zmiennych
 */
class Metody {
	static void zmienWartosc(int wartosc) {
		++wartosc;
		System.out.println("W zmien Wartosc "+ wartosc);
	}
	
	static void zmienWartosc(StringBuilder wartosc) {
		wartosc= wartosc.append(" zmiana");
		System.out.println("W zmien Wartosc "+ wartosc);
	}
	
	static void zmienWartosc(int[] wartosc) {
		for(int i=0;i<wartosc.length;i++)
			wartosc[i] = 8;
	}
	static void zmienWartosc(AtomicInteger wartosc) {
		wartosc.set(wartosc.get()+1);
		System.out.println("W zmien Wartosc "+ wartosc.get());
	}
	
	/**
	 * funkcja obliczajaca roznice
	 * @param odjemnik drugi argument odejmowania
	 * @param odejmna pierwszy argument odejmowania
	 * 
	 * @return roznica bedaca wynikiem odejmowania
	 */
	static double odejmij (double odjemna, double odjemnik) {
		double roznica;
		roznica = odjemna - odjemnik;
		return roznica;
	}
	
	static int dodaj(int skladnik, int skladnik2) {
		return skladnik+skladnik2;
	}

	/**
	 * funkcja losujaca numery indeksow sposrod studentow drugiego roku
	 * @return wartosc z zakresu (104 000 - 104 500)
	 */
	static int wylosuj() {
		Random generator = new Random();
		return generator.nextInt(500)+104000;
	}
	
	public static void main(String[] args){		
		// typ prosty - tu tylko przez wartosc!
		int liczba = 5;
		System.out.println("Wartosc liczba "+ liczba);
		zmienWartosc(liczba);
		System.out.println("Po Zmien Wartosc liczba "+ liczba);

		//typ obiektowy - tu mozna przez referencje
		StringBuilder napis = new StringBuilder("wartosc");
		System.out.println("Wartosc napis "+ napis);
		zmienWartosc(napis);
		System.out.println("Po Zmien Wartosc napis "+ napis);
		
		// a jakbym tak chcial inta?
		AtomicInteger  atomicInteger = new AtomicInteger (5);
		System.out.println("Wartosc atomicInteger "+ atomicInteger.get());
		zmienWartosc(atomicInteger);
		System.out.println("Po Zmien Wartosc atomicInteger "+ atomicInteger.get());
		
		int[] tablicaLiczb = new int[8];
		for (int i=0;i<8;i++)
			tablicaLiczb[i]=i;
		for (int i=0;i<8;i++)	System.out.println("Wartosc elemetu o indeksie "+i+" to "+ tablicaLiczb[i]);
		zmienWartosc(tablicaLiczb);
		System.out.println("\nPo zmianach:\n");
		for (int i=0;i<8;i++)	System.out.println("Wartosc elemetu o indeksie "+i+" to "+ tablicaLiczb[i]);
		
		
		double odjemna = 8, odjemnik = 5, wynik;
		wynik=odejmij(odjemna,odjemnik);
		System.out.println("wynik odejmowania " + wynik);
		
		
		System.out.println("Hazet Lotto, ocene 2 otrzymuja dzis ");
		for(int i = 0; i<5;i++) 
			System.out.println("Osoba o numerze indeksu: "+wylosuj());
		
		
		
	}
}
