Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Visual Studio C++ - Tablica dwuwymiarowa z funkcji.

Lee5.56 26 Cze 2013 19:02 1866 6
  • #1 26 Cze 2013 19:02
    Lee5.56
    Poziom 8  

    Witam. Piszę program mnożący dwie macierze w visual studio c++ pod okienka. Macierze to tablice dwuwymiarowe, mnożę je w funkcji i nie wiem jak z niej zwrócić obliczoną macierz wyjściową. I jeszcze chciałbym ją przekształcić te tablice na string. Z góry dzięki za pomoc.

    0 6
  • #2 26 Cze 2013 19:20
    przemko07
    Poziom 16  

    fajny pomysł jak na pierwszy program. ale i tak warto było przejść przez jakiś kurs C++.

    funkcje mogą zwracać wartość.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    uzycie takiej funkcji wygladalo by tak
    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    przeksztalcic liczbe na stringa mozesz tak

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #3 26 Cze 2013 19:33
    Lee5.56
    Poziom 8  

    No wiem mniej więcej o wskaźnikach. A moja funkcja wygląda tak:


    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Nie wiem czy działa bo pod okienka to muszę to na stringa zamienić żeby wyświetlić w MessabeBox::Show.

    0
  • #4 26 Cze 2013 20:37
    przemko07
    Poziom 16  

    trochę się jeszcze gubisz we wskaźnikach.
    są 2 operatory
    * oznacza zejście wyżej(czyli mamy wskaźnik chcemy liczbę z tego wskaźnika)
    & oznacza zejście niżej(mamy liczbę, chcemy wskaźnik z tej liczby)

    my tutaj nie będziemy korzystać z
    double*
    tylko
    double**

    Visual Studio C++ - Tablica dwuwymiarowa z funkcji.widzisz ? różnica jest taka że ten pierwszy wskazuje na blok zmiennych typu double
    a ten drugi wskazuje na blok zmiennych typu double*, a z kolei ten wskazuje na blok typu double i tak własnie wyglądają tablice dwuwymiarowe.
    Visual Studio C++ - Tablica dwuwymiarowa z funkcji.
    tak więc Twój typ zwracany musi wyglądać inaczej.
    to co ty zrobiłeś to jest użycie operatora *, czyli mamy wskaźnik idziemy z nim wyżej
    Visual Studio C++ - Tablica dwuwymiarowa z funkcji.
    jeśli byś napisał *(mac_wynik + 1) to byś zwrócił tą większą cześć, ale ty chcesz zwrócić nie tablice jednowymiarową a dwuwymiarową.
    czyli
    double**

    jeśli zrobiłbyś **mac_wynik to byś trafił to pierwszej komórki z typem double

    Dodano po 1 [minuty]:

    pokombinuj z tym
    ostringstream
    bo da się

    0
  • #5 26 Cze 2013 21:14
    Lee5.56
    Poziom 8  

    Ok. Będę o tym myślałe jeszcze a mam pytanie co to kodu pobierającego liczbe z textboxa bo mi coś źle działa.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #6 26 Cze 2013 21:15
    fiurrr
    Poziom 2  

    Tablic nie są przesyłane do funkcji poprzez kopiowanie jak zmienne typów fundamentalnych, tablica to typ złożony z typów fundamentalnych. Tablice mogą być duże i dlatego nie są kopiowane a do funkcji wysyłany jest adres owej tablicy. Także jako taka funkcja pracuje na oryginalnym egzemplarzu tablicy wysłanej do funkcji. Funkcja może zwracać wskaźnik la tablicy 2 wymiarowej będzie to deklaracja np int ** p();

    0
  • #7 26 Cze 2013 21:17
    przemko07
    Poziom 16  

    wygląda dobrze
    ale błędny może być zapis w textboxie
    albo liczba z kropką
    albo z przecinkiem
    a jeśli nie to to spróbuj

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0