Na dysku C tworzymy katalog grupa_x gdzie x jest nr grupy stude

Transkrypt

Na dysku C tworzymy katalog grupa_x gdzie x jest nr grupy stude
INFORMATYKA
Laboratorium 1
Pierwszy program
Na dysku C w katalogu Laboratorium wkatalog grupa_x gdzie x jest nr grupy studenta, za pomocą notatnika
tworzymy plik program.java
Edytując go w notatniku wpisujemy treść kodu programu:
Przykład
class program
{
public static void main(String args[])
{
System.out.println("Hello World");
}
}
Zapisujemy plik (Ctrl+S) program.java i przechodzimy do wiersza poleceń systemu (Start->Uruchom->cmd).
Kompilacja
Plik źródłowy zostanie skompilowany do postaci byte-code (jest to kod, który zostanie wykonany w wirtualnej maszynie
Javy JVM) poleceniem: javac program.java zostanie utworzony plik program.class zawierający kod bajtowy, który
uruchamiamy za pomocą interpretera java, poleceniem: java program
W przypadku popełnienia błędu zostaniemy poinformowani przez kompilator o nieprawidłowościach w kodzie programu.
Główna klasa programu zawiera metodę main. Jest to metoda publiczna (public), statyczna (static). Metoda main
posiada argument args będący tablicą elementów typu String. Argument args służy do odczytu parametrów wywołania
programu podanych w linii poleceń systemu operacyjnego. Wydruk na konsoli realizujemy za pomocą metod print i
println pola out typu PrintStream z klasy standardowej System.
Kompilacja i uruchomienie programu za pomocą środowiska NetBeans
Uruchamiamy środowisko NetBeans
Wybieramy z menu programu opcję New Project
w polu nazwy (Project Name) projektu wpisujemy program
Należy sprawdzić czy zaznaczone są opcje Set as Main Project oraz Create Main Class.
Dodatkowo w polu obok zaznaczonej opcji Create Main Class można zmienić
program.program
W kolejnym kroku uzupełniamy kod metody main.
Projekt uruchamiamy za pomocą przycisku
lub klawiszem F6.
Efekt działania programu można zaobserwować w oknie Output
nazwę
klasy
głównej
na
Komentarze
W języku Java mamy do dyspozycji komentarze:
Jednolinijkowe
// od tego miejsca do końca linii
Blokowe
/* od tego miejsca
To jest komentarz
do tego miejsca */
Wewnętrzne typy danych
Język Java udostępnia programiście szereg standardowych typów wartości. Typy te nazywane są 'intrinsic types', co
przetłumaczyliśmy jako "typy wewnętrzne". W poniższej tabeli zawarto opis wewnętrznych typów danych, zawierający
dla każdego typu jego nazwę oraz wielkość pamięci zajmowanej przez poszczególne wartości typu.
Rodzaj danych
Typ
Rozmiar
danych (w bitach)
logiczne
boolean
znakowe
całkowite
zmiennoprzecinkowe
Zakres danych
8
true lub false
char
16
znaki Unicode/ 0 do 65535
byte
8
-128 do 127
short
16
-32768 do +32767
int
32
-2147483648 do +2147483647
long
64
-9223372036854775808L do +9223372036854775807L
float
32
1 .40129846432481707e-45F to 3.40282346638528860e+38F
double
64
4.94065645841246544e-324D do 1.79769313486231570e+308D
Zmienne typu char są reprezentowane na 16 bitach, ponieważ możemy jako wartość zmiennej typu char użyć
dowolnego znaku ze zbioru znaków Unicode.
Inicjalizacja zmiennych
Przykład
class program
{public static void main(String strargs[])
{
int a; // błąd zmienna a powinna mieć ustaloną wartość int a=10;
System.out.println(a);
}
}
Przykład
class program
{
public static void main(String args[])
{
boolean a=true;
System.out.print("Zmienna a "+a+"\n");
byte b=127;
System.out.print("Zmienna b="+b+"\n");
char c='A';
System.out.print("Zmienna c="+c+"\n");
short d=-32768;
System.out.print("Zmienna d="+d+"\n");
int e=-2147483648;
System.out.print("Zmienna e="+e+"\n");
long f=9223372036854775807L;
System.out.print("Zmienna f="+f+"\n");
float g=3.40282346638528860e+38f;
System.out.print("Zmienna g="+g+"\n");
double h=1.79769313486231570e+308D;
System.out.print("Zmienna h="+h+"\n");
}
}
Przykład
class program
{
public static void main(String args[])
{
char znak1 = 'A';
char znak2 = '\u0321'; // znak ł (Unicode)
char znak3 = 'ó';
char znak4 = '\u0009'; // znak tabulacji
System.out.println(znak1);
System.out.println(znak2);
System.out.println(znak3);
System.out.println(znak4);
}
}
Przykład
class program
Znak
Ą
ą
Ć
ć
Ę
ę
Ł
ł
Ń
ń
Ó
ó
Ś
ś
Ź
ź
Ż
ż
Kod
dziesiętny
Ą
ą
Ć
ć
Ę
ę
Ł
ł
Ń
ń
Ó
ó
Ś
ś
Ź
ź
&#379
ż
{
public static void main(String args[])
{
byte i = 22;
// wartość dziesiętna
short j = 011;
// wartość ósemkowa
int
k = 0xFF; // wartość szesnastkowa
long l = 1024L; // wartość typu long
System.out.println(i);
System.out.println(j);
System.out.println(k);
System.out.println(l);
}
}
Literały
Przykład
class program
{
public static void main(String strargs[])
{
System.out.println("nowa \n linia");
System.out.println("tab \t ulacja");
System.out.println("bak\bspace");
System.out.println("\'apostrof\'");
System.out.println("\\ backslash");
}
}
Opis
New line (znak nowej linii)
Horizontal tab (tabulacja pionowa)
Backspace
Carriage return (powrót karetki)
From feed (znak nowej strony)
Single quote (apostrof)
Double quote (cudzysłów)
Backslash (lewy ukośnik)
Rzutowanie typów
Przykład
class program
{
public static void main(String strargs[])
{
int i=10;
byte b=20;
b=i;
błąd java nie posiada automatycznego rzutowania typów w dół
b=(byte)i;
long l=i;
tu jest dobrze
}
}
Operatory
W języku Java mamy do dyspozycji następujący zestaw operatorów:
Arytmetyczne
+ - * / %
Przykład
class program
{
public static void main(String args[])
{
int a=10;
int b=20;
int c;
c=a+b;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("wynik operacji a+b="+c);
}
}
Zadanie Wykonać przykłady dla pozostałych operatorów - * / %
Zwiększania i zmniejszania (inkrementacji i dekrementacji):
++ --
Przykład
class program
{
public static void main(String strargs[])
{
int a=0;
System.out.println(a++);
System.out.println(++a);
}
}
Przypisania:
= += -= *= /= %= <<= >>= >>>= &= |= ^=
Literał
\n
\t
\b
\r
\f
\'
\"
\\
Przykład
class program
{
public static void main(String strargs[])
{
int a=1;
a+=10;
System.out.println(a);
}
}
Zadanie Wykonać przykłady dla pozostałych operatorów - -= *= /= %= <<= >>= >>>=
Bitowe:
& | ^
Inne:
. () []
Uwaga:
operator
operator
operator
~ << >> >>>
new ?:
<< uzupełnia młodsze bity zerem;
>> uzupełnia starsze bity bitem znaku;
>>> uzupełnia starsze bity zerem;
Bloki
Zmienne deklarowane wewnątrz bloku są widoczne tylko dla tego bloku
Przykład
class program
{
public static void main(String strargs[])
{
{
int a=10;
}
int a=20;
System.out.println(a);
}
}
Wybrane operacje matematyczne
Przykład
class program
{
public static void main(String strargs[])
{
System.out.println("Pierwiastek z 4 to "+Math.sqrt(4));
System.out.println("4 do kwadratu z 4 to "+Math.pow(4,2));
System.out.println("Wartośc bezwzględna z -3.4 to "+Math.abs(-3.4f));
System.out.println("Cosinus 2Pi to "+Math.cos(Math.PI));
System.out.println("Sinus 2Pi to "+Math.sin(Math.PI));
System.out.println("Wylosowana wartośc to "+Math.random());
}
}
Zadanie Rozwiązać układ równań x2-2x-8=0
Instrukcja sterująca if
Instrukcja if służy do warunkowego wykonania innej instrukcji. Najpierw obliczane jest wyrażenie-logiczne i jeśli jego
wartością jest true, to wykonywana jest instrukcja w przeciwnym razie wykonywana jest następna instrukcja po
instrukcji if.
if (wyrażenie-logiczne)
instrukcja
Operatory relacji używane w instrukcjach sterujących i pętlach:
< <= > >= == !=
Operatory Logiczne używane w instrukcjach sterujących i pętlach:
&& || !
Instrukcja if-else
if (wyrażenie-logiczne)
instrukcja1
else
instrukcja2
Instrukcja if-else służy do warunkowego wykonania jednej z dwu instrukcji. Najpierw obliczane jest wyrażenie-logiczne i
jeśli jego wartością jest true, to wykonywana jest instrukcja1, a jeśli false to wykonywana jest instrukcja2.
Przykład
class program
{
public static void main(String strargs[])
{
int a=0;
if(a>=10)
{System.out.println("Prawda");}
else
{System.out.println("Fałsz");}
}
}
Zadanie Dla 3 ustalonych różnych wartości zmiennych a.b.c wyznacz liczbę największą
Zadanie Rozwiązać układ równań postaci ax2-bx-c=0 dla zadanych parametrów a,b,c. Przeprowadzić dyskusję wyników w
zależności od wartości współczynnika delta. Rozwiązanie podać tylko dla liczb rzeczywistych, w pozostałych
przypadkach wyświetlić odpowiednie komunikaty.
Instrukcja switch
Instrukcja switch służy do warunkowego wykonania jednej z zestawu instrukcji w zależności od wartości wyliczonego
wyrażenia nazywanego selektorem, który musi być wyrażeniem całkowitym. Obliczona wartość poszukiwana jest kolejno
wśród wyrażeń całkowitych stałych podanych po słowie case i jeśli zostanie odnaleziona, to wykonywana jest
odpowiednia instrukcja podana po dwukropku. W przypadku nieodnalezienia odpowiedniego przypadku wykonywana
jest instrukcja z etykietą default lub następna instrukcja po instrukcji switch, gdy opcjonalna klauzula default nie
wystąpiła.
switch (selektor) {
case wartość1: instrukcja1
case wartość2: instrukcja2
...
case wartośćN: instrukcjaN
default: instrukcjaDomyślna
}
Wykonanie instrukcji po etykiecie case lub default nie kończy wykonania instrukcji switch ani nie powoduje pominięcia
instrukcji, które po niej następują, a gdy taka konieczność zachodzi należy zastosować instrukcję break.
Przykład
class program
{
public static void main(String strargs[])
{
int a=15;
switch (a)
{
case 15:{System.out.println("opcja pierwsza");} break;
case 25:{System.out.println("opcja druga");} break;
default:{System.out.println("brak opcji");}
}
}
}
Instrukcja while
Pętla while powoduje cykliczne wykonywanie instrukcji dopóki spełniony jest pewien warunek. Najpierw obliczane jest
wyrażenie-logiczne i jeśli jego wartością jest true, to wykonywanie instrukcji (która może być blokiem) powtarzane jest
tak
długo,
aż
kolejne
obliczenie
wartości
wyrażenia-logicznego
da
wartość
false.
while (wyrażenie-logiczne)
instrukcja
Uwaga: jeśli wyrażenie-logiczne przyjmie wartość false już przy pierwszym obliczeniu, to instrukcja pętli while nie
wykona się ani razu.
Instrukcja do-while
Pętla do-while podobnie jak pętla while powoduje cykliczne wykonywanie instrukcji dopóki spełniony jest pewien
warunek. Najpierw wykonywana jest instrukcja, a następnie obliczne jest wyrażenie-logiczne. Jeśli ma ono wartość true,
cały proces powtarzany jest ponownie. Wyjście z pętli następuje, gdy wyrażenie-logiczne przyjmie wartość false.
do
instrukcja
while (wyrażenie-logiczne);
Uwaga: instrukcja w pętli do-while wykonana jest przynajmniej raz.
Instrukcja for
Instrukcja for służy do cyklicznego wykonania pewnej instrukcji określoną ilość razy. Efekt ten uzyskuje się poprzez
zastosowanie zmiennej sterującej i odpowiednią konstrukcję wyrażeń z jej użyciem w nagłówku pętli. Najpierw obliczane
jest wyrażenie-inicjujące. Następnie w pętli wykonywane są kolejno czynności: obliczane jest wyrażenie-logiczne i jeśli
ma wartość true, to wykonywana jest instrukcja, po czym wyliczane jest wyrażenie krok.
for (wyrażenie-inicjujące; wyrażenie-logiczne; krok)
instrukcja
Uwaga 1: wszystkie wyrażenia w nagłówku pętli tj. w obrębie nawiasów okrągłych po słowie for, są opcjonalne.
Uwaga 2: wyrażenia w nagłówku pętli mogą mieć postać list wyrażeń rozdzielonych przecinkiem.
Przykład
class program
{
public static void main(String strargs[])
{
int licznik=0; int zakres=10;
System.out.println("pętla while");
while (licznik<zakres) {System.out.println(licznik);licznik++;}
licznik=0;
System.out.println("pętla do-while");
do
{System.out.println(licznik); licznik++;}
while (licznik<zakres);
System.out.println("pętla for");
for (licznik=0;licznik<zakres;licznik++)
{System.out.println(licznik);}
}
}
Zadanie Za pomocą pętli while, do-while i for zrealizować następujące figury dla ustalonego parametru n.
np dla n=4
****
****
****
****
*
**
***
****
*
**
***
****
*
***
*****
*******
Zadanie Obliczyć pole powierzchni pola krzywej y=x2 ograniczoną prostą y=4. Wynik podać dla iteracji odpowiednio z krokiem 0.5,
0.1, 0.01
Zadanie Obliczyć pole powierzchni pola krzywej y=x2 ograniczoną prostą y=2x. Wynik podać dla iteracji odpowiednio z krokiem
0.5, 0.1, 0.01

Podobne dokumenty