Macierz w c++ builder 6

0

może mi ktoś pomoże?? Mam stworzyć interfejs umożliwiający dodawanie , mnożenie, sortowanie macierzy do tego jeszcze wybór min i max elementu w macierzy. Bardzo słaby jestem z tego mam nadzieje że znajdzie się ktoś pomocny:(

0

Co rozumiesz pod "pomocny" - idiotę który odwali za darmo całą pracę którą ty masz wykonać?

0

nie osobę którą mi to wytłumaczy, chce się tego nauczyć bo później będę miał z tego zaliczenie

0

Zdefiniuj te operacje, bo są kompletnie niezrozumiałe. Jeśli ma to być macierz w sensie matematycznym, to powiedz, co ma robić sortowanie? Pierścień macierzy nie ma zdefiniowanego porządku. A jeśli ma to być tabela (jak sugeruje screen), weź jakiś odpowiednik DataGridView i praktycznie wszystko masz na tacy.

0

Ma wpisywać automatycznie dane do tabeli i dodawać lub mnożyć tabele miedzy sobą. Coś podobnego do tego http://www.mat.przemeknet.pl

0

To czemu to co masz
nie przypomina nawet blisko tego co ma być

0

właśnie nie wiem o co chodzi dla tego pytam sie jak to zrobic;(

0

może znacie jakąś stronę gdzie mogę się z tego podszkolić??

0

No tak to znam ale jakoś dobrze wyjaśnione obsługa stringgrida oraz połączenie go z butonami

0

Obsługa stringgrida masz w dokumentacji oraz w przykładach dołączonych do delphi.
"Połączenia go z buttonami" - nie ma najmniejszego sensu. Zaś to co masz na myśli również znajdziesz w przykładzie.

0

Przepraszam że tak was meczę ale może ktoś mi pomoże. Tak jak dodałem w załączniku mam już stworzone 2 tabele w które mogę wczytywać dowolną macierz, tylko nie wiem jak ją połączyć z tabelą 3 żeby mnożyła obie te tabele i podawała w tabeli 3 wynik mnożenia dodawania i sortowania tabeli 1 i 2. Z góry dzięki za odpowiedź

0

nie oczekuje zrobienia tylko podpowiedź, nie znam się na tym i potrzebuje pomocy.

0

mam wzory do tego programu ale wyskakuje mi błąd
wzory:
mnozenie
Kod:
for (unsigned int iVar0=0;iVar0<StringGrid1->RowCount;iVar0++)
{
int iResult = 0;
for (unsigned int iVar1=0;iVar1<StringGrid1->ColCount;iVar1++)
iResult += StrToInt(StringGrid1->Cells[iVar1][iVar0])*StrToInt(StringGrid2->Cells[0][iVar1]);
StringGrid3->Cells[0][iVar0] = iResult;
}

dodawania
Kod:
for (unsigned int iVar0=0;iVar0<StringGrid1->RowCount;iVar0++)
{
for (unsigned int iVar1=0;iVar1<StringGrid1->ColCount;iVar1++)
StringGrid3->Cells[iVar0][iVar1] = StrToInt(StringGrid1->Cells[iVar1][iVar0])+StrToInt(StringGrid2->Cells[iVar1][iVar0]));
}

0
  1. Mnożenie masz niepoprawne, patrz http://pl.wikipedia.org/wiki/Mno%C5%BCenie_macierzy
  2. Zamień StrToInt na StrToFloat, bo macierze mogą zawierać liczby rzeczywiste
  3. W dodawaniu brakuje: StringGrid3->Cells[iVar0][iVar1] = FloatToStr( ... ); // czyli konwersji z powrotem na string
  4. Błąd wyskakuje wtedy kiedy komórka jest pusta, użyj StrToFloatDef, podajesz wartość domyśłną jako drugi parametr.
  5. Przed dodawaniem, mnożeniem i innymi operacjami należy sprawdzić czy macierze zawierają liczby:
    bool Ok=true;
    try { for (unsigned y=0;y<StringGrid1->RowCount;++y) for(unsigned x=0;x<StringGrid1->ColCount;++x) StrToFloat(StringGrid1->Cells[x][y]); }
    catch(...) { Ok=false; }
0

Mam taki problem w dodawaniu

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