Commit e8a96942 by Patryk Czarnik

rozwiązania zadań domowych 1

parent 0ddb4424
package domowe.r1.z02_trojkat;
import java.util.Locale;
import java.util.Scanner;
/*
Napisz program, który prosi użytkownika (w konsoli lub okienku) o podanie trzech liczb,
po czym informuje go (wyświetlając komunikat w ten sposób, w jaki nastąpiło wczytanie liczb),
czy mogą one być długościami boków trójkąta.
Przykładem liczb, które nie mogą być długościami boków trójkąta, są: 1, 2, 5
- program ma wyświetlać prawidłową odpowiedź dla dowolnej kolejności wpisywania liczb.
Jeśli długości boków tworzą trójkąt, to oblicz pole powierzchni (wzór Herona).
*/
public class Trojkat1 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
sc.useLocale(Locale.US);
System.out.println("Podaj trzy liczby, długości boków trójkąta:");
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
if(a + b > c && b + c > a && c + a > b) {
System.out.println("OK, te liczby mogą być długościami boków trójkąta");
double p = (a + b + c) / 2.0;
double pole = Math.sqrt((p - a) * (p - b) * (p - c) * p);
System.out.println("Pole powierzchni wynosi: " + pole);
} else {
System.out.println("Te liczby nie mogą być długościami boków trójkąta");
}
}
}
package domowe.r1.z02_trojkat;
import java.util.Locale;
import java.util.Scanner;
/*
W programie z zadania 1. wydziel sprawdzanie, czy liczby mogą być długościami boków trójkąta,
do osobnej funkcji. Jakiego typu wartość ma zwracać ta funkcja?
Ile ma przyjmować argumentów i jakich mają one być typów?
Przy okazji wydzielam także obliczanie pola.
*/
public class Trojkat2_WersjaZFunkcjami {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
sc.useLocale(Locale.US);
System.out.println("Podaj trzy liczby, długości boków trójkąta:");
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
if(czyToJestTrojkat(a, b, c)) {
System.out.println("OK, te liczby mogą być długościami boków trójkąta");
double pole = poleTrojkata(a, b, c);
System.out.println("Pole powierzchni wynosi: " + pole);
} else {
System.out.println("Te liczby nie mogą być długościami boków trójkąta");
}
}
static boolean czyToJestTrojkat(double a, double b, double c) {
return a + b > c && b + c > a && c + a > b;
}
static double poleTrojkata(double a, double b, double c) {
double p = (a + b + c) / 2.0;
double pole = Math.sqrt((p - a) * (p - b) * (p - c) * p);
return pole;
}
}
package domowe.r1.z04_remont;
import javax.swing.JOptionPane;
public class FirmaRemontowa1 {
public static void main(String[] args) {
double dlug = Double.parseDouble(JOptionPane.showInputDialog("Podaj długość pokoju"));
double szer = Double.parseDouble(JOptionPane.showInputDialog("Podaj szerokość pokoju"));
double wys = Double.parseDouble(JOptionPane.showInputDialog("Podaj wysokość pokoju"));
double obwod = 2 * dlug + 2 * szer;
double pow_podlogi = dlug * szer;
double pow_scian = obwod * wys;
double koszt = pow_scian * 30.0 + (pow_scian + pow_podlogi) * 15.0 + pow_podlogi * 20.0 + obwod * 10.0;
JOptionPane.showMessageDialog(null, "Sumaryczny koszt robót: " + koszt + " zł");
}
}
package domowe.r1.z04_remont;
import javax.swing.JOptionPane;
public class FirmaRemontowa2 {
public static void main(String[] args) {
double szerokosc = Double.parseDouble(JOptionPane.showInputDialog("Podaj szerokość pomieszczenia"));
double dlugosc = Double.parseDouble(JOptionPane.showInputDialog("Podaj długość pomieszczenia"));
double wysokosc = Double.parseDouble(JOptionPane.showInputDialog("Podaj wysokość", "2.50"));
double powierchniaPodlogi = dlugosc * szerokosc;
double obwod = 2*dlugosc + 2*szerokosc;
double powierzchniaScian = obwod * wysokosc;
double cena_gipsowanie = 30;
double cena_malowanie = 15;
double cena_panele = 20;
double cena_listwy = 10;
double suma = 0;
if(JOptionPane.showConfirmDialog(null, "Czy chcesz wykonać gipsowanie?") == JOptionPane.YES_OPTION) {
double kosztGipsowania = cena_gipsowanie * powierzchniaScian;
suma += kosztGipsowania;
}
if(JOptionPane.showConfirmDialog(null, "Czy chcesz wykonać malowanie?") == JOptionPane.YES_OPTION) {
double kosztMalowania = cena_malowanie * (powierzchniaScian + powierchniaPodlogi);
suma += kosztMalowania;
}
if(JOptionPane.showConfirmDialog(null, "Czy chcesz położyć panele i listwy podłogowe?") == JOptionPane.YES_OPTION) {
double kosztPaneli = cena_panele * powierchniaPodlogi;
double kosztListew = cena_listwy * obwod;
suma += kosztPaneli + kosztListew;
}
JOptionPane.showMessageDialog(null,
String.format("Koszt sumaryczny wynosi %.2f", suma));
}
}
package domowe.r1.z04_remont;
import java.util.Locale;
import javax.swing.JOptionPane;
public class FirmaRemontowa3 {
private static final double CENA_GIPS = 30.0;
private static final double CENA_MALOWANIE = 15.0;
private static final double CENA_PANELE = 20.0;
private static final double CENA_LISTWY = 10.0;
public static void main(String[] args) {
Locale.setDefault(Locale.US); // aby ułamki dziesiętne wszędzie były z kropką
double dlug = Double.parseDouble(JOptionPane.showInputDialog("Podaj długość pokoju"));
double szer = Double.parseDouble(JOptionPane.showInputDialog("Podaj szerokość pokoju"));
double wys = Double.parseDouble(JOptionPane.showInputDialog("Podaj wysokość pokoju", "2.50"));
double obwod = 2 * dlug + 2 * szer;
double pow_podlogi = dlug * szer;
double pow_scian = obwod * wys;
double koszt = 0.0;
double koszt_gips = pow_scian * CENA_GIPS;
if(zapytaj("Gipsowanie", koszt_gips)) {
koszt += koszt_gips;
}
double koszt_mal = (pow_scian + pow_podlogi) * CENA_MALOWANIE;
if(zapytaj("Malowanie", koszt_mal)) {
koszt += koszt_mal;
}
double koszt_panel = pow_podlogi * CENA_PANELE;
if(zapytaj("Założenie paneli", koszt_panel)) {
koszt += koszt_panel;
}
double koszt_listw = obwod * CENA_LISTWY;
if(zapytaj("Założenie listew", koszt_listw)) {
koszt += koszt_listw;
}
JOptionPane.showMessageDialog(null, String.format("Sumaryczny koszt robót: %.2f zł", koszt));
}
static boolean zapytaj(String robota, double cena) {
String txt = String.format("%s kosztowałoby %.2f zł\nCzy chcesz wykonać tę pracę?", robota, cena);
int wybor = JOptionPane.showConfirmDialog(null, txt, "Pytanie", JOptionPane.YES_NO_OPTION);
return wybor == JOptionPane.YES_OPTION;
}
}
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