interpretacja zadania z tablicą

0

Prosze o wyjasnienie co do mnozenia tablicy. Mam wymnozyc kazdy element tablicy przez wartosc int? Jesli tak to co mam rozumiec przez to ze tablica moze byc za mala ?
Oto tresc: Zdefiniuj klasę Liczba, która przechowuje w tablicy cyfry liczby dziesiętnej. Zdefiniuj operacje
wypisywania liczby, nadawania jej wartości (w postaci parametru konstruktora będącego napisem)
oraz mnożenia przez liczbę typu int. W przypadku gdy w czasie mnożenia okaże się, że tablica jest
za mała, procedura mnożąca powinna kopiować jej zawartość do większej. Zdefiniuj wreszcie
metodę silnia, która policzy silnię zadanej jako parametr liczby typu int.

0

Chodzi o to, że liczbę np. 123456 zapisujesz w tablicy w ten sposób, że pod pierwszym adresem tablicy jest liczba 1, pod 2 adresem jest liczba 2...

t[0] = 1
t[1] = 2
...
t[5] = 6

i jeśli ją pomnożysz, np o 10 to będziesz potrzebował tablicy o jedną komórkę większej, bo będziesz miał do zapisania 1234560, czyli:

t[0] = 1
...
t[5] = 6
t[6] = 0
0

Mnoząc macierz która ma tylko jeden wiersz przez liczbe: 3*[1234]= [12340] na koncu co wyjdzie? Niestety zapomnialem jak sie tego uczylem. Jak mozna to znalezc, wpisac w google ? Bo nie moge znalezc akurat tego przykladu.

0

Sądzę, że nie chodzi o macierz w tym zadaniu. Masz (chyba) zaimplementować klasę, która będzie umożliwiała działanie na liczbach.
(Coś jak własna arytmetyka)
Mnożenie macierzy przez skalar

0

Zrobilbym metode, która mnozy ta macierz, sprawdza czy jest za mala i kopiowala do wiekszej. Ale wlasnie nie rozumie rozumiem tej arytmetyki tablicy, bo macierz a tablica to jest to samo(jesli nie wyprowadzcie mnie z bledu), wszedzie sa przyklady z macierzami dwuwymiarowymi w linku który mi podales niestety tez.

1

Wydaje mi się, że błędnie traktujesz tę tablicę jako macierz. To ma być liczba zapisana w tablicy.
Wyobraź sobie, że każda komórka tablicy, to części liczby.
Części tysięczne, części setne, części dziesiętne...
Teraz musisz pomnożyć całą liczbę na którą składają się poszczególne komórki.

0

No w sumie tak, rozumie rozumiem ten sposob. Jutro to sprobuje napisac ;)

0

musisz zrobić mnożenie dwóch liczb całkowitych o dowolnej długości

0

W tablicy mam mieć liczbę od 10 do 99 tak ?

0
grzesiekm0 napisał(a):

... Zdefiniuj klasę Liczba, która przechowuje w tablicy cyfry liczby dziesiętnej...

Nie jestem pewien, ale chyba chodzi o liczbę w systemie dziesiątkowym.

0

Moim zdaniem zadanie jest bardzo nieprecyzyjnie sformułowane.
Np. parametrem konstruktora ma być napis, jakie napisy uznać za poprawne?

"987" - poprawny
"987.55" - nie wiadomo
"987,55" - nie wiadomo
"6666666666666666666666666666666666" - nie wiadomo (wartość liczby przekroczy zakres typu long, czy wolno wykorzystać typ BigInteger)

Jak przechowywać liczby ujemne?
Poniższy kod zakłada, że parametr konstruktora da się przekonwertować na liczbę typu int, znak liczby jest przechowywany osobno.

public class Liczba{
    private int[] digits = new int[10];
    private int sign;
    private int value;
    public Liczba(String txt){
        value = Integer.parseInt(txt);
        sign = (value >= 0)?1:-1;
        int number = Math.abs(value);
        int index = 0;
        while(number > 0){
            digits[index] = number % 10;
            number/=10;
            index++; 
        }
    } 
}

(Nie sprawdzałem kodu).

0
c7 napisał(a):

Wydaje mi się, że błędnie traktujesz tę tablicę jako macierz. To ma być liczba zapisana w tablicy.
Wyobraź sobie, że każda komórka tablicy, to części liczby.
Części tysięczne, części setne, części dziesiętne...
Teraz musisz pomnożyć całą liczbę na którą składają się poszczególne komórki.

Z tego co tu napisałeś to chyba najprościej można by to opisać jako:
Jedna komórka tablicy to jedna cyfra.
Czyli jedna z: 0,1,2,3,4,5,6,7,8,9;
od 10 w górę, to już liczby i trzeba je zapisać w 2 lub więcej komórkach.

0

Nie wiem czy zauważyłeś, ale powyższy kod właśnie to robi, wpisuje do komórek tablicy liczby jednocyfrowe. Z liczby 4567 powstanie tablica [4,5,6,7,0,0,0,0,0,0]
Poza tym, mylisz pojęcia cyfra i liczba jednocyfrowa. Gdyby w tablicy miały być cyfry, to powinna ona być typu char[] i zawierać ['4','5','6','7',...].

0

Tylko co teraz z arytmetyką tej liczby np tak jak w tresci, pomnozyc przez int ?

0

Tak jakbyś mnożył dwie liczby pisemnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1