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:(
Co rozumiesz pod "pomocny" - idiotę który odwali za darmo całą pracę którą ty masz wykonać?
nie osobę którą mi to wytłumaczy, chce się tego nauczyć bo później będę miał z tego zaliczenie
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.
Ma wpisywać automatycznie dane do tabeli i dodawać lub mnożyć tabele miedzy sobą. Coś podobnego do tego http://www.mat.przemeknet.pl
To czemu to co masz
nie przypomina nawet blisko tego co ma być
właśnie nie wiem o co chodzi dla tego pytam sie jak to zrobic;(
może znacie jakąś stronę gdzie mogę się z tego podszkolić??
No tak to znam ale jakoś dobrze wyjaśnione obsługa stringgrida oraz połączenie go z butonami
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.
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ź
nie oczekuje zrobienia tylko podpowiedź, nie znam się na tym i potrzebuje pomocy.
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]));
}
- Mnożenie masz niepoprawne, patrz http://pl.wikipedia.org/wiki/Mno%C5%BCenie_macierzy
- Zamień StrToInt na StrToFloat, bo macierze mogą zawierać liczby rzeczywiste
- W dodawaniu brakuje: StringGrid3->Cells[iVar0][iVar1] = FloatToStr( ... ); // czyli konwersji z powrotem na string
- Błąd wyskakuje wtedy kiedy komórka jest pusta, użyj StrToFloatDef, podajesz wartość domyśłną jako drugi parametr.
- 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; }
Mam taki problem w dodawaniu