|
Charlie - 14 Sty 2008, 09:50 Witam, mam nastepujace zadanie: Napisz klasę realizującą obliczenia na wielkich liczbach. Liczby przechowywane są jako łańcuchy znaków o dowolnej długości. Klasa powinna zawierać funkcje umożliwiające dodawanie, odejmowanie, mnożenie i dzielenie dwóch wielkich liczb. Operacje mnożenia i dzielenia są obowiązkowe w projektach na ocenę 4. Dodatkowo w projektach na lepsza ocene wszystkie implementowane operacje obowiązkowo powinny działać dla liczb ujemnych. Co to jest duża liczba całkowita? Dużą liczbą całkowitą nazywamy liczbę, która: 1) nie mieści się w żadnym z zakresów typów domyślnie dostępnych w 2) pamiętane są wszystkie cyfry bez względu na pozycję i bez żadnych Oznacza to, że jedynym typem zdolnym spełnić wszystkie te wymogi jest Przykład: public class Projekt{ public static void main(String[] args) { DuzaLiczba dl1 = new DuzaLiczba(); DuzaLiczba dl2 = new DuzaLiczba(1500); DuzaLiczba dl3 = new System.out.println("Linia 1: "+dl1) ; System.out.println("Linia 2: "+dl2) ; System.out.println("Linia 3: "+dl3) ; dl1 = dl2.dodaj(dl3); System.out.println("Linia 4: "+dl1) ; System.out.println("Linia 5: "+dl2) ; DuzaLiczba dl4= dl2.odejmij(dl3); System.out.println("Linia 6: "+dl4) ; System.out.println("Linia 7: "+dl2) ; dl1 = dl2.mnoz(new DuzaLiczba("2")); System.out.println("Linia 8: "+dl1) ; System.out.println("Linia 9: "+dl2) ; dl4= dl2.podziel(new DuzaLiczba("3")); System.out.println("Linia 10: "+dl4); System.out.println("Linia 11: "+dl2); dl4=dl1.dodaj(dl2).odejmij(dl2).mnoz(dl2).podziel(dl3); System.out.println("Linia 12: "+dl4); System.out.println("Linia 13: "+dl1); System.out.println("Linia 14: "+DuzaLiczba.silnia(new System.out.println("Linia 15: "+DuzaLiczba.fibbonaci(new dl1 = new DuzaLiczba("1234"); dl4 = new DuzaLiczba("1235"); dl4 = DuzaLiczba.odejmij(dl4, new DuzaLiczba("1")); if(dl1.jestRowna(dl4)==true) System.out.println("Linia 16: dl1 jest rowna dl4"); else System.out.println("Linia 16: dl1 jest rozna od dl4"); DuzaLiczba.podziel(dl4, new DuzaLiczba("2")); if(dl1.jestMniejsza(dl4)==true) System.out.println("Linia 17: dl1 jest mniejsza od else System.out.println("Linia 17: dl1 jest wieksza od dl4"); DuzaLiczba.mnoz(dl4, new DuzaLiczba("3")); if(dl1.jestMniejsza(dl4)==true) System.out.println("Linia 18: dl1 jest wieksza od dl4"); else System.out.println("Linia 18: dl1 jest mniejsza od } } class DuzaLiczba{ .... } Podszedlem do tego w ten sposob ze potworzylem konstruktory najpierw: public String liczba; public DuzaLiczba(){ public DuzaLiczba(int a){ public DuzaLiczba (String s){ //I TUTAJ POWINNO BYC DODAWANIE: public void dodaj(DuzaLiczba a){ Zastanawiam sie co z tym zrobic dalej. Mam te liczby zapisane w Jesli juz mam dwie rowne tablice to chyba moge je juz dodwac. Czy Moze nie bawic sie tutaj tablicami char, tylko zrobic to poprostu na Wiem ze zeby zrobic ze znaku liczbe to trzeba odjac od niej kod ascii Brzezi - 14 Sty 2008, 10:55 //I TUTAJ POWINNO BYC DODAWANIE: public void dodaj(DuzaLiczba a){ char[]l1 = liczba.toCharArray(); char[]l2 = a.liczba.toCharArray(); ) Zastanawiam sie co z tym zrobic dalej. Mam te liczby zapisane w Jesli juz mam dwie rowne tablice to chyba moge je juz dodwac. Czy Podstawowka sie klania -dodawanie pod kreska Pozdrawiam kalarus - 15 Sty 2008, 02:05 Witam, mam nastepujace zadanie: [ciach] 2) pamietane sa wszystkie cyfry bez wzgledu na pozycje i bez zadnych zaokraglen. przy dzieleniu tez? Charlie - 15 Sty 2008, 11:56 przy dzieleniu tez? Dzielenie jest w sumie najtrudniejsze i najmniej mi na nim zalezy, Przede wszystkim nie wiem jak zrobic to dodawanie Przemysław Kowalczyk - 15 Sty 2008, 12:27 Dzielenie jest w sumie najtrudniejsze i najmniej mi na nim zalezy, wez dlugopis i kartke, napisz na niej tak: 48437439 jak to obliczysz, to zaimplementuj taki sam algorytm w swojej klasie :) pzdr Mentos - 16 Sty 2008, 06:20 Witam, mam nastepujace zadanie: Napisz klasę realizującą obliczenia na wielkich liczbach. Liczby przechowywane są jako łańcuchy znaków o dowolnej długości. Klasa powinna zawierać funkcje umożliwiające dodawanie, odejmowanie, mnożenie i dzielenie dwóch wielkich liczb. Operacje mnożenia i dzielenia są obowiązkowe w projektach na ocenę 4. Dodatkowo w projektach na lepsza ocene wszystkie implementowane operacje obowiązkowo powinny działać dla liczb ujemnych. Co to jest duża liczba całkowita? Dużą liczbą całkowitą nazywamy liczbę, która: 1) nie mieści się w żadnym z zakresów typów domyślnie dostępnych w 2) pamiętane są wszystkie cyfry bez względu na pozycję i bez żadnych A BigInteger nie spelnia wymogow?? pozdrawiam Leonard Milcin - 16 Sty 2008, 06:34 | Witam, mam nastepujace zadanie: | Napisz klasę realizującą obliczenia na wielkich liczbach. Liczby | przechowywane są jako łańcuchy znaków o dowolnej długości. Klasa | powinna zawierać funkcje umożliwiające dodawanie, odejmowanie, | mnożenie i dzielenie dwóch wielkich liczb. Operacje mnożenia i | dzielenia są obowiązkowe w projektach na ocenę 4. Dodatkowo w | projektach na lepsza ocene wszystkie implementowane operacje | obowiązkowo powinny działać dla liczb ujemnych. | Co to jest duża liczba całkowita? | Dużą liczbą całkowitą nazywamy liczbę, która: | 1) nie mieści się w żadnym z zakresów typów domyślnie dostępnych w | 2) pamiętane są wszystkie cyfry bez względu na pozycję i bez żadnych A BigInteger nie spelnia wymogow?? Raczej nie. Wątpię, żeby nauczyciel zaakceptował wrapper naokoło istniejącego rozwiązania;-) Pozdrawiam, jvv - 16 Sty 2008, 07:03 | A BigInteger nie spelnia wymogow?? Raczej nie. Wątpię, żeby nauczyciel zaakceptował wrapper naokoło Nauczyciel zapewne nie wie, ze istnieje klasa BigInteger - uczyl sie pewnie javy z kasiazki: java - to proste :)))) Leonard Milcin - 16 Sty 2008, 08:09 | A BigInteger nie spelnia wymogow?? | Raczej nie. Wątpię, żeby nauczyciel zaakceptował wrapper naokoło | istniejącego rozwiązania;-) Nauczyciel zapewne nie wie, ze istnieje klasa BigInteger - uczyl sie pewnie Hmm... jestem przekonany, że nauczyciel Wie, co to jest BigInteger (a w każdym bądź razie nie widzę powodów by sądzić, że nie wie) a jego celem jest zmuszenie uczniów do myślenia i zaimplementowania własnej wersji wedle własnych możliwości. Uważam, że to całkiem dobry pomysł na zadanie. Pozdrawiam, String (replace() i replaceAll()) map.put(int, value) vs map.put(string, value) String line; if (line=="cos"){...}....problem Eclipse i kompilacja |