Konwersja typów
Stałe oznaczane są słowem kluczowym final. Do stałej wartość można przypisać tylko raz. Dobrą konwencją jest nazywanie stałych wielkimi literami (aczkolwiek nie jest to wymagane). Jeśli definicja stałej jest na zewnątrz metody main to również inne metody mogą z niej korzystać.
Klasa ta zawiera zestaw przydatnych funkcji i stałych matematycznych: abs(double, float, int, long a) zwraca moduł podanej jako argument liczby. double ceil(double a) tzw. sufit. Zwraca najmniejszą liczbę całkowita nie mniejszą od podanej jako argument. double floor(double a) zwraca największą liczbę całkowitą nie większa od podanej jako argument. double sin(double a) double cos(double a) funkcje trygonometryczne (kąt ma być w radianach). double tan(double a) double pow(double a, double b) zwraca a do potęgi b double sqrt(double a) zwraca pierwiastek kwadratowy z podanej liczby. double log(double a) zwraca logarytm naturalny podanej jako argument liczby. double log10(double a) zwraca logarytm dziesiętny podanej jako argument liczby. long, int round(double, float a) zaokrągla podaną liczbę rzeczywistą do najbliższej liczby całkowitej. double toradians(double a) konwertuje podany kąt w stopnaich na radiany.
char byte short int long float double Java dokona automatycznej konwersji typów zgodnie z przedstawionym schematem wtedy kiedy będzie to konieczne. Konwersje nie powodujące strat danych oznaczono czarnymi strzałkami. Konwersje, które mogą spowodować straty w danych oznaczono czerwonymi strzałkami.
Jeśli jakimś operatorem dwuargumentowym połączymy ze sobą dwie wartości (np. a + b, gdzie a to liczba całkowita, natomiast b to liczba rzeczywista) zostaną one przekonwertowane na wspólny typ przed wykonaniem działania zgodnie z zasadą: 1. Jeśli jakiś z operandów jest typu double to drugi również zostanie przekonwertowany na typ double. 2. W przeciwnym przypadku, jeśli któryś z operandów jest typu float, drugi również zostanie przekonwertowany na typ float. 3. W przeciwnym przypadku, jeśli któryś z operandów jest typu long, drugi również zostanie przekonwertowany na typ long. 4. W przeciwnym razie oba operandy zostaną przekonwertowane na typ int.
Rzutowanie proces wykonania jawnej konwersji, przy których istnieje ryzyko utraty informacji. Aby wykonać rzutowanie, należy przed nazwą zmiennej postawić nazwę typu docelowego w nawiasach okrągłych. Przykład: double a = 8.84; int b = (int)a; //b = 8 Rzutowanie liczby zmiennoprzecinkowej na całkowitą powoduje odcięcie części ułamkowej. Nie można wykonać rzutowania między wartościami logicznymi i liczbowymi. Zamiast tego należy wykorzystać operator warunkowy: boolean c = true; int d = c? 1 : 0;
char charat(int index) zwraca znak znajdujący się pod podanym indeksem. int compareto(string anotherstring) porównuje dwa łańcuchy leksykograficznie. Zwraca {<0;0;>0} w zależności od tego czy jeden łańcuch jest wcześniej w porządku/dalej w porządku leksykograficznym lub są one równe. boolean endswith(string suffix) sprawdza czy łańcuch znaków kończy się na określony suffix. int indexof(char ch, int fromindex) Zwraca indeks pierwszego pojawienia się znaku ch w danym łańcuchu, rozpoczynając wyszukiwanie od fromindex. int indexof(string str) Zwraca indeks pierwszego pojawienia się danego podciągu. int length() Zwraca długość łańcucha znaków. String replace(char oldchar, char newchar) - Zwraca nowy ciąg znaków, gdzie wszystkie znaki odlchar zastąpione są znakiem newchar. String substring(int beginindex, int endindex) Zwraca nowy podciąg znaków, zaczynający się od pozycji beginindex, a kończący na endindex. String tolowercase() - Zamienia wszystkie wielkie litery w ciągu na małe. String touppercase() Zamienia wszystkie małe litery w ciągu na wielkie. String valueof( char, char[], double, float, int, long, object) Zamienia argument na ciąg znaków.
Proszę sprawdzić co robi poniższy kod: System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2); int dlugosc = cde.length(); System.out.println(c); System.out.println(d); System.out.println(dlugosc);
boolean nextboolean() zwraca wartość true lub false. double nextdouble() losuje liczbę typu double z zakresu [0.0; 1.0] float nextfloat() losuję liczbę rzeczywistą z zakresu [0.0; 0.1] i zwraca ją jako typ float int nextint() - losuje liczbę całkowitą z zakresu jaki może przyjmować typ int. int nextint(int n) uwaga na zakres: [0;n) long nextlong() - losuje liczbę całkowitą z zakresu jaki może przyjmować typ long. void setseed(long seed) ustaw początkową wartość dla generatora liczb losowych.
// Stworzenie obiektu klasy Random, który posłuży do losowania liczb Random r = new Random(); // Losowanie liczby z zakresu [0,10] i jej przypisanie do zmiennej a. int a = r.nextint(11); // deklaracja i inicjalizacja zmiennej // Losowanie liczby z zakresu [-10,22] i wyświetlenie jej na konsolę. System.out.println( r.nextint(33)-10 ); /* losujemy liczby z przedziału [-10,22] */
1. Napisz program umożliwiający wyciągniecie pierwiastka n-tego stopnia z podanej przez użytkownika liczby. 2. Napisz program wyliczający sinus, cosinus, tangens i cotangens dla zadanego przez użytkownika kąta. Wprowadź ograniczenie, że kąt może być z zakresu od 0 do 360 stopni. 3. Napisz program wyliczający średnią geometryczną dla liczb podanych przez użytkownika (aż do momentu podania liczby 0). 4. Napisz program wyliczający średnią harmoniczną dla liczb podanych przez użytkownika (aż do momentu podania liczby 0). Każdy program ma posiadać walidację strumienia wejściowego podanego przez użytkownika!
5. Napisz program wyliczający logarytm (z dowolnej liczby) o podstawie z zakresu [2, 10]. 6. Jaki będzie wynik działania poniższego kodu i dlaczego? 7. Napisz program wyliczający pole i obwód koła o zadanym przez użytkownika promieniu. Skorzystaj ze stałej zadeklarowanej w klasie Math. Każdy program ma posiadać walidację strumienia wejściowego podanego przez użytkownika!
8. Jako, że zbliżają się święta narysuj choinkę na ekranie. Choinka ma mieć zmienną wysokość (użytkownik podaje ją na wejściu). 9. Napisz program zliczający liczbę słów podanych przez użytkownika na wejściu. 10. Program kontener. Użytkownik podaje różne dane na wejściu (char, string, int, float, double także ujemne wartości), a program dopisuje je do napisu. Po podaniu wartości 0 wypisuje cały ciąg na ekran.
1. Użytkownik podaje dwie liczby, program losuje 10 liczb z przedziału podanego przez użytkownika 2. Program zgadnij moją liczbę. Program losuje liczbę z zakresu 1 100, a naszym zadaniem jest zgadnąć tą liczbę na podstawie za dużo, za mało. Po zgadnięciu program wyświetla liczbę prób. 3. A teraz odwrotnie: człowiek wymyśla liczbę, program ma ją znaleźć.