Statyczne tablice wielowymiarowe

Typ tablicowy niekoniecznie może być jednowymiarowy. Najprostszym przykładem tablicy wielowymiarowej jest tablica dwuwymiarowa. Jej deklaracja oprócz typu zmiennych przechowywanych w tablicy wymaga podania rozmiaru w każdym wymiarze.

Przykładem tablicy dwuwymiarowej jest tabela określonej ilości wierszy i dwóch kolumnach.

Cel: Napisz aplikację, która będzie przechowywać losowe wartości liczbowe w statycznej tablicy dwuwymiarowej. Utwórz funkcje o argumencie opartym na tablicy dwuwymiarowej wykonujące podstawowe działania matematyczne.

tablica dwuwymiarowa

Krok 1. Układ komponentów

Jedną z kontrolek TextBox przeznacz na wyświetlanie wyników. Tej kontrolce zmień wartość Multiline na True

textBox multiline

Wybierz możliwość przewijania zawartości kontrolki poprzez ustawienie ScrollBars na Vertical

ScrollBars Vertical c# visual studio

Proponowany układ komponentów przedstawia poniższa ilustracja

układ komponentów przedstawia poniższa ilustracja

Krok 2. Deklaracja zmiennych

Deklaracja zmiennej dwuwymiarowej tablicy statycznej przechowującej typ całkowity ma postać

int[,] t;

Uwaga. Odpowiedni rozmiar przypiszemy w dalszej części kodu.

Deklarujemy zmienne lokalne wewnątrz klasy Form

public partial class Form1 : Form
{
int[,] t;
int rozmiar = 0, zakres =100;
Random los = new Random();
public Form1()

Krok 3. Losowe elementy tablicy dwuwymiarowej

W zdarzeniu Click kontrolki button1 wykonamy przypisanie pamięci (rozmiaru) tworzonej tablicy. Wylosujemy kolejne elementy, wstawimy je do tablicy i pokażemy w komponencie TextBox.

Proponowany kod realizujący to zadanie ma postać


private void button1_Click(object sender, EventArgs e)
{
rozmiar = Convert.ToInt16(textBox1.Text);
zakres = Convert.ToInt16(textBox2.Text);
textBox3.Clear();
t = new int [rozmiar,2];
for(int i = 0; i < rozmiar; i++)
{
t[i, 0] = los.Next(zakres);
t[i, 1] = los.Next(zakres);
textBox3.AppendText((i + 1).ToString() + ") " + t[i, 0].ToString() + ";" + t[i, 1].ToString()+Environment.NewLine);
}
}

Skompiluj program i sprawdź efekt działania. Prawidłowo działająca aplikacja zwróci zawartość tablicy

aplikacja zwróci zawartość tablicy

Krok 4. Deklarujemy funkcję wykonującą działania na elementach tablicy

Podany kod funkcji jest przykładem jak należy podawać argument typu tablicowego do ciała funkcji. Funkcja nie zwraca wyniku. Efekt działań zapisywany jest do drugiego argumentu, który jest typem TextBox

void dodawanie(int[,] t,TextBox tb)
{
tb.Clear();
for(int i = 0; i < t.GetLength(0); i++)
{
tb.AppendText((i + 1).ToString() + ") " + t[i, 0].ToString() + "+" + t[i, 1].ToString() +"="+(t[i,0]+t[i,1]).ToString()+ Environment.NewLine);
}
}

Skompiluj program i sprawdź czy nie ma błędów.

Krok 5. Wywołujemy funkcję dodawania

W celu skrócenia kodu, wykorzystamy rzutowanie typu obiektów przypisanych do zdarzenia Click. Rozpoznanie wykonane jest po sprawdzeniu zawartości Tag wybranych kontrolek Button


private void button2_Click(object sender, EventArgs e)
{
Button bt = sender as Button;
switch (bt.Tag)
{
case "+": dodawanie(t, textBox3); break;
}
}

Skompiluj program i sprawdź efekt działania

tablice dwuwymiarowe c# visual studio

Ćwiczenie sprawdzające: Wykonaj pozostałe funkcje działań arytmetycznych z uwzględnieniem zabezpieczenia przed dzieleniem przez zero

Alkomat- wirtualny test

Alkomat- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play