Commit cd93913d by Patryk Czarnik

Przykłady funkcji "Geometria" i "JednoskiMiary"

parent 11710822
package p08_funkcje.przyklady;
public class Geometria {
public static double poleKwadratu(double a) {
return a*a;
}
public static double obwodKwadratu(double a) {
return 4*a;
}
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;
}
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;
}
}
package 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!");
}
}
package 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();
}
}
package p08_funkcje.przyklady;
public class JednostkiMiary {
private static final double PRZELICZNIK_KM_MILE = 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 km_na_mile(double km) {
return km / PRZELICZNIK_KM_MILE;
}
// 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 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");
}
}
package 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);
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment