Tabliczka mnożenia z liczbami binarnymi

Odpowiedz Nowy wątek
2019-05-13 18:52
0

Cześć! W marcu zaczęłam swoją przygodę z C++. Właśnie przygotowuje się do kolosa z programowania i natknęłam się na przykładowe zadanie mojego prowadzącego.

Napisz program, ktory wyswietla tabliczke mnozenia, ktorej rozmiar podaje uzytkownik (od 2x2 do 20x20), ale zapisana w kodzie binarnym. Zadbaj o poprawnosc rozmiaru tabliczki mnozenia. Tablica przechowujaca dane musi byc deklarowana na sterci. Zadbaj o odpowiednia alokacje i zwalnianie pamieci po wypisaniu tabliczki.

Napisałam program, natomiast nie mam pojęcia czy jest on napisany poprawnie i w 100% zgodnie z poleceniem.
Byłabym wdzięczna za wytknięcie błędów.

Kolejna sprawa - program działa, ale wariuje przy chęci utworzenia tabliczki większej niż 12x12.
Kombinowałam z różnymi ułożeniami tabulatora, ale nic to nie dało.

#include<iostream>
using namespace std;

    void binarna(int liczba){
        int i=0;
        int* tab = new int[20];

        while(liczba!=0)
        {
            tab[i++]=liczba%2;
            liczba=liczba/2;
        }

        for(int j=i-1;j>=0;j--)
            cout<<tab[j];

        delete tab;
    }

    int bin;

int main(){

    cout << endl;
    cout << "\t Tabliczka mnozenia." << endl;

    int wielkosc;
    cout << "Jaka wielkosc ma miec Twoja tabliczka? ";
    cin >> wielkosc;
    cout << endl;

    if((wielkosc<21)&&(wielkosc>1)){

        for(int i = 1; i<=wielkosc; i++){

            for(int j = 1; j<=wielkosc; j++){
                bin = j*i;
                binarna(bin);
                cout << "\t";
            }

            cout << endl;
        }
    }

    else
        cout << "Dozwolony rozmiar tabliczki miesci sie w przedziale od 2 do 20.." << endl;

    cin.ignore();
    cin.get();

return 0;
}

Pozostało 580 znaków

2019-05-14 08:40
0

Usuwasz tablicę więc użyj:

delete []tab;

Pozostało 580 znaków

2019-05-14 09:45
0

1) czemu używasz dynamicznej tablicy o stałej długości, to nielogoczne (chodzi o tab), tu chodzilo zapewne o inny sposob przechowywania danych
2) u mnie i na 12 sie rozjeżdża, chyba, że codzi o tabulatory - to taka podpowiedz, ze powyzej 11*11, otrzymamy liczę 8 bitową (ma 8 znaków), natomiast od 16 będziemy mieli 9 znaków w liczbie... czyli tabulator musialby byc na 10 znakow, przynajmniej w niektórych kolumnach.


Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie

Pozostało 580 znaków

2019-05-14 18:20
0

https://wandbox.org/permlink/DiXWg1Vwg5pw1OIX


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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