Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
alx_java1
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_java1
Commits
d1b742fc
Commit
d1b742fc
authored
Aug 06, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Uporządkowanie przykładów "importowanie"
parent
44b9771d
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
898 additions
and
238 deletions
+898
-238
Program0.java
src/main/java/gotowe/p08_funkcje/importowanie/Program0.java
+96
-0
Program1.java
src/main/java/gotowe/p08_funkcje/importowanie/Program1.java
+104
-0
Program2.java
src/main/java/gotowe/p08_funkcje/importowanie/Program2.java
+112
-0
Program3.java
src/main/java/gotowe/p08_funkcje/importowanie/Program3.java
+115
-0
Program4.java
src/main/java/gotowe/p08_funkcje/importowanie/Program4.java
+101
-0
StaticImportOkienkowy.java
...otowe/p08_funkcje/importowanie/StaticImportOkienkowy.java
+60
-0
V1_BrakImportow.java
...java/gotowe/p08_funkcje/importowanie/V1_BrakImportow.java
+0
-13
V2_ImportKlas.java
...n/java/gotowe/p08_funkcje/importowanie/V2_ImportKlas.java
+0
-16
V3_ImportGwiazdka.java
...va/gotowe/p08_funkcje/importowanie/V3_ImportGwiazdka.java
+0
-21
V4_ImportStatic.java
...java/gotowe/p08_funkcje/importowanie/V4_ImportStatic.java
+0
-19
V5_ImportStaticGwiazdka.java
...owe/p08_funkcje/importowanie/V5_ImportStaticGwiazdka.java
+0
-18
Geometria.java
src/main/java/gotowe/p08_funkcje/przyklady/Geometria.java
+15
-49
GeometriaProgram.java
...n/java/gotowe/p08_funkcje/przyklady/GeometriaProgram.java
+59
-0
GeometriaTest.java
...main/java/gotowe/p08_funkcje/przyklady/GeometriaTest.java
+20
-0
JednostkiMiary.java
...ain/java/gotowe/p08_funkcje/przyklady/JednostkiMiary.java
+47
-8
Palindrom.java
src/main/java/gotowe/p08_funkcje/przyklady/Palindrom.java
+53
-0
ProgramGeometryczny.java
...ava/gotowe/p08_funkcje/przyklady/ProgramGeometryczny.java
+0
-65
ProgramOkienkowy.java
...n/java/gotowe/p08_funkcje/przyklady/ProgramOkienkowy.java
+58
-0
TestyGeometrii.java
...ain/java/gotowe/p08_funkcje/przyklady/TestyGeometrii.java
+0
-29
Silnia.java
src/main/java/p08_funkcje/Silnia.java
+29
-0
SilniaBig.java
src/main/java/p08_funkcje/SilniaBig.java
+29
-0
No files found.
src/main/java/gotowe/p08_funkcje/importowanie/Program0.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
importowanie
;
/* W tej wersji programu nie ma żadnych importów, a wszystkie odwołania do klas Geometria, JednostkiMiary
* oraz standardowej klasy Scanner są poprzedzone nazwą pakietu.
*
* W języku Java ZAWSZE da się napisać program bez użycia import.
*/
public
class
Program0
{
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ę lub operację:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" T - trójką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"
->
{
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleKwadratu
(
a
);
double
obwod
=
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleKola
(
r
);
double
obwod
=
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj dwie długości boków prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
pole
=
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleProstokata
(
a
,
b
);
double
obwod
=
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
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
"T"
->
{
System
.
out
.
print
(
"Podaj trzy długości boków trójkąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
c
=
scanner
.
nextDouble
();
double
pole
=
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleTrojkata
(
a
,
b
,
c
);
double
obwod
=
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
obwodTrojkata
(
a
,
b
,
c
);
System
.
out
.
printf
(
"Dla trójkąta o bokach %.3f, %.3f, %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
c
,
pole
,
obwod
);
}
case
"KM"
->
{
System
.
out
.
print
(
"Podaj odległość w kilometrach: "
);
double
km
=
scanner
.
nextDouble
();
double
wynik
=
gotowe
.
p08_funkcje
.
przyklady
.
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
=
gotowe
.
p08_funkcje
.
przyklady
.
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
=
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
f_na_c
(
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
=
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
c_na_f
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
System
.
out
.
println
(
"Dzięki, miłego dnia!"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/Program1.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
importowanie
;
import
java.util.Scanner
;
import
gotowe.p08_funkcje.przyklady.Geometria
;
import
gotowe.p08_funkcje.przyklady.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
Program1
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę lub operację:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" T - trójką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"
->
{
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleKwadratu
(
a
);
double
obwod
=
Geometria
.
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleKola
(
r
);
double
obwod
=
Geometria
.
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj dwie długości boków prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleProstokata
(
a
,
b
);
double
obwod
=
Geometria
.
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
"T"
->
{
System
.
out
.
print
(
"Podaj trzy długości boków trójkąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
c
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleTrojkata
(
a
,
b
,
c
);
double
obwod
=
Geometria
.
obwodTrojkata
(
a
,
b
,
c
);
System
.
out
.
printf
(
"Dla trójkąta o bokach %.3f, %.3f, %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
c
,
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
.
f_na_c
(
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
.
c_na_f
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
System
.
out
.
println
(
"Dzięki, miłego dnia!"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/Program2.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
importowanie
;
import
java.util.Scanner
;
import
gotowe.p08_funkcje.przyklady.*
;
/* 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 Program1)
* 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
Program2
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę lub operację:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" T - trójką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"
->
{
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleKwadratu
(
a
);
double
obwod
=
Geometria
.
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleKola
(
r
);
double
obwod
=
Geometria
.
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj dwie długości boków prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleProstokata
(
a
,
b
);
double
obwod
=
Geometria
.
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
"T"
->
{
System
.
out
.
print
(
"Podaj trzy długości boków trójkąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
c
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleTrojkata
(
a
,
b
,
c
);
double
obwod
=
Geometria
.
obwodTrojkata
(
a
,
b
,
c
);
System
.
out
.
printf
(
"Dla trójkąta o bokach %.3f, %.3f, %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
c
,
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
.
f_na_c
(
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
.
c_na_f
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
System
.
out
.
println
(
"Dzięki, miłego dnia!"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/Program3.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
importowanie
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
obwodKola
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
obwodKwadratu
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
obwodProstokata
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
obwodTrojkata
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleKola
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleKwadratu
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleProstokata
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleTrojkata
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
c_na_f
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
f_na_c
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
km_na_mile
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
mile_na_km
;
import
java.util.Scanner
;
/* 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
Program3
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę lub operację:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" T - trójką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"
->
{
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
"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
"P"
->
{
System
.
out
.
print
(
"Podaj dwie długości boków prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
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
"T"
->
{
System
.
out
.
print
(
"Podaj trzy długości boków trójkąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
c
=
scanner
.
nextDouble
();
double
pole
=
poleTrojkata
(
a
,
b
,
c
);
double
obwod
=
obwodTrojkata
(
a
,
b
,
c
);
System
.
out
.
printf
(
"Dla trójkąta o bokach %.3f, %.3f, %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
c
,
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
=
f_na_c
(
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
=
c_na_f
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
System
.
out
.
println
(
"Dzięki, miłego dnia!"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/Program4.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
importowanie
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.*;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.*;
import
java.util.Scanner
;
/* 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 p09_funkcje.*.*;
*/
public
class
Program4
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę lub operację:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" T - trójką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"
->
{
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
"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
"P"
->
{
System
.
out
.
print
(
"Podaj dwie długości boków prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
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
"T"
->
{
System
.
out
.
print
(
"Podaj trzy długości boków trójkąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
c
=
scanner
.
nextDouble
();
double
pole
=
poleTrojkata
(
a
,
b
,
c
);
double
obwod
=
obwodTrojkata
(
a
,
b
,
c
);
System
.
out
.
printf
(
"Dla trójkąta o bokach %.3f, %.3f, %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
b
,
c
,
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
=
f_na_c
(
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
=
c_na_f
(
c
);
System
.
out
.
printf
(
"%.3f °C = %.3f °F\n"
,
c
,
wynik
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
System
.
out
.
println
(
"Dzięki, miłego dnia!"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/StaticImportOkienkowy.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
importowanie
;
import
java.util.Random
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.*;
import
static
java
.
lang
.
Double
.
parseDouble
;
import
static
javax
.
swing
.
JOptionPane
.*;
public
class
StaticImportOkienkowy
{
public
static
void
main
(
String
[]
args
)
{
Random
random
=
new
Random
();
String
[]
figury
=
{
"kwadrat"
,
"koło"
,
"prostokąt"
,
"trójkąt"
};
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
=
parseDouble
(
showInputDialog
(
"Podaj długość boku:"
));
double
pole
=
poleKwadratu
(
a
);
double
obwod
=
obwodKwadratu
(
a
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"koło"
->
{
double
r
=
parseDouble
(
showInputDialog
(
"Podaj promień koła:"
));
double
pole
=
poleKola
(
r
);
double
obwod
=
obwodKola
(
r
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"prostokąt"
->
{
double
a
=
parseDouble
(
showInputDialog
(
"Podaj długość 1. boku:"
));
double
b
=
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
"trójkąt"
->
{
double
a
=
parseDouble
(
showInputDialog
(
"Podaj długość 1. boku:"
));
double
b
=
parseDouble
(
showInputDialog
(
"Podaj długość 2. boku:"
));
double
c
=
parseDouble
(
showInputDialog
(
"Podaj długość 3. boku:"
));
double
pole
=
poleTrojkata
(
a
,
b
,
c
);
double
obwod
=
obwodTrojkata
(
a
,
b
,
c
);
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
}
}
}
src/main/java/gotowe/p08_funkcje/importowanie/V1_BrakImportow.java
deleted
100644 → 0
View file @
44b9771d
package
gotowe
.
p08_funkcje
.
importowanie
;
public
class
V1_BrakImportow
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Pole kwadratu 5 = "
+
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleKwadratu
(
5.0
));
System
.
out
.
println
(
"Pole koła 5 = "
+
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleKola
(
5.0
));
System
.
out
.
println
(
"Pole prostokąta 3×5 = "
+
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleProstokata
(
3.0
,
5.0
));
System
.
out
.
println
(
"100 mil = "
+
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
mileNaKm
(
100
)
+
" km"
);
System
.
out
.
println
(
"100 km = "
+
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
kmNaMile
(
100
)
+
" mil"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/V2_ImportKlas.java
deleted
100644 → 0
View file @
44b9771d
package
gotowe
.
p08_funkcje
.
importowanie
;
import
gotowe.p08_funkcje.przyklady.Geometria
;
import
gotowe.p08_funkcje.przyklady.JednostkiMiary
;
public
class
V2_ImportKlas
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Pole kwadratu 5 = "
+
Geometria
.
poleKwadratu
(
5.0
));
System
.
out
.
println
(
"Pole koła 5 = "
+
Geometria
.
poleKola
(
5.0
));
System
.
out
.
println
(
"Pole prostokąta 3×5 = "
+
Geometria
.
poleProstokata
(
3.0
,
5.0
));
System
.
out
.
println
(
"100 mil = "
+
JednostkiMiary
.
mileNaKm
(
100
)
+
" km"
);
System
.
out
.
println
(
"100 km = "
+
JednostkiMiary
.
kmNaMile
(
100
)
+
" mil"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/V3_ImportGwiazdka.java
deleted
100644 → 0
View file @
44b9771d
package
gotowe
.
p08_funkcje
.
importowanie
;
import
gotowe.p08_funkcje.przyklady.*
;
// Import wszystkich klas publicznych z podanego pakietu.
// Jeśli w programie użyjemy nazwy, która znajduje się w różnych pakietach, to mamy konfokt nazw i to się skompiluje.
// Podczas ustalania skąd się wzięła jakaś nazwa kompilator stosuje taką kolejność:
// 1) Klasy zaimportowane wprost (jak w v2)
// 2) Klasy z bieżącego pakietu
// 3) Klasy zaimportowane z * , wśród nich klasy z pakietu java.lang oraz klasy z pakietu domyślnego (którego nie należy używać)
public
class
V3_ImportGwiazdka
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Pole kwadratu 5 = "
+
Geometria
.
poleKwadratu
(
5.0
));
System
.
out
.
println
(
"Pole koła 5 = "
+
Geometria
.
poleKola
(
5.0
));
System
.
out
.
println
(
"Pole prostokąta 3×5 = "
+
Geometria
.
poleProstokata
(
3.0
,
5.0
));
System
.
out
.
println
(
"100 mil = "
+
JednostkiMiary
.
mileNaKm
(
100
)
+
" km"
);
System
.
out
.
println
(
"100 km = "
+
JednostkiMiary
.
kmNaMile
(
100
)
+
" mil"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/V4_ImportStatic.java
deleted
100644 → 0
View file @
44b9771d
package
gotowe
.
p08_funkcje
.
importowanie
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleKola
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleKwadratu
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.
poleProstokata
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
kmNaMile
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.
mileNaKm
;
public
class
V4_ImportStatic
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Pole kwadratu 5 = "
+
poleKwadratu
(
5.0
));
System
.
out
.
println
(
"Pole koła 5 = "
+
poleKola
(
5.0
));
System
.
out
.
println
(
"Pole prostokąta 3×5 = "
+
poleProstokata
(
3.0
,
5.0
));
System
.
out
.
println
(
"100 mil = "
+
mileNaKm
(
100
)
+
" km"
);
System
.
out
.
println
(
"100 km = "
+
kmNaMile
(
100
)
+
" mil"
);
}
}
src/main/java/gotowe/p08_funkcje/importowanie/V5_ImportStaticGwiazdka.java
deleted
100644 → 0
View file @
44b9771d
package
gotowe
.
p08_funkcje
.
importowanie
;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
Geometria
.*;
import
static
gotowe
.
p08_funkcje
.
przyklady
.
JednostkiMiary
.*;
//NK import static gotowe.p08_funkcje.przyklady.*.*;
public
class
V5_ImportStaticGwiazdka
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Pole kwadratu 5 = "
+
poleKwadratu
(
5.0
));
System
.
out
.
println
(
"Pole koła 5 = "
+
poleKola
(
5.0
));
System
.
out
.
println
(
"Pole prostokąta 3×5 = "
+
poleProstokata
(
3.0
,
5.0
));
System
.
out
.
println
(
"100 mil = "
+
mileNaKm
(
100
)
+
" km"
);
System
.
out
.
println
(
"100 km = "
+
kmNaMile
(
100
)
+
" mil"
);
}
}
src/main/java/gotowe/p08_funkcje/przyklady/Geometria.java
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
przyklady
;
import
java.util.Scanner
;
public
class
Geometria
{
private
Geometria
()
{
// aby nikt nie tworzył instancji tej klasy, bo to jest "utility class"
}
public
static
double
poleKwadratu
(
double
a
)
{
return
a
*
a
;
// ew. Math.pow(a, 2)
return
a
*
a
;
}
public
static
double
poleKola
(
double
r
)
{
//JOptionPane.showMessageDialog(null, "Właśnie zabieram się za obliczanie pola koła o promieniu " + r);
return
Math
.
PI
*
Math
.
pow
(
r
,
2
);
public
static
double
obwodKwadratu
(
double
a
)
{
return
4
*
a
;
}
public
static
double
poleProstokata
(
double
a
,
double
b
)
{
return
a
*
b
;
}
public
static
double
obwodKwadratu
(
double
a
)
{
return
4
*
a
;
return
a
*
b
;
}
public
static
double
obwodProstokata
(
double
a
,
double
b
)
{
return
2
*
a
+
2
*
b
;
}
public
static
double
obwod
Kola
(
double
r
)
{
return
2
*
Math
.
PI
*
r
;
public
static
double
pole
Kola
(
double
r
)
{
return
Math
.
PI
*
r
*
r
;
}
// W tej wersji main jest w tej samej klasie, co definicje funkcji,
// dzięki temu można łatwo te funkcje (statyczne) wywoływać.
// Ale dla przejrzystości kodu lepiej funkcje definiować w jednej klasie, a program (main) pisać w innej - zob. ProgramGeometryczny)
public
static
void
main
(
String
[]
args
)
{
Scanner
sc
=
new
Scanner
(
System
.
in
);
System
.
out
.
print
(
"Podaj pierwszą liczbę: "
);
double
x
=
sc
.
nextDouble
();
System
.
out
.
print
(
"Podaj drugą liczbę: "
);
double
y
=
sc
.
nextDouble
();
double
wynik
;
wynik
=
poleKwadratu
(
x
);
System
.
out
.
println
(
"Pole kwadratu o boku "
+
x
+
" wynosi "
+
wynik
);
wynik
=
poleKwadratu
(
y
);
System
.
out
.
println
(
"Pole kwadratu o boku "
+
y
+
" wynosi "
+
wynik
);
wynik
=
poleProstokata
(
x
,
y
);
System
.
out
.
println
(
"Pole prostokąta "
+
x
+
" × "
+
y
+
" wynosi "
+
wynik
);
wynik
=
poleKola
(
x
);
System
.
out
.
println
(
"Pole koła o promieniu "
+
x
+
" wynosi "
+
wynik
);
wynik
=
poleKola
(
y
);
System
.
out
.
println
(
"Pole koła o promieniu "
+
y
+
" wynosi "
+
wynik
);
wynik
=
obwodKwadratu
(
x
);
System
.
out
.
println
(
"Obwód kwadratu o boku "
+
x
+
" wynosi "
+
wynik
);
wynik
=
obwodKwadratu
(
y
);
System
.
out
.
println
(
"Obwód kwadratu o boku "
+
y
+
" wynosi "
+
wynik
);
public
static
double
obwodKola
(
double
r
)
{
return
Math
.
PI
*
2
*
r
;
}
// tak też można pisać, ale po co?...
wynik
=
Geometria
.
obwodProstokata
(
x
,
y
)
;
System
.
out
.
println
(
"Obwód prostokąta "
+
x
+
" × "
+
y
+
" wynosi "
+
wynik
);
public
static
double
poleTrojkata
(
double
a
,
double
b
,
double
c
)
{
double
p
=
obwodTrojkata
(
a
,
b
,
c
)
/
2
;
return
Math
.
sqrt
(
p
*(
p
-
a
)*(
p
-
b
)*(
p
-
c
)
);
}
public
static
double
obwodTrojkata
(
double
a
,
double
b
,
double
c
)
{
return
a
+
b
+
c
;
}
}
src/main/java/gotowe/p08_funkcje/przyklady/GeometriaProgram.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
przyklady
;
import
java.util.Scanner
;
public
class
GeometriaProgram
{
public
static
void
main
(
String
[]
args
)
{
@SuppressWarnings
(
"resource"
)
Scanner
scanner
=
new
Scanner
(
System
.
in
);
petla:
while
(
true
)
{
System
.
out
.
println
(
"\nWybierz figurę lub operację:"
);
System
.
out
.
println
(
" K - kwadrat"
);
System
.
out
.
println
(
" O - koło"
);
System
.
out
.
println
(
" P - prostokąt"
);
System
.
out
.
println
(
" T - trójką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"
->
{
break
petla
;
}
case
"K"
->
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleKwadratu
(
a
);
double
obwod
=
Geometria
.
obwodKwadratu
(
a
);
System
.
out
.
printf
(
"Dla kwadratu o boku %.3f pole wynosi %.3f, a obwód %.3f\n"
,
a
,
pole
,
obwod
);
}
case
"O"
->
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleKola
(
r
);
double
obwod
=
Geometria
.
obwodKola
(
r
);
System
.
out
.
printf
(
"Dla koła o promieniu %.3f pole wynosi %.3f, a obwód %.3f\n"
,
r
,
pole
,
obwod
);
}
case
"P"
->
{
System
.
out
.
print
(
"Podaj dwie długości boków prostokąta: "
);
double
a
=
scanner
.
nextDouble
();
double
b
=
scanner
.
nextDouble
();
double
pole
=
Geometria
.
poleProstokata
(
a
,
b
);
double
obwod
=
Geometria
.
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
);
}
default
->
{
System
.
out
.
println
(
"Nieznane polecenie "
+
wybor
);
}
}
}
System
.
out
.
println
(
"Dzięki, miłego dnia!"
);
}
}
src/main/java/gotowe/p08_funkcje/przyklady/GeometriaTest.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
przyklady
;
public
class
GeometriaTest
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
Geometria
.
poleKwadratu
(
5
));
System
.
out
.
println
(
Geometria
.
poleKwadratu
(
6.5
));
System
.
out
.
println
(
Geometria
.
obwodKwadratu
(
5
));
System
.
out
.
println
(
Geometria
.
obwodKwadratu
(
6.5
));
System
.
out
.
println
();
System
.
out
.
println
(
Geometria
.
poleProstokata
(
3
,
4
));
System
.
out
.
println
(
Geometria
.
poleProstokata
(
6.5
,
3.33
));
System
.
out
.
println
(
Geometria
.
obwodProstokata
(
3
,
4
));
System
.
out
.
println
(
Geometria
.
obwodProstokata
(
6.5
,
3.33
));
System
.
out
.
println
();
}
}
src/main/java/gotowe/p08_funkcje/przyklady/JednostkiMiary.java
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
przyklady
;
public
class
JednostkiMiary
{
private
static
final
double
PRZELICZNIK_KM_MILE
=
1.609344
;
public
static
double
kmNaMile
(
double
km
)
{
return
km
/
1.609344
;
// https://pl.wikipedia.org/wiki/Mila_mi%C4%99dzynarodowa
public
static
double
mile_na_km
(
double
mile
)
{
return
mile
*
PRZELICZNIK_KM_MILE
;
}
public
static
double
mileNaKm
(
double
mile
)
{
return
1.609344
*
mile
;
public
static
double
km_na_mile
(
double
km
)
{
return
km
/
PRZELICZNIK_KM_MILE
;
}
public
static
double
farNaCel
(
double
far
)
{
return
5
.
/
9
.
*
(
far
-
32
d
);
// Stopnie Celsjusza na Fahrenheita i odwrotnie
// https://pl.wikipedia.org/wiki/Skala_Fahrenheita
public
static
double
c_na_f
(
double
c
)
{
// To jest źle, bo dzielenie 9/5 daje wynik 1
// return 32 + 9/5 * c;
// Poprawne zapisy:
// return c * 9 / 5 + 32;
// return 32.0 + 9.0 / 5.0 * c;
// return 32 + 9. / 5. * c;
return
32
+
1.8
*
c
;
}
public
static
double
f_na_c
(
double
f
)
{
// Niepoprawne, bo 5/9 daje wynik 0
// return 5/9 * (f - 32);
// Poprawne zapisy:
// return 5./9. * (f - 32.);
return
(
f
-
32
)
/
1.8
;
}
public
static
double
celNaFar
(
double
cel
)
{
return
32.0
+
(
9.0
/
5.0
*
cel
);
// 32 + 1.8*cel
public
static
void
main
(
String
[]
args
)
{
// Tutaj w main wpiszemy tylko przykładowe wywołania funkcji,
// aby sprawdzić, czy one dobrze działają.
// To nie jest "praktyczny program" dla użytkownika.
System
.
out
.
println
(
"100 mil = "
+
mile_na_km
(
100
)
+
" km"
);
System
.
out
.
println
(
"300 mil = "
+
mile_na_km
(
300
)
+
" km"
);
System
.
out
.
println
(
"100 km = "
+
km_na_mile
(
100
)
+
" mil"
);
System
.
out
.
println
(
"160 km = "
+
km_na_mile
(
160
)
+
" mil"
);
System
.
out
.
printf
(
"%.1f km = %.1f mil\n"
,
160.0
,
km_na_mile
(
160
));
System
.
out
.
println
();
System
.
out
.
println
(
" 0 C = "
+
c_na_f
(
0
)
+
" F"
);
System
.
out
.
println
(
" 37 C = "
+
c_na_f
(
37
)
+
" F"
);
System
.
out
.
println
(
"100 C = "
+
c_na_f
(
100
)
+
" F"
);
System
.
out
.
println
();
System
.
out
.
println
(
" 0 F = "
+
f_na_c
(
0
)
+
" C"
);
System
.
out
.
println
(
" 50 F = "
+
f_na_c
(
50
)
+
" C"
);
System
.
out
.
println
(
"100 F = "
+
f_na_c
(
100
)
+
" C"
);
}
}
src/main/java/gotowe/p08_funkcje/przyklady/Palindrom.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
przyklady
;
import
java.util.Scanner
;
public
class
Palindrom
{
static
boolean
palindrom_v1
(
String
napis
)
{
for
(
int
i
=
0
;
i
<
napis
.
length
();
i
++)
{
if
(
napis
.
charAt
(
i
)
!=
napis
.
charAt
(
napis
.
length
()
-
i
-
1
))
{
return
false
;
}
}
// gdy nie było żadnej niezgodności i doszliśmy do końca pętli, wtedy możemy zwróić true
return
true
;
}
static
boolean
palindrom_v2
(
String
napis
)
{
final
int
length
=
napis
.
length
();
for
(
int
i
=
0
;
i
<
length
/
2
;
i
++)
{
if
(
napis
.
charAt
(
i
)
!=
napis
.
charAt
(
length
-
i
-
1
))
{
return
false
;
}
}
return
true
;
}
static
boolean
palindrom
(
String
napis
)
{
for
(
int
left
=
0
,
right
=
napis
.
length
()-
1
;
left
<
right
;
left
++,
right
--)
{
if
(
napis
.
charAt
(
left
)
!=
napis
.
charAt
(
right
))
{
return
false
;
}
}
return
true
;
}
public
static
void
main
(
String
[]
args
)
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
System
.
out
.
println
(
"Pusty tekst kończy program"
);
while
(
true
)
{
System
.
out
.
println
(
"Podaj tekst:"
);
String
txt
=
scanner
.
nextLine
();
if
(
txt
.
isEmpty
())
break
;
if
(
palindrom
(
txt
))
{
System
.
out
.
println
(
"Tekst JEST palindromem"
);
}
else
{
System
.
out
.
println
(
"Tekst NIE jest palindromem"
);
}
}
System
.
out
.
println
(
"Koniec"
);
}
}
src/main/java/gotowe/p08_funkcje/przyklady/ProgramGeometryczny.java
deleted
100644 → 0
View file @
44b9771d
package
gotowe
.
p08_funkcje
.
przyklady
;
import
java.util.Locale
;
import
java.util.Scanner
;
public
class
ProgramGeometryczny
{
public
static
void
main
(
String
[]
args
)
{
Scanner
sc
=
new
Scanner
(
System
.
in
);
sc
.
useLocale
(
Locale
.
US
);
glownaPetla:
while
(
true
)
{
System
.
out
.
println
(
"Wybierz figurę:\n Q - zakończ,\n K - kwadrat,\n P - prostokąt,\n O - koło"
);
String
wybor
=
sc
.
nextLine
().
trim
().
toUpperCase
();
switch
(
wybor
)
{
case
"Q"
:
{
break
glownaPetla
;
// etykieta / label
}
case
"K"
:
{
System
.
out
.
print
(
"Podaj długość boku kwadratu: "
);
double
a
=
sc
.
nextDouble
();
double
pole
=
Geometria
.
poleKwadratu
(
a
);
double
obwod
=
Geometria
.
obwodKwadratu
(
a
);
System
.
out
.
println
(
"Pole kwadratu wynosi: "
+
pole
);
System
.
out
.
println
(
"Obwód kwadratu wynosi: "
+
obwod
);
break
;
}
case
"P"
:
{
System
.
out
.
print
(
"Podaj długość dwóch boków prostokąta: "
);
double
a
=
sc
.
nextDouble
();
double
b
=
sc
.
nextDouble
();
double
pole
=
Geometria
.
poleProstokata
(
a
,
b
);
double
obwod
=
Geometria
.
obwodProstokata
(
a
,
b
);
System
.
out
.
println
(
"Pole prostokąta wynosi: "
+
pole
);
System
.
out
.
println
(
"Obwód prostokąta wynosi: "
+
obwod
);
break
;
}
case
"O"
:
{
System
.
out
.
print
(
"Podaj promień koła: "
);
double
r
=
sc
.
nextDouble
();
double
pole
=
Geometria
.
poleKola
(
r
);
double
obwod
=
Geometria
.
obwodKola
(
r
);
System
.
out
.
println
(
"Pole koła wynosi: "
+
pole
);
System
.
out
.
println
(
"Obwód koła wynosi: "
+
obwod
);
break
;
}
default
:
{
System
.
out
.
println
(
"Nieznane polecenie"
);
continue
glownaPetla
;
}
}
sc
.
nextLine
();
// żeby Scanner wczytał wszystkie pozostałości i przeszedł do nast. linii
}
}
}
/*
użycie if zamiast switch wyglądałoby tak:
if("K".equals(wybor)) {
System.out.println("Wybrano kwadrat");
} else if("O".equals(wybor)) {
System.out.println("Wybrano koło");
}
*/
src/main/java/gotowe/p08_funkcje/przyklady/ProgramOkienkowy.java
0 → 100644
View file @
d1b742fc
package
gotowe
.
p08_funkcje
.
przyklady
;
import
java.util.Random
;
import
javax.swing.JOptionPane
;
public
class
ProgramOkienkowy
{
public
static
void
main
(
String
[]
args
)
{
Random
random
=
new
Random
();
String
[]
figury
=
{
"kwadrat"
,
"koło"
,
"prostokąt"
,
"trójkąt"
};
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
=
Geometria
.
poleKwadratu
(
a
);
double
obwod
=
Geometria
.
obwodKwadratu
(
a
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"koło"
->
{
double
r
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj promień koła:"
));
double
pole
=
Geometria
.
poleKola
(
r
);
double
obwod
=
Geometria
.
obwodKola
(
r
);
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
=
Geometria
.
poleProstokata
(
a
,
b
);
double
obwod
=
Geometria
.
obwodProstokata
(
a
,
b
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
case
"trójkąt"
->
{
double
a
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość 1. boku:"
));
double
b
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość 2. boku:"
));
double
c
=
Double
.
parseDouble
(
JOptionPane
.
showInputDialog
(
"Podaj długość 3. boku:"
));
double
pole
=
Geometria
.
poleTrojkata
(
a
,
b
,
c
);
double
obwod
=
Geometria
.
obwodTrojkata
(
a
,
b
,
c
);
JOptionPane
.
showMessageDialog
(
null
,
"Pole: "
+
pole
+
"\nObwód: "
+
obwod
);
}
}
}
}
src/main/java/gotowe/p08_funkcje/przyklady/TestyGeometrii.java
deleted
100644 → 0
View file @
44b9771d
package
gotowe
.
p08_funkcje
.
przyklady
;
public
class
TestyGeometrii
{
// Będąc w jednej klasie, można wywoływać metody zdefiniowane w innej klasie,
// zgodnie z ograniczeniami widoczności (private/public)
// Jeśli metoda nie jest prywatna, to można jej używać w tym samym pakiecie,
// a jeśli jest publiczna, to można używać wszędzie.
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Pole kwadratu 5 = "
+
Geometria
.
poleKwadratu
(
5.0
));
System
.
out
.
println
(
"Pole kwadratu 6.5 = "
+
Geometria
.
poleKwadratu
(
6.5
));
System
.
out
.
println
(
"Pole koła 5 = "
+
Geometria
.
poleKola
(
5.0
));
System
.
out
.
println
(
"Pole prostokąta 3×5 = "
+
Geometria
.
poleProstokata
(
3.0
,
5.0
));
System
.
out
.
println
();
// Testy preliczania jednstek też przeniosłem do tej klasy, żeby pokazać, że w klasie JednostkiMiary może nie być main, tylko same funkcje.
System
.
out
.
println
(
"100 mil = "
+
JednostkiMiary
.
mileNaKm
(
100
)
+
" km"
);
System
.
out
.
println
(
"100 km = "
+
JednostkiMiary
.
kmNaMile
(
100
)
+
" mil"
);
System
.
out
.
println
(
"160 km = "
+
JednostkiMiary
.
kmNaMile
(
160
)
+
" mil"
);
System
.
out
.
println
();
System
.
out
.
println
(
"0 F = "
+
JednostkiMiary
.
farNaCel
(
0
)
+
" C"
);
System
.
out
.
println
(
"100 F = "
+
JednostkiMiary
.
farNaCel
(
100
)
+
" C"
);
// ok 37
System
.
out
.
println
(
"0 C = "
+
JednostkiMiary
.
celNaFar
(
0
)
+
" F"
);
System
.
out
.
println
(
"37 C = "
+
JednostkiMiary
.
celNaFar
(
37
)
+
" F"
);
// ok 100
System
.
out
.
println
(
"100 C = "
+
JednostkiMiary
.
celNaFar
(
100
)
+
" F"
);
// 212 ?
}
}
src/main/java/p08_funkcje/Silnia.java
0 → 100644
View file @
d1b742fc
package
p08_funkcje
;
import
java.util.Scanner
;
public
class
Silnia
{
// silnia to iloczyn liczb naturalnych od 1 do n
// silnia(n) = 1 * 2 * ... * n
// np. silnia(5) = 1*2*3*4*5 = 120
static
int
silnia
(
int
n
)
{
int
iloczyn
=
1
;
for
(
int
i
=
1
;
i
<=
n
;
i
++)
{
// ???
}
return
iloczyn
;
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Liczba ujemna przerywa..."
);
Scanner
scanner
=
new
Scanner
(
System
.
in
);
while
(
true
)
{
System
.
out
.
print
(
"Podaj argument: "
);
int
n
=
scanner
.
nextInt
();
if
(
n
<
0
)
break
;
var
wynik
=
silnia
(
n
);
System
.
out
.
println
(
"silnia("
+
n
+
") = "
+
wynik
);
}
}
}
src/main/java/p08_funkcje/SilniaBig.java
0 → 100644
View file @
d1b742fc
package
p08_funkcje
;
import
java.math.BigInteger
;
import
java.util.Scanner
;
public
class
SilniaBig
{
static
BigInteger
silnia
(
int
n
)
{
BigInteger
iloczyn
=
BigInteger
.
ONE
;
for
(
int
i
=
1
;
i
<=
n
;
i
++)
{
iloczyn
=
iloczyn
.
multiply
(
BigInteger
.
valueOf
(
i
));
}
return
iloczyn
;
}
public
static
void
main
(
String
[]
args
)
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
System
.
out
.
println
(
"Ujemna liczba kończy program"
);
while
(
true
)
{
System
.
out
.
print
(
"Podaj liczbę: "
);
int
arg
=
scanner
.
nextInt
();
if
(
arg
<
0
)
break
;
BigInteger
wynik
=
silnia
(
arg
);
System
.
out
.
println
(
"silnia("
+
arg
+
") = "
+
wynik
);
}
System
.
out
.
println
(
"Koniec"
);
}
}
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