java 1 id 226642 Nieznany

background image

Sprawozdanie 1 – Programowanie Obiektowe

------------------------

Automatyka i Robotyka

Gr. 1

1. Kod programu:

brylaSim.java

public

class

brylaSim {



public

static

void

main(String[]

args

) {

//Inicjacja obiektow

punktM

A

=

new

punktM();

punktM

B

=

new

punktM(100);

punktM[]

E

=

new

punktM[11];

for

(

int

i

=0;

i

<=10;

i

++)

//Petla generujaca tablice obiektów

{

E

[

i

]=

new

punktM(10+

i

);

};

A

.setMass(50);

//Komunikaty:

System.

out

.println(

"A to: "

+

A

+

". Masa A wynosi "

+

A

.getMass()+

", a

moment bezwladnosci "

+

A

.moment()+

". B to: "

+

B

+

". Masa B wynosi

"

+

B

.getMass()+

", a moment bezwladnosci "

+

B

.moment());

System.

out

.println(

"Moment bezwladnosci A wgledem osi rownoleglej

o 10 wynosi "

+

A

.momentSteiner(10));

for

(

int

i

=0;

i

<=10;

i

++)

{

System.

out

.println(

"Masa punktu E["

+

i

+

"] wynosi

"

+

E

[

i

].getMass()+

", glowny moment bezwlandosci wynosi "

+

E

[

i

].moment()+

", a

moment bezwladnosci wzgledem osi odległej o 5 wynosi
"

+

E

[

i

].momentSteiner(5)+

". Opis obiektu to: "

+

E

[

i

]);

};


}


}

punktM.java

public

class

punktM {

//pola

private

double

mass

;

//konstruktory

public

punktM (){

mass

=0;};

//konstruktor domyslny

public

punktM (

double

mass

)

//konstruktor zwykly - uniemozliwia nadanie

ujemnej masy

{

if

(

mass

>0)

{

this

.

mass

=

mass

;

}

else

{

this

.

mass

=0;

}

}

//akcesory

public

double

getMass(){

return

mass

;}

//akcesor czytajacy

public

void

setMass(

double

mass

)

//akcesor piszacy - uniemozliwia

nadanie ujemnej masy

{

background image

if

(

mass

>0)

{

this

.

mass

=

mass

;

}

else

{

this

.

mass

=0;

}

}

//metody

public

double

moment(){

return

0;}

//Oblicznie momentu bezwladnosci

public

double

momentSteiner(

float

a

){

return

moment()+

mass

*

a

*

a

;}

//Oblicznie momentu z tw. Steinera

public

String toString(){

return

"Punkt Materialny"

;}

//opis obiektu

}

2. Wynik działania programu:

A to: Punkt Materialny. Masa A wynosi 50.0, a moment bezwladnosci 0.0. B to: Punkt
Materialny. Masa B wynosi 100.0, a moment bezwladnosci 0.0
Moment bezwladnosci A wgledem osi rownoleglej o 10 wynosi 5000.0
Masa punktu E[0] wynosi 10.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 250.0. Opis obiektu to: Punkt Materialny
Masa punktu E[1] wynosi 11.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 275.0. Opis obiektu to: Punkt Materialny
Masa punktu E[2] wynosi 12.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 300.0. Opis obiektu to: Punkt Materialny
Masa punktu E[3] wynosi 13.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 325.0. Opis obiektu to: Punkt Materialny
Masa punktu E[4] wynosi 14.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 350.0. Opis obiektu to: Punkt Materialny
Masa punktu E[5] wynosi 15.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 375.0. Opis obiektu to: Punkt Materialny
Masa punktu E[6] wynosi 16.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 400.0. Opis obiektu to: Punkt Materialny
Masa punktu E[7] wynosi 17.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 425.0. Opis obiektu to: Punkt Materialny
Masa punktu E[8] wynosi 18.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 450.0. Opis obiektu to: Punkt Materialny
Masa punktu E[9] wynosi 19.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 475.0. Opis obiektu to: Punkt Materialny
Masa punktu E[10] wynosi 20.0, glowny moment bezwlandosci wynosi 0.0, a moment
bezwladnosci wzgledem osi odległej o 5 wynosi 500.0. Opis obiektu to: Punkt Materialny

Program wyświetla kolejno: opis obiektu, masę i główny moment bezwładności dla punktu A, a dalej robi to samo
dla punktu B. Później podaje wartość momentu bezwładności punktu A dla osi odległej o 50.
Następnie program pokazuje analogiczny opis dla tablicy E złożonej z 11 punktów materialnych, z których każdy
kolejny ma masę o 1 większą.

3. Odpowiedzi na pytania:

1. W Javie istnieją 4 poziomy dostępu do pól i metod:

public – dostępne dla wszystkich klas

protected – dostępne dla klas w tej samej paczce lub w klasach dziedziczących

domyślny – (używa się go przez niezapisywanie modyfikatora dostępu przy metodzie/klasie) dostępne
tylko dla klas w tej samej paczce

private – dostępne tylko dla klasy, gdzie zostało zdefiniowane pole/metoda

background image

2. Aby chronić wartości pól przez przyjęcie nieodpowiedniej wartości (np. przypisanie zmiennej masa wartości
ujemnej) pola klasy można oznaczyć jako private (z tym poziomem dostępu się wiąże) i umożliwia dostęp do nich
przez funkcje wewnątrz tej klasy – czyli akcesory. Wyróżniamy akcesory piszące (modyfikujące wartość pola) i
czytające (pobierające wartość pola).

3. Konstruktorem nazywamy funkcję, która inicjuje się przy tworzeniu obiektu. Służą np. nadawaniu wartości
polom obiektów przy ich inicjacji. Istnieją konstruktory domyślne, zwykłe i kopiujące.

Konstruktor domyślny nie przyjmuje żadnych argumentów np.

nazwaKlasy() {instrukcje;}

Konstruktor zwykły przyjmuje przynajmniej 1 argument np.

nazwaKlasy(typ argument1, typ argument2,…) {instrukcje;}

Konstruktor kopiujący przyjmuje za argument obiekt tej samej klasy np.

nazwaKlasy(nazwaKlasy Obiekt) {instrukcje;}

4. Metody służą ułatwieniu pisania programów – możemy zastąpić metodą wielokrotne powtarzanie takich samych
linii kodu w programie. Ułatwia to też modyfikację kodu – zamiast poprawiać kod w wielu powtarzających się
miejscach w programie – poprawiamy go w 1 miejscu. Metody możemy podzielić na 4 typy:

Argumentowe zwracające wartość:

typZwracanejWartości nazwaMetody (typArgumentu argument1,…)
{instrukcje;
return wartość;}

Argumentowe bez zwracania wartości:

void nazwaMetody (typArgumentu argument1,…)
{instrukcje;}

Bezargumentowe zwracające wartość:

typZwracanejWartości nazwaMetody ()
{instrukcje;
return wartość;}

Bezargumentowe niezwracające wartości:

void nazwaMetody ()
{instrukcje;}

Wyróżniamy jeszcze metody statyczne i niestatyczne. Metody statyczne, w przeciwieństwie do niestatycznych przy
ich deklaracji zawierają słowo static przed typem zwracanej wartości. Metody statyczne należą do danej klasy i
nie modyfikują obiektów danej klasy, natomiast metod niestatycznych możemy użyć tylko razem z obiektem.
Wywołanie metody niestatycznej:

nazwaObiektu.nazwaMetody(argumenty,…);

Wywołanie metody statycznej:

nazwaKlasy.nazwaMetody(argumenty,…);

background image

4. Program na ocenę bdb:

brylaSim.java

public

class

brylaSim {



public

static

void

main(String[]

args

) {

brylaSztywna

B

=

new

brylaSztywna(3);

//Przypisywanie wartosci punktom

B

.

P

[0].setX(0);

B

.

P

[0].setY(1);

B

.

P

[0].setZ(0);

B

.

P

[0].setMass(1);

B

.

P

[1].setX(1);

B

.

P

[1].setY(0);

B

.

P

[1].setZ(0);

B

.

P

[1].setMass(2);

B

.

P

[2].setX(0);

B

.

P

[2].setY(-9);

B

.

P

[2].setZ(1);

B

.

P

[2].setMass(1);

//Komunikaty

System.

out

.println(

"Srodek masy bryly ma wspolrzedne:

("

+

B

.srodekX()+

";"

+

B

.srodekY()+

";"

+

B

.srodekZ()+

")"

);

System.

out

.println(

"Moment bezwladnosci bryly wzgledem srodka masy

rownolegly do OX wynosi: "

+

B

.momentX()+

", do OY: "

+

B

.momentY()+

", a do OZ:

"

+

B

.momentZ());

}


}

punktM.java

public

class

punktM {

//pola

private

double

mass

;

private

float

x

,

y

,

z

;

//Dodane na potrzeby bryly sztywnej

//konstruktory

public

punktM (){

mass

=0;

x

=0;

y

=0;

z

=0;};

//konstruktor domyslny

public

punktM (

double

mass

)

//konstruktor zwykly - uniemozliwia nadanie

ujemnej masy

{

if

(

mass

>0)

{

this

.

mass

=

mass

;

}

else

{

this

.

mass

=0;

}

}

//akcesory

public

double

getMass(){

return

mass

;}

//akcesor czytajacy

public

void

setMass(

double

mass

)

//akcesor piszacy - uniemozliwia

nadanie ujemnej masy

{

if

(

mass

>0)

{

this

.

mass

=

mass

;

}

else

{

background image

this

.

mass

=0;

}

}

//Modyfikacja i odczyt wspolrzednych

float

getX(){

return

x

;}

float

getY(){

return

y

;}

float

getZ(){

return

z

;}

void

setX(

float

x

){

this

.

x

=

x

;}

void

setY(

float

y

){

this

.

y

=

y

;}

void

setZ(

float

z

){

this

.

z

=

z

;}

//metody

public

double

momentX(){

return

mass

*(

y

*

y

+

z

*

z

);}

//Oblicznie momentu

bezwladnosci wzgledem osi OX

public

double

momentY(){

return

mass

*(

x

*

x

+

z

*

z

);}

//Oblicznie momentu

bezwladnosci wzgledem osi OY

public

double

momentZ(){

return

mass

*(

x

*

x

+

y

*

y

);}

//Oblicznie momentu

bezwladnosci wzgledem osi OZ

public

double

momentSteinerX(

double

a

,

double

b

,

double

c

){

return

mass

*((

y

-

b

)*(

y

-

b

)+(

z

-

c

)*(

z

-

c

));}

//Oblicznie momentu wzgledem osi rownoleglej

do OX

public

double

momentSteinerY(

double

a

,

double

b

,

double

c

){

return

mass

*((

x

-

a

)*(

x

-

a

)+(

z

-

c

)*(

z

-

c

));}

//Oblicznie momentu wzgledem osi rownoleglej

do OY

public

double

momentSteinerZ(

double

a

,

double

b

,

double

c

){

return

mass

*((

x

-

a

)*(

x

+

a

)+(

y

-

b

)*(

y

-

b

));}

//Oblicznie momentu wzgledem osi rownoleglej

do OZ

public

String toString(){

return

"Punkt Materialny"

;}

//opis obiektu

}

brylaSztywna.java

public

class

brylaSztywna {

//Pola

private

int

iloscP

=0;

punktM[]

P

;

//Konstruktory

brylaSztywna (

int

ilosc

)

{

iloscP

=

ilosc

;

P

=

new

punktM[

iloscP

];

for

(

int

i

=0;

i

<

iloscP

;

i

++)

{

P

[

i

]=

new

punktM();

}

}

//Metody

//Wyznaczanie srodka ciezkosci

double

srodekX()

{

double

suma

=0;

double

masa

=0;

for

(

int

i

=0;

i

<

iloscP

;

i

++)

{

suma

+=

P

[

i

].getMass()*

P

[

i

].getX();

masa

+=

P

[

i

].getMass();

}

return

suma

/

masa

;

}

double

srodekY()

background image

{

double

suma

=0;

double

masa

=0;

for

(

int

i

=0;

i

<

iloscP

;

i

++)

{

suma

+=

P

[

i

].getMass()*

P

[

i

].getY();

masa

+=

P

[

i

].getMass();

}

return

suma

/

masa

;

}

double

srodekZ()

{

double

suma

=0;

double

masa

=0;

for

(

int

i

=0;

i

<

iloscP

;

i

++)

{

suma

+=

P

[

i

].getMass()*

P

[

i

].getZ();

masa

+=

P

[

i

].getMass();

}

return

suma

/

masa

;

}

//Obliczanie momentow wzgledem srodka masy

double

momentX()

{

double

moment

=0;

for

(

int

i

=0;

i

<

iloscP

;

i

++)

{

moment

+=

P

[

i

].momentSteinerX(srodekX(),srodekY(),srodekZ());

}

return

moment

;

}

double

momentY()

{

double

moment

=0;

for

(

int

i

=0;

i

<

iloscP

;

i

++)

{

moment

+=

P

[

i

].momentSteinerY(srodekX(),srodekY(),srodekZ());

}

return

moment

;

}

double

momentZ()

{

double

moment

=0;

for

(

int

i

=0;

i

<

iloscP

;

i

++)

{

moment

+=

P

[

i

].momentSteinerZ(srodekX(),srodekY(),srodekZ());

}

return

moment

;

}

}

Wynik działania programu:

Srodek masy bryly ma wspolrzedne: (0.5;-2.0;0.25)
Moment bezwladnosci bryly wzgledem srodka masy rownolegly do OX wynosi:
66.75, do OY: 1.75, a do OZ: 67.0

Program najpierw podaje środek masy bryły o parametrach podanych wewnątrz programu, a następnie oblicza jej
moment bezwładności względem tego środka masy równoległy do osi układu współrzędnych.


Wyszukiwarka

Podobne podstrony:
java 3 id 226367 Nieznany
Podstawy jezyka Java id 367418 Nieznany
java 3 id 226367 Nieznany
java script id 226485 Nieznany
Java wstep12 id 226647 Nieznany
podstawy programowania java id Nieznany
java 04 id 226341 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany

więcej podobnych podstron