Hej, szukałem na forum ale niestety nie znalazłem pełnej odpowiedzi, tylko fragment.
Zadanie mam na 1 roku studiów z programowania Javy.
Nie mogę zmieniać nic w kodzie oprócz miejsc gdzie mam wprowadzić kod. wiem że nie jest to kod zgodnie z konwencją.
Dane są dwa przedziały domknięte liczb rzeczywistych o końcach całkowitych: p1, p2. Napisać program określający początek, koniec przedziałów oraz iloczyn teoriomnogościowy p1, p2 (początek zawsze jest nie większy niż koniec). Końce przedziałów a1, b1, a2, b2 podać w inicjacji odpowiednich zmiennych (typu int) w programie.
Stworzyć klasę Przedzial w taki sposób, aby następująca metoda main z klasy Main:
'''public class Main {
public static void main(String[] args)
{
int a1 = 4 /*<- jeden koniec pierwszego przedziału /;
int b1 = 2 /<- drugi koniec pierwszego przedziału /;
int a2 = 3 /<- jeden koniec drugiego przedziału /;
int b2 = 5 /<- drugi koniec drugiego przedziału */;
Przedzial p1 = new Przedzial(a1,b1), p2 = new Przedzial(a2,b2);
System.out.println("Przedział " + p1 + " ma " + "początek " + p1.poczatek() + " i koniec " + p1.koniec());
System.out.println("Przecięcie " + p1 + " i " + p2 + " = " + (p1.przeciecie(p2)!=null?p1.przeciecie(p2):"pusty przedział"));
}
}
wyprowadziła prawidłową informację według następującego formatu:
Przedział [2,4] ma początek 2 i koniec 4
Przecięcie [2,4] i [3,5] = [3,4]
Metoda przeciecie(...) klasy Przedzial powinna zwrócić null w przypadku rozłącznych przedziałów.
public class Przedzial {
private int pocz, koniec;
public Przedzial(int a, int b)
{
/*<- kod konstruktora */
}
Przedzial przeciecie(Przedzial p)
{
/*<- kod metody przeciecie(...) */
}
/*<- kod innych metod */
}'''
Moje rozwiązanie:
public Przedzial(int a, int b) {
this.pocz = a;
this.koniec = b;
}
// Przedzial przeciecie(Przedzial p) {
//
//
// /*<- kod metody przeciecie(...) */
// }
public int poczatek() {
return Math.min(pocz, koniec);
}
public int koniec() {
return Math.max(pocz, koniec);
}
/*<- kod innych metod */
}
Pytanka mam dwa:
- Dlaczego funkcja print wyświetla mi "Przedział‚ Zadania1.Zad2.Przedzial@eed1f14 ma początek 8 i koniec 9" zamiast podać wartość przedziału?
- jak zrobić drugą część z przecięciem? zakładam że jakoś musze uzupełnić tablicę albo liste?