Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
alx_mszczonow_1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
alx_mszczonow_1
Commits
2187c1c3
Commit
2187c1c3
authored
Jun 26, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
funkcje i importowanie
parent
be913279
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
963 additions
and
0 deletions
+963
-0
FunkcjeGeometryczne.java
src/main/java/p07_funkcje/FunkcjeGeometryczne.java
+53
-0
JednostkiMiary.java
src/main/java/p07_funkcje/JednostkiMiary.java
+43
-0
ProgramGeometryczny.java
src/main/java/p07_funkcje/ProgramGeometryczny.java
+80
-0
Importowanie1.java
src/main/java/p08_importowanie/Importowanie1.java
+84
-0
Importowanie2.java
src/main/java/p08_importowanie/Importowanie2.java
+92
-0
Importowanie3.java
src/main/java/p08_importowanie/Importowanie3.java
+98
-0
Importowanie4.java
src/main/java/p08_importowanie/Importowanie4.java
+110
-0
Importowanie5.java
src/main/java/p08_importowanie/Importowanie5.java
+92
-0
Importowanie1_BrakImportow.java
...rtowanie/wersja_okienkowa/Importowanie1_BrakImportow.java
+55
-0
Importowanie2_PojedynczeImporty.java
...nie/wersja_okienkowa/Importowanie2_PojedynczeImporty.java
+55
-0
Importowanie3_ImportZGwiazdka.java
...wanie/wersja_okienkowa/Importowanie3_ImportZGwiazdka.java
+70
-0
Importowanie4_ImportStatic.java
...rtowanie/wersja_okienkowa/Importowanie4_ImportStatic.java
+72
-0
Importowanie5_ImportStaticZGwiazdka.java
...wersja_okienkowa/Importowanie5_ImportStaticZGwiazdka.java
+59
-0
No files found.
src/main/java/p07_funkcje/FunkcjeGeometryczne.java
0 → 100644
View file @
2187c1c3
package
p07_funkcje
;
// Komentarz pisany w znacznikach /** */
// pełni rolę dokumentacji, tzw "javadoc".
/**
* @author patryk
*
* To jest przykład klasy, w której nie ma metody main, tylko są zdefiniowane inne metody.
* "klasa narzędziowa" / "utility class"
* Tutaj są to funkcje matematyczne dot. geometrii szkolnej.
*/
public
class
FunkcjeGeometryczne
{
// 4 poziomy dostepu (widoczności): private, pakietowy (domyślny, nie pisze się nic), protected, public
/** Funkcja oblicza pole kwadratu.
* @param a długość boku
* @return pole kwadratu
*/
public
static
double
poleKwadratu
(
double
a
)
{
return
a
*
a
;
}
/** Oblicza obwód kwadratu o podanym boku.
* @param a długość boku
* @return obliczony obwód kwadratu
*/
public
static
double
obwodKwadratu
(
double
a
)
{
return
4
*
a
;
}
/** Oblicza pole prostokąta o podanych bokach.
* @param a długość pierwszego boku
* @param b długość drugiego boku
* @return obliczone pole prostokąta
*/
public
static
double
poleProstokata
(
double
a
,
double
b
)
{
return
a
*
b
;
}
public
static
double
obwodProstokata
(
double
a
,
double
b
)
{
return
2
*
a
+
2
*
b
;
}
public
static
double
poleKola
(
double
r
)
{
return
Math
.
PI
*
r
*
r
;
}
public
static
double
obwodKola
(
double
r
)
{
return
Math
.
PI
*
2
*
r
;
}
}
src/main/java/p07_funkcje/JednostkiMiary.java
0 → 100644
View file @
2187c1c3
package
p07_funkcje
;
public
class
JednostkiMiary
{
// napisz funkcje: mile_na_km , km_na_mile , far_na_cel , cel_na_far
public
static
double
mile_na_km
(
double
mile
)
{
return
mile
*
1.609344
;
}
public
static
double
km_na_mile
(
double
km
)
{
return
km
/
1.609344
;
}
public
static
double
far_na_cel
(
double
far
)
{
//źle return 5 / 9 * (far - 32);
// return 5. / 9. * (far - 32);
return
(
far
-
32
)
/
1.8
;
}
public
static
double
cel_na_far
(
double
cel
)
{
// źle return 32 + 9 / 5 * cel;
// return 32 + 9. / 5. * cel;
return
32
+
1.8
*
cel
;
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"testowe wywołania:"
);
System
.
out
.
println
(
"100 mil = "
+
JednostkiMiary
.
mile_na_km
(
100
)
+
" km"
);
System
.
out
.
println
(
"500 mil = "
+
mile_na_km
(
500
)
+
" km"
);
System
.
out
.
println
(
"100 km = "
+
km_na_mile
(
100
)
+
" mil"
);
System
.
out
.
println
(
"160 km = "
+
km_na_mile
(
160
)
+
" mil"
);
System
.
out
.
println
();
System
.
out
.
println
(
"0 °F = "
+
far_na_cel
(
0
)
+
" °C"
);
System
.
out
.
println
(
"50 °F = "
+
far_na_cel
(
50
)
+
" °C"
);
System
.
out
.
println
(
"100 °F = "
+
far_na_cel
(
100
)
+
" °C"
);
System
.
out
.
println
();
System
.
out
.
println
(
"0 °C = "
+
cel_na_far
(
0
)
+
" °F"
);
System
.
out
.
println
(
"37 °C = "
+
cel_na_far
(
37
)
+
" °F"
);
System
.
out
.
println
(
"100 °C = "
+
cel_na_far
(
100
)
+
" °F"
);
}
}
src/main/java/p07_funkcje/ProgramGeometryczny.java
0 → 100644
View file @
2187c1c3
package
p07_funkcje
;
import
java.util.Scanner
;
public
class
ProgramGeometryczny
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" KM - przelicz kilometry na mile"
);
System
.
out
.
println
(
" MK - przelicz mile na kilometry"
);
System
.
out
.
println
(
" CF - przelicz °C na °F"
);
System
.
out
.
println
(
" FC - przelicz °F na °C"
);
System
.
out
.
println
(
" Q - zakończ"
);
String
wybor
=
scanner
.
next
().
toUpperCase
();
switch
(
wybor
)
{
case
"Q"
->
{
// muszę użyć "etykiety", aby powiedzieć Javie, że przerywam pętlę while, a nie samego switcha
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleKwadratu
(
a
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj długość pierwszego boku prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
System
.
out
.
print
(
"Podaj długość drugiego boku prostokąta: "
);
double
b
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleProstokata
(
a
,
b
);
double
obwod
=
FunkcjeGeometryczne
.
obwodProstokata
(
a
,
b
);
System
.
out
.
printf
(
"Dla prostokąta o bokach %.3f i %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleKola
(
r
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"KM"
->
{
System
.
out
.
print
(
"Podaj odległość w kilometrach: "
);
double
km
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
km_na_mile
(
km
);
System
.
out
.
printf
(
"%.3f km = %.3f mil\n"
,
km
,
wynik
);
}
case
"MK"
->
{
System
.
out
.
print
(
"Podaj odległość w milach: "
);
double
mile
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
mile_na_km
(
mile
);
System
.
out
.
printf
(
"%.3f mil = %.3f km\n"
,
mile
,
wynik
);
}
case
"FC"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Fahrenheitach: "
);
double
f
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
far_na_cel
(
f
);
System
.
out
.
printf
(
"%.3f °F = %.3f °C\n"
,
f
,
wynik
);
}
case
"CF"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Celsjuszach: "
);
double
c
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
cel_na_far
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
}
}
src/main/java/p08_importowanie/Importowanie1.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
;
/* W tej wersji programu nie ma żadnych importów, a wszystkie odwołania do klasy FunkcjeGometryczne
* oraz standardowej klasy Scanner są poprzedzone nazwą pakietu.
*
* W języku Java ZAWSZE da się napisać program bez użycia import.
*
*/
public
class
Importowanie1
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
java
.
util
.
Scanner
scanner
=
new
java
.
util
.
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" KM - przelicz kilometry na mile"
);
System
.
out
.
println
(
" MK - przelicz mile na kilometry"
);
System
.
out
.
println
(
" CF - przelicz °C na °F"
);
System
.
out
.
println
(
" FC - przelicz °F na °C"
);
System
.
out
.
println
(
" Q - zakończ"
);
String
wybor
=
scanner
.
next
().
toUpperCase
();
switch
(
wybor
)
{
case
"Q"
->
{
// muszę użyć "etykiety", aby powiedzieć Javie, że przerywam pętlę while, a nie samego switcha
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
p07_funkcje
.
FunkcjeGeometryczne
.
poleKwadratu
(
a
);
double
obwod
=
p07_funkcje
.
FunkcjeGeometryczne
.
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj długość pierwszego boku prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
System
.
out
.
print
(
"Podaj długość drugiego boku prostokąta: "
);
double
b
=
scanner
.
nextDouble
();
double
pole
=
p07_funkcje
.
FunkcjeGeometryczne
.
poleProstokata
(
a
,
b
);
double
obwod
=
p07_funkcje
.
FunkcjeGeometryczne
.
obwodProstokata
(
a
,
b
);
System
.
out
.
printf
(
"Dla prostokąta o bokach %.3f i %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
p07_funkcje
.
FunkcjeGeometryczne
.
poleKola
(
r
);
double
obwod
=
p07_funkcje
.
FunkcjeGeometryczne
.
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"KM"
->
{
System
.
out
.
print
(
"Podaj odległość w kilometrach: "
);
double
km
=
scanner
.
nextDouble
();
double
wynik
=
p07_funkcje
.
JednostkiMiary
.
km_na_mile
(
km
);
System
.
out
.
printf
(
"%.3f km = %.3f mil\n"
,
km
,
wynik
);
}
case
"MK"
->
{
System
.
out
.
print
(
"Podaj odległość w milach: "
);
double
mile
=
scanner
.
nextDouble
();
double
wynik
=
p07_funkcje
.
JednostkiMiary
.
mile_na_km
(
mile
);
System
.
out
.
printf
(
"%.3f mil = %.3f km\n"
,
mile
,
wynik
);
}
case
"FC"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Fahrenheitach: "
);
double
f
=
scanner
.
nextDouble
();
double
wynik
=
p07_funkcje
.
JednostkiMiary
.
far_na_cel
(
f
);
System
.
out
.
printf
(
"%.3f °F = %.3f °C\n"
,
f
,
wynik
);
}
case
"CF"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Celsjuszach: "
);
double
c
=
scanner
.
nextDouble
();
double
wynik
=
p07_funkcje
.
JednostkiMiary
.
cel_na_far
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
}
}
src/main/java/p08_importowanie/Importowanie2.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
;
import
java.util.Scanner
;
import
p07_funkcje.FunkcjeGeometryczne
;
import
p07_funkcje.JednostkiMiary
;
/* W tej wersji stosujemy najbardziej standardowy sposób importowania, najczęściej używany:
każda klasa, do której odwołuje się nasz program, jest zaimportowana osobnym poleceniem.
import w Javie NIE służy załadowaniu klas do pamięci, nie wykonuje się w czasie działania programu (tak się dzieje w Python i PHP)
To jest tylko wskazanie z jakiego pakietu pochodzi klasa.
import nie wpływa na wydajność!
*/
public
class
Importowanie2
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" KM - przelicz kilometry na mile"
);
System
.
out
.
println
(
" MK - przelicz mile na kilometry"
);
System
.
out
.
println
(
" CF - przelicz °C na °F"
);
System
.
out
.
println
(
" FC - przelicz °F na °C"
);
System
.
out
.
println
(
" Q - zakończ"
);
String
wybor
=
scanner
.
next
().
toUpperCase
();
switch
(
wybor
)
{
case
"Q"
->
{
// muszę użyć "etykiety", aby powiedzieć Javie, że przerywam pętlę while, a nie samego switcha
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleKwadratu
(
a
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj długość pierwszego boku prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
System
.
out
.
print
(
"Podaj długość drugiego boku prostokąta: "
);
double
b
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleProstokata
(
a
,
b
);
double
obwod
=
FunkcjeGeometryczne
.
obwodProstokata
(
a
,
b
);
System
.
out
.
printf
(
"Dla prostokąta o bokach %.3f i %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleKola
(
r
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"KM"
->
{
System
.
out
.
print
(
"Podaj odległość w kilometrach: "
);
double
km
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
km_na_mile
(
km
);
System
.
out
.
printf
(
"%.3f km = %.3f mil\n"
,
km
,
wynik
);
}
case
"MK"
->
{
System
.
out
.
print
(
"Podaj odległość w milach: "
);
double
mile
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
mile_na_km
(
mile
);
System
.
out
.
printf
(
"%.3f mil = %.3f km\n"
,
mile
,
wynik
);
}
case
"FC"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Fahrenheitach: "
);
double
f
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
far_na_cel
(
f
);
System
.
out
.
printf
(
"%.3f °F = %.3f °C\n"
,
f
,
wynik
);
}
case
"CF"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Celsjuszach: "
);
double
c
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
cel_na_far
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
}
}
src/main/java/p08_importowanie/Importowanie3.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
;
import
java.util.*
;
import
p07_funkcje.*
;
/* Gdy na końcu polecenia import za nazwą pakietu umieścimy *,
* to importowane są wszystkie klasy z tego pakietu.
* To nie importuje podpakietów (podklatalogów).
* importy z * mają niższy priorytet niż importy bezpośrednie.
*
* Gdy w programie pojawia się jakaś nazwa, to kompilator szuka klasy w takiej kolejności:
* 1. rzeczy zaimportowane bezpośrednio (tak jak w Importowanie2)
* 2. bieżący pakiet
* 3. klasy zaimportowane za pomocą * (w tym java.lang)
* (bo w pewnym sensie kompilator Javy na początku robi niejawnie import java.lang.*;
*
* Czy importowanie wszystkich klas z dużego pakietu sprawia problemy?
* To nie jest problem z punktu widzenia wydajności, bo import nie ładuje tych klas do pamięci.
* Natomiast zwiększa to ryzyko kolizji nazw.
* Znany przykład: java.awt.List (lista wyboru w starej technologii okienkowej) i java.util.List (kolekcja).
* Sam import nie jest problemem, problem dopiero, gdy użyjemy tej klasy (błąd kompilacji).
*/
public
class
Importowanie3
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" KM - przelicz kilometry na mile"
);
System
.
out
.
println
(
" MK - przelicz mile na kilometry"
);
System
.
out
.
println
(
" CF - przelicz °C na °F"
);
System
.
out
.
println
(
" FC - przelicz °F na °C"
);
System
.
out
.
println
(
" Q - zakończ"
);
String
wybor
=
scanner
.
next
().
toUpperCase
();
switch
(
wybor
)
{
case
"Q"
->
{
// muszę użyć "etykiety", aby powiedzieć Javie, że przerywam pętlę while, a nie samego switcha
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleKwadratu
(
a
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj długość pierwszego boku prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
System
.
out
.
print
(
"Podaj długość drugiego boku prostokąta: "
);
double
b
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleProstokata
(
a
,
b
);
double
obwod
=
FunkcjeGeometryczne
.
obwodProstokata
(
a
,
b
);
System
.
out
.
printf
(
"Dla prostokąta o bokach %.3f i %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
FunkcjeGeometryczne
.
poleKola
(
r
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"KM"
->
{
System
.
out
.
print
(
"Podaj odległość w kilometrach: "
);
double
km
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
km_na_mile
(
km
);
System
.
out
.
printf
(
"%.3f km = %.3f mil\n"
,
km
,
wynik
);
}
case
"MK"
->
{
System
.
out
.
print
(
"Podaj odległość w milach: "
);
double
mile
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
mile_na_km
(
mile
);
System
.
out
.
printf
(
"%.3f mil = %.3f km\n"
,
mile
,
wynik
);
}
case
"FC"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Fahrenheitach: "
);
double
f
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
far_na_cel
(
f
);
System
.
out
.
printf
(
"%.3f °F = %.3f °C\n"
,
f
,
wynik
);
}
case
"CF"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Celsjuszach: "
);
double
c
=
scanner
.
nextDouble
();
double
wynik
=
JednostkiMiary
.
cel_na_far
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
}
}
src/main/java/p08_importowanie/Importowanie4.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
;
import
java.util.Scanner
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
obwodKola
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
obwodKwadratu
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
obwodProstokata
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
poleKola
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
poleKwadratu
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
poleProstokata
;
import
static
p07_funkcje
.
JednostkiMiary
.
cel_na_far
;
import
static
p07_funkcje
.
JednostkiMiary
.
far_na_cel
;
import
static
p07_funkcje
.
JednostkiMiary
.
km_na_mile
;
import
static
p07_funkcje
.
JednostkiMiary
.
mile_na_km
;
// źle, bo nextDouble nie jest static:
// import static java.util.Scanner.nextDouble;
//można też importować zmienne / stałe statyczne:
import
static
java
.
lang
.
Math
.
PI
;
/* Gdy w programie korzystamy tylko z elementów statycznych klasy X (z metod statycznych, zmiennych statycznych, stałych),
* to zamiast importować tę klasę i wywoływać te elementy pisząc X.metoda
* można zaimportować statycznie tę metodę (albo zmienną, stałą ...).
*
* Wtedy w treści programy używamy zaimportowanych rzeczy tak, jakby były zdefiniowane w naszej klasie.
* (albo tak jakby były funkcjami, tak jak w Pythonie, C++, PHP itp...)
*
* Nie ma jak użyć import static w stosunku do klasy Scanner, bo jej używamy w sposób "obiektowy":
* tworzony jest obiekt klasy Scanner i na nim wywoływana jest metoda (nie jest statyczna).
*/
public
class
Importowanie4
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" KM - przelicz kilometry na mile"
);
System
.
out
.
println
(
" MK - przelicz mile na kilometry"
);
System
.
out
.
println
(
" CF - przelicz °C na °F"
);
System
.
out
.
println
(
" FC - przelicz °F na °C"
);
System
.
out
.
println
(
" Q - zakończ"
);
String
wybor
=
scanner
.
next
().
toUpperCase
();
switch
(
wybor
)
{
case
"Q"
->
{
// muszę użyć "etykiety", aby powiedzieć Javie, że przerywam pętlę while, a nie samego switcha
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
poleKwadratu
(
a
);
double
obwod
=
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj długość pierwszego boku prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
System
.
out
.
print
(
"Podaj długość drugiego boku prostokąta: "
);
double
b
=
scanner
.
nextDouble
();
double
pole
=
poleProstokata
(
a
,
b
);
double
obwod
=
obwodProstokata
(
a
,
b
);
System
.
out
.
printf
(
"Dla prostokąta o bokach %.3f i %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
poleKola
(
r
);
double
obwod
=
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"KM"
->
{
System
.
out
.
print
(
"Podaj odległość w kilometrach: "
);
double
km
=
scanner
.
nextDouble
();
double
wynik
=
km_na_mile
(
km
);
System
.
out
.
printf
(
"%.3f km = %.3f mil\n"
,
km
,
wynik
);
}
case
"MK"
->
{
System
.
out
.
print
(
"Podaj odległość w milach: "
);
double
mile
=
scanner
.
nextDouble
();
double
wynik
=
mile_na_km
(
mile
);
System
.
out
.
printf
(
"%.3f mil = %.3f km\n"
,
mile
,
wynik
);
}
case
"FC"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Fahrenheitach: "
);
double
f
=
scanner
.
nextDouble
();
double
wynik
=
far_na_cel
(
f
);
System
.
out
.
printf
(
"%.3f °F = %.3f °C\n"
,
f
,
wynik
);
}
case
"CF"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Celsjuszach: "
);
double
c
=
scanner
.
nextDouble
();
double
wynik
=
cel_na_far
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
System
.
out
.
println
(
"A liczba pi jest równa około "
+
PI
);
}
}
src/main/java/p08_importowanie/Importowanie5.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
;
import
java.util.Scanner
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.*;
import
static
p07_funkcje
.
JednostkiMiary
.*;
import
static
java
.
lang
.
Math
.*;
/* import static pakiet.Klasa.* importuje wszystkie rzeczy statyczne z podanej klasy.
*
* Nie da się użyć gwiazdek na poziomie pakietu i klasy w jednym imporcie.
* To nie przejdzie:
* import static p07_funkcje.*.*;
*/
public
class
Importowanie5
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" KM - przelicz kilometry na mile"
);
System
.
out
.
println
(
" MK - przelicz mile na kilometry"
);
System
.
out
.
println
(
" CF - przelicz °C na °F"
);
System
.
out
.
println
(
" FC - przelicz °F na °C"
);
System
.
out
.
println
(
" Q - zakończ"
);
String
wybor
=
scanner
.
next
().
toUpperCase
();
switch
(
wybor
)
{
case
"Q"
->
{
// muszę użyć "etykiety", aby powiedzieć Javie, że przerywam pętlę while, a nie samego switcha
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
poleKwadratu
(
a
);
double
obwod
=
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj długość pierwszego boku prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
System
.
out
.
print
(
"Podaj długość drugiego boku prostokąta: "
);
double
b
=
scanner
.
nextDouble
();
double
pole
=
poleProstokata
(
a
,
b
);
double
obwod
=
obwodProstokata
(
a
,
b
);
System
.
out
.
printf
(
"Dla prostokąta o bokach %.3f i %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
poleKola
(
r
);
double
obwod
=
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"KM"
->
{
System
.
out
.
print
(
"Podaj odległość w kilometrach: "
);
double
km
=
scanner
.
nextDouble
();
double
wynik
=
km_na_mile
(
km
);
System
.
out
.
printf
(
"%.3f km = %.3f mil\n"
,
km
,
wynik
);
}
case
"MK"
->
{
System
.
out
.
print
(
"Podaj odległość w milach: "
);
double
mile
=
scanner
.
nextDouble
();
double
wynik
=
mile_na_km
(
mile
);
System
.
out
.
printf
(
"%.3f mil = %.3f km\n"
,
mile
,
wynik
);
}
case
"FC"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Fahrenheitach: "
);
double
f
=
scanner
.
nextDouble
();
double
wynik
=
far_na_cel
(
f
);
System
.
out
.
printf
(
"%.3f °F = %.3f °C\n"
,
f
,
wynik
);
}
case
"CF"
->
{
System
.
out
.
print
(
"Podaj temperaturę w Celsjuszach: "
);
double
c
=
scanner
.
nextDouble
();
double
wynik
=
cel_na_far
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
System
.
out
.
println
(
"A liczba pi jest równa około "
+
PI
);
}
}
src/main/java/p08_importowanie/wersja_okienkowa/Importowanie1_BrakImportow.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
.
wersja_okienkowa
;
/* W tej wersji programu nie ma żadnych importów, a wszystkie odwołania do klasy Geometria
* oraz standardowych klas JOptionPane i Random są poprzedzone nazwą pakietu.
*
* W języku Java ZAWSZE da się napisać program bez użycia import.
* import w Javie NIE służy załadowaniu klas do pamięci, nie wykonuje się w czasie działania programu (tak się dzieje w Python i PHP)
* To jest tylko wskazanie z jakiego pakietu pochodzi klasa.
*/
public
class
Importowanie1_BrakImportow
{
public
static
void
main
(
String
[]
args
)
{
// Tylko, aby pokazać w kontekście importowania, tworzę obiekt Random
java
.
util
.
Random
random
=
new
java
.
util
.
Random
();
String
[]
figury
=
{
"kwadrat"
,
"prostokąt"
,
"koło"
};
int
poczatkowyWybor
=
random
.
nextInt
(
figury
.
length
);
String
figura
=
(
String
)
javax
.
swing
.
JOptionPane
.
showInputDialog
(
null
,
"Wybierz rodzaj figury"
,
"Wybór"
,
javax
.
swing
.
JOptionPane
.
QUESTION_MESSAGE
,
null
,
figury
,
figury
[
poczatkowyWybor
]);
if
(
figura
==
null
)
{
return
;
}
switch
(
figura
)
{
case
"kwadrat"
->
{
double
a
=
Double
.
parseDouble
(
javax
.
swing
.
JOptionPane
.
showInputDialog
(
"Podaj długość boku:"
));
double
pole
=
p07_funkcje
.
FunkcjeGeometryczne
.
poleKwadratu
(
a
);
double
obwod
=
p07_funkcje
.
FunkcjeGeometryczne
.
obwodKwadratu
(
a
);
javax
.
swing
.
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"prostokąt"
->
{
double
a
=
Double
.
parseDouble
(
javax
.
swing
.
JOptionPane
.
showInputDialog
(
"Podaj długość 1. boku:"
));
double
b
=
Double
.
parseDouble
(
javax
.
swing
.
JOptionPane
.
showInputDialog
(
"Podaj długość 2. boku:"
));
double
pole
=
p07_funkcje
.
FunkcjeGeometryczne
.
poleProstokata
(
a
,
b
);
double
obwod
=
p07_funkcje
.
FunkcjeGeometryczne
.
obwodProstokata
(
a
,
b
);
javax
.
swing
.
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"koło"
->
{
double
r
=
Double
.
parseDouble
(
javax
.
swing
.
JOptionPane
.
showInputDialog
(
"Podaj promień koła:"
));
double
pole
=
p07_funkcje
.
FunkcjeGeometryczne
.
poleKola
(
r
);
double
obwod
=
p07_funkcje
.
FunkcjeGeometryczne
.
obwodKola
(
r
);
javax
.
swing
.
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
}
}
}
src/main/java/p08_importowanie/wersja_okienkowa/Importowanie2_PojedynczeImporty.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
.
wersja_okienkowa
;
import
java.util.Random
;
import
javax.swing.JOptionPane
;
import
p07_funkcje.FunkcjeGeometryczne
;
/* W tej wersji stosujemy najbardziej standardowy sposób importowania, najczęściej używany:
każda klasa, do której odwołuje się nasz program, jest zaimportowana osobnym poleceniem.
*/
public
class
Importowanie2_PojedynczeImporty
{
public
static
void
main
(
String
[]
args
)
{
// Tylko, aby pokazać w kontekście importowania, tworzę obiekt Random
Random
random
=
new
Random
();
String
[]
figury
=
{
"kwadrat"
,
"prostokąt"
,
"koło"
};
int
poczatkowyWybor
=
random
.
nextInt
(
figury
.
length
);
String
figura
=
(
String
)
JOptionPane
.
showInputDialog
(
null
,
"Wybierz rodzaj figury"
,
"Wybór"
,
JOptionPane
.
QUESTION_MESSAGE
,
null
,
figury
,
figury
[
poczatkowyWybor
]);
if
(
figura
==
null
)
{
return
;
}
switch
(
figura
)
{
case
"kwadrat"
->
{
double
a
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość boku:"
));
double
pole
=
FunkcjeGeometryczne
.
poleKwadratu
(
a
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKwadratu
(
a
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"prostokąt"
->
{
double
a
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość 1. boku:"
));
double
b
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość 2. boku:"
));
double
pole
=
FunkcjeGeometryczne
.
poleProstokata
(
a
,
b
);
double
obwod
=
FunkcjeGeometryczne
.
obwodProstokata
(
a
,
b
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"koło"
->
{
double
r
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj promień koła:"
));
double
pole
=
FunkcjeGeometryczne
.
poleKola
(
r
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKola
(
r
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
}
}
}
src/main/java/p08_importowanie/wersja_okienkowa/Importowanie3_ImportZGwiazdka.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
.
wersja_okienkowa
;
// tego nie trzeba pisać, ale zachowanie jest takie, jakby każdy program miał to na początku
// import java.lang.*;
import
java.util.*
;
import
javax.swing.*
;
import
p07_funkcje.*
;
/* Gdy na końcu polecenia import za nazwą pakietu umieścimy *,
* to importowane są wszystkie klasy z tego pakietu.
* To nie importuje podpakietów (podklatalogów).
* importy z * mają niższy priorytet niż importy bezpośrednie.
*
* Gdy w programie pojawia się jakaś nazwa, to kompilator szuka klasy w takiej kolejności:
* 1. rzeczy zaimportowane bezpośrednio
* 2. bieżący pakiet
* 3. klasy zaimportowane za pomocą * (w tym java.lang)
*
* Czy importowanie wszystkich klas z dużego pakietu sprawia problemy?
* To nie jest problem z punktu widzenia wydajności, bo import nie ładuje tych klas do pamięci.
* Natomiast zwiększa to ryzyko kolizji nazw.
* Znany przykład: java.awt.List (lista wyboru w starej technologii okienkowej) i java.util.List (kolekcja).
* Sam import nie jest problemem, problem dopiero, gdy użyjemy tej klasy (błąd kompilacji).
*/
public
class
Importowanie3_ImportZGwiazdka
{
public
static
void
main
(
String
[]
args
)
{
// Tylko, aby pokazać w kontekście importowania, tworzę obiekt Random
Random
random
=
new
Random
();
String
[]
figury
=
{
"kwadrat"
,
"prostokąt"
,
"koło"
};
int
poczatkowyWybor
=
random
.
nextInt
(
figury
.
length
);
String
figura
=
(
String
)
JOptionPane
.
showInputDialog
(
null
,
"Wybierz rodzaj figury"
,
"Wybór"
,
JOptionPane
.
QUESTION_MESSAGE
,
null
,
figury
,
figury
[
poczatkowyWybor
]);
if
(
figura
==
null
)
{
return
;
}
switch
(
figura
)
{
case
"kwadrat"
->
{
double
a
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość boku:"
));
double
pole
=
FunkcjeGeometryczne
.
poleKwadratu
(
a
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKwadratu
(
a
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"prostokąt"
->
{
double
a
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość 1. boku:"
));
double
b
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość 2. boku:"
));
double
pole
=
FunkcjeGeometryczne
.
poleProstokata
(
a
,
b
);
double
obwod
=
FunkcjeGeometryczne
.
obwodProstokata
(
a
,
b
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"koło"
->
{
double
r
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj promień koła:"
));
double
pole
=
FunkcjeGeometryczne
.
poleKola
(
r
);
double
obwod
=
FunkcjeGeometryczne
.
obwodKola
(
r
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
}
}
}
src/main/java/p08_importowanie/wersja_okienkowa/Importowanie4_ImportStatic.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
.
wersja_okienkowa
;
import
static
javax
.
swing
.
JOptionPane
.
QUESTION_MESSAGE
;
import
static
javax
.
swing
.
JOptionPane
.
showInputDialog
;
import
static
javax
.
swing
.
JOptionPane
.
showMessageDialog
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
obwodKola
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
obwodKwadratu
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
obwodProstokata
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
poleKola
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
poleKwadratu
;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.
poleProstokata
;
import
java.util.Random
;
/* Gdy w programie korzystamy tylko z elementów statycznych klasy X (z metod statycznych, zmiennych statycznych, stałych),
* to zamiast importować tę klasę i wywoływać te elementy pisząc X.metoda
* można zaimportować statycznie tę metodę (albo zmienną, stałą ...).
*
* Wtedy w treści programy używamy zaimportowanych rzeczy tak, jakby byly zdefiniowane w naszej klasie.
* (albo tak jakby były funkcjami, tak jak w Pythonie, C++, PHP itp...)
*
* Nie ma jak użyć import static w stosunku do klasy Random, bo jej używamy w sposób "obiektowy":
* tworzony jest obiekt klasy Random i na nim wywoływana jest metoda (nie jest statyczna).
*
*/
public
class
Importowanie4_ImportStatic
{
public
static
void
main
(
String
[]
args
)
{
// Tylko, aby pokazać w kontekście importowania, tworzę obiekt Random
Random
random
=
new
Random
();
String
[]
figury
=
{
"kwadrat"
,
"prostokąt"
,
"koło"
};
int
poczatkowyWybor
=
random
.
nextInt
(
figury
.
length
);
String
figura
=
(
String
)
showInputDialog
(
null
,
"Wybierz rodzaj figury"
,
"Wybór"
,
QUESTION_MESSAGE
,
null
,
figury
,
figury
[
poczatkowyWybor
]);
if
(
figura
==
null
)
{
return
;
}
switch
(
figura
)
{
case
"kwadrat"
->
{
double
a
=
Double
.
parseDouble
(
showInputDialog
(
"Podaj długość boku:"
));
double
pole
=
poleKwadratu
(
a
);
double
obwod
=
obwodKwadratu
(
a
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"prostokąt"
->
{
double
a
=
Double
.
parseDouble
(
showInputDialog
(
"Podaj długość 1. boku:"
));
double
b
=
Double
.
parseDouble
(
showInputDialog
(
"Podaj długość 2. boku:"
));
double
pole
=
poleProstokata
(
a
,
b
);
double
obwod
=
obwodProstokata
(
a
,
b
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"koło"
->
{
double
r
=
Double
.
parseDouble
(
showInputDialog
(
"Podaj promień koła:"
));
double
pole
=
poleKola
(
r
);
double
obwod
=
obwodKola
(
r
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
}
}
}
src/main/java/p08_importowanie/wersja_okienkowa/Importowanie5_ImportStaticZGwiazdka.java
0 → 100644
View file @
2187c1c3
package
p08_importowanie
.
wersja_okienkowa
;
import
static
javax
.
swing
.
JOptionPane
.*;
import
static
p07_funkcje
.
FunkcjeGeometryczne
.*;
import
java.util.Random
;
/* import static pakiet.Klasa.* importuje wszystkie rzeczy statyczne z podanej klasy.
*
* Nie da się użyć gwiazdek na poziomie pakietu i klasy w jednym imporcie.
* To nie pzejdzie:
* import static p07_funkcje.geometria.*.*;
*/
public
class
Importowanie5_ImportStaticZGwiazdka
{
public
static
void
main
(
String
[]
args
)
{
// Tylko, aby pokazać w kontekście importowania, tworzę obiekt Random
Random
random
=
new
Random
();
String
[]
figury
=
{
"kwadrat"
,
"prostokąt"
,
"koło"
};
int
poczatkowyWybor
=
random
.
nextInt
(
figury
.
length
);
String
figura
=
(
String
)
showInputDialog
(
null
,
"Wybierz rodzaj figury"
,
"Wybór"
,
QUESTION_MESSAGE
,
null
,
figury
,
figury
[
poczatkowyWybor
]);
if
(
figura
==
null
)
{
return
;
}
switch
(
figura
)
{
case
"kwadrat"
->
{
double
a
=
Double
.
parseDouble
(
showInputDialog
(
"Podaj długość boku:"
));
double
pole
=
poleKwadratu
(
a
);
double
obwod
=
obwodKwadratu
(
a
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"prostokąt"
->
{
double
a
=
Double
.
parseDouble
(
showInputDialog
(
"Podaj długość 1. boku:"
));
double
b
=
Double
.
parseDouble
(
showInputDialog
(
"Podaj długość 2. boku:"
));
double
pole
=
poleProstokata
(
a
,
b
);
double
obwod
=
obwodProstokata
(
a
,
b
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"koło"
->
{
double
r
=
Double
.
parseDouble
(
showInputDialog
(
"Podaj promień koła:"
));
double
pole
=
poleKola
(
r
);
double
obwod
=
obwodKola
(
r
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment