Dobrý den,
mohl bych poprosit, koukl by se mi někdo na kód, který sem vytvořil a řekl zda je to správně nebo co mi tam chybí, co bych měl dodělat, popřípadě mi poradit jak na to? Děkuji. Přeji hezký den.
Zadání:
Ve třídě Scitacka v projektu scitacka_velkych_cisel implementujte veřejnou statickou metodu, která bude vracet hodnotu výrazu 1 + 1 + 1 +.......+ 1 + 1 + 1. Počet jedniček, které se mají sečíst bude dán parametrem metody, který bude typu BigInteger. Výpočet hodnoty výrazu se provede s využitím instance typu Scitackapostupným sčítáním. Navrhněte testovací metodu pro ověření správnosti implementované metody.
package scitacka;
import java.math.BigInteger;
/**
* Trida Scitacka predstavuje model scitacky, ktera pouze umi secist dve cela
* cisla typu BigInteger. Kazda instance teto tridy uchovava dve cela cisla typu
* BigInteger, ktera se daji menit a je mozne kdykoliv urcit jejich soucet
* pomoci metody soucet().
*
* @version 15.2.2016
*/
public class Scitacka {
// instancni promenne, ktere uchovavaji dve cisla, ktera se budou scitat
private BigInteger cislo1;
private BigInteger cislo2;
/**
* Konstruktor pro objekty tridy Scitacka, ktery nastavi hodnoty obou
* scitanych cisel na hodnoty dane parametry cislo1 a cislo2.
*
* @param cislo1 levy scitanec
* @param cislo2 pravy scitanec
*/
public Scitacka(BigInteger cislo1, BigInteger cislo2) {
this.cislo1 = cislo1;
this.cislo2 = cislo2;
}
/**
* Konstruktor pro objekty tridy Scitacka, ktery nastavi hodnoty obou
* scitanych cisel na nulu.
*/
public Scitacka() {
cislo1 = BigInteger.ZERO;
cislo2 = BigInteger.ZERO;
//this(BigInteger.ZERO, BigInteger.ZERO);
}
/**
* Konstruktor pro objekty tridy Scitacka, ktery nastavi hodnoty obou
* scitanych cisel na hodnotu danou parametrem cislo.
*
* @param cislo spolecna hodnota obou scitancu
*/
public Scitacka(BigInteger cislo) {
this.cislo1 = cislo;
this.cislo2 = cislo;
//this(cislo, cislo);
}
/**
* Vraci hodnotu leveho scitance.
*
* @return Metoda vraci hodnotu scitance cislo1 z vyrazu cislo1 + cislo2,
* ktery se da vyhodnotit pomoci metody soucet().
*/
public BigInteger getCislo1() {
return cislo1;
}
/**
* Vraci hodnotu praveho scitance.
*
* @return Metoda vraci hodnotu scitance cislo2 z vyrazu cislo1 + cislo2,
* ktery se da vyhodnotit pomoci metody soucet().
*/
public BigInteger getCislo2() {
return cislo2;
}
/**
* Metoda nastavi hodnotu leveho scitance pomoci parametru cislo1.
*
* @param cislo1 hodnota typu BigInteger, ktera se pouzije k nastaveni
* leveho scitance
*/
public void setCislo1(BigInteger cislo1) {
this.cislo1 = cislo1;
}
/**
* Metoda nastavi hodnotu leveho scitance pomoci parametru cislo1.
*
* @param cislo1 hodnota typu BigInteger, ktera se pouzije k nastaveni
* leveho scitance
* @param cislo2 hodnota typu BigInteger, ktera se pouzije k nastaveni
* praveho scitance
*/
public void setCislo1ACislo2(BigInteger cislo1, BigInteger cislo2) {
this.cislo1 = cislo1;
this.cislo2 = cislo2;
// setCislo1(cislo1);
// setCislo2(cislo2);
}
/**
* Metoda nastavi hodnotu praveho scitance pomoci parametru cislo2.
*
* @param cislo2 hodnota typu BigInteger, ktera se pouzije k nastaveni
* praveho scitance
*/
public void setCislo2(BigInteger cislo2) {
this.cislo2 = cislo2;
}
/**
* Vraci soucet dvou cisel typu BigInteger, ktera jsou ulozena v instanci.
*
* @return Vraci hodnotu typu BigInteger, ktera predstavuje soucet obou
* cisel ulozenych v instanci.
*/
public BigInteger soucet() {
return cislo1.add(cislo2);
}
/**
* Vraci znakovou reprezentaci instance, ktera popisuje jeji stav.
*
* @return Vraci objekt typu String, ktery obsahuje hodnoty obou scitanych
* cisel. Priklad: "Scitacka{cislo1 = 23, cislo2 = 123}".
*/
@Override
public String toString() {
return "Scitacka{" + "cislo1=" + cislo1 + ", cislo2=" + cislo2 + '}';
}
/**
* Testovaci metoda, ktera vytvori novou scitacku, kterou inicializuje
* pomoci parametru levyScitanec a pravyScitenec. Potom vytiskne oba
* scitance a jejich soucet.
*
* @param levyScitanec levy scitanec
* @param pravyScitanec pravy scitanec
*/
public static void testScitacka(BigInteger levyScitanec, BigInteger pravyScitanec) {
Scitacka scitacka = new Scitacka(levyScitanec, pravyScitanec);
System.out.println(scitacka);
BigInteger cislo1 = scitacka.getCislo1();
BigInteger cislo2 = scitacka.getCislo2();
BigInteger soucet = scitacka.soucet();
System.out.println("součet čísel " + cislo1 + " a " + cislo2 + " = " + soucet);
System.out.println();
}
/**
*
* @param args the command line arguments
*/
public static void main(String[] args) {
testScitacka(BigInteger.ZERO, BigInteger.ZERO);
testScitacka(new BigInteger("5"), new BigInteger("5"));
testScitacka(new BigInteger("5"), new BigInteger("10"));
testScitacka(new BigInteger("111111111111111111"), new BigInteger("222222222222222222222222"));
testScitacka(new BigInteger("" + Integer.MAX_VALUE), BigInteger.ONE);
testScitacka(new BigInteger("" + Integer.MAX_VALUE), new BigInteger("" + Integer.MAX_VALUE));
testScitacka(new BigInteger("" + Integer.MIN_VALUE), new BigInteger("" + Integer.MIN_VALUE));
}
}