Pisząc program typu tabliczka mnożenia, mamy możliwość zapoznania się z możliwościami komponentu StringGrid oraz ze statycznymi tabelami dwuwymiarowymi.W ramach przypomnienia, komponent StringGrid służy do wpisywania wartości w komórki tabeli.
Jako, że z definicji w tabliczce mnożenia mnożymy dwie liczby przez siebie, idealne do tego celu stają się tablice dwuwymiarowe.
Aby wpisywać dane do komórek stronggrida, w programie muszą być zastosowane 2 pętle inkrementacyjne:
- pętla po wierszach
- pętla po kolumnach
Na formę kładziemy komponent StringGrid.Nie zmieniamy jego właściwości w Object Inspektorze.Zrobimy to za pomocą kodu:
void __fastcall TForm1::FormCreate(TObject *Sender)
{StringGrid1->ColCount = 10;// tworzymy 10 kolumn StringGrida
StringGrid1->RowCount = 10;// tworzymy 10 wiersz StringGrida
StringGrid1->ColWidths[0] = 15;// zawężamy 1-szą kolumnę
StringGrid1->RowHeights[0] = 15;// zawężamy 1-szy wiersz
int tab[10][10];// deklaracja tablicy dwuelementowej
for(int i=0;i<10;i++)// iteracja po wierszach { for(int j=0;j<10;j++)// iteracja po kolumnach
{ tab[i][j] = (i+1)*(j+1);// tablice są indeksowane od zera, a pierwsze działanie w tabliczce to 1x1
StringGrid1->Cells[j][i] = tab[i][j];// wpisanie liczby do odpowiedniej komórki
}
}
}
Podany przykład tworzy tabliczkę 10x10.Jeśli chcielibyśmy stworzyć tabliczkę o większym zakresie, należy odpowiednio zwiększyć zakres iteracji obydwu pętli for oraz ustawić odpowiednie wartości ColCount oraz RowCount.
Efekt naszej pracy wygląda następująco:
