Fizyka szkoła podstawowa
Fizyka: wzory, prawa i teoria. Rozwiązania zadań z omówieniem

Rozwązanie zadania:

Fizyka w szkole

Tablice i klasa Array. Visual Studio C#

Pracę z tablicami ułatwia klasa Array. Szerszy opis metod tej klasy znajdziesz pod tym linkiem zobacz. W tym temacie zostanie przedstawiony sposób zwiększania rozmiaru już istniejącej tablicy, sortowanie od A do Z oraz od Z do A przy użyciu metod z klasy Array.

Cel: Napisz aplikację, która będzie bazować na dwóch tablicach jednowymiarowych typu float oraz tablic wielowymiarowej służącej do przechowywania elementów poprzednich tablic oraz wyników podstawowych działań arytmetycznych. Zastosuje sortowanie tablic i dynamicznie zwiększenie ich rozmiaru.

Array C# visual studio

Krok 1. Układ komponentów

  • GroupBox- sztuk 4
  • Label- sztuk 1
  • Button- sztuk 7
  • TextBox- sztuk 4

Wybranym kontrolkom właściwość pola Dock ustaw na Fill

Dock fill

Przypisz tryb pracy w układzie wielu linii.

multiline

Dodaj możliwość przewijania zawartości w pionie

vertical

Proponowany układ kontrolek

klasa Array visual studio c# ukłąd kontrolek

Krok 2. Deklaracja zmiennych

Zadeklarujemy zmienne lokalne w klasie Form1 związane z funkcjonowaniem aplikacji. Przeznaczenie zmiennych jest podane w komentarzach podanego fragmentu kodu

public partial class Form1 : Form
{
//poczatkowy rozmiar tablic
static int rozmiar = 1;
//tablice jednowymiarowe
float[] t1 = new float[rozmiar],
t2 = new float[rozmiar];
//tablica wielowymiarowa
float[,] tabWynikow;
//generator liczb losowych
Random los = new Random();

public Form1()

Krok 3. Inicjujemy początkowe wartości tablic jednowymiarowych

W konstruktorze klasy Form wykonamy przypisanie początkowych losowych wartości tablicom jednowymiarowym

public Form1()
{
InitializeComponent();
for (int i = 0; i < t1.GetLength(0); i++)
{
t1.SetValue(los.Next(0, 100), i);
t2.SetValue(los.Next(0, 100), i);
}
}

Aby się przekonać jakie wartości zostały wylosowane napiszemy uniwersalną funkcję wypisującą zawartość tablicy jednowymiarowej. Funkcja będzie wywoływana w kilku miejscach tworzonego kodu.

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

Jej pierwsze wywołanie wykonamy z zdarzeniu Load formatki głównego okna aplikacji


private void Form1_Load(object sender, EventArgs e)
{
wypiszTablice(t1, textBox1);
wypiszTablice(t2, textBox2);
}

Skompiluj program i sprawdź efekt działania. Poniższa ilustracja przedstawia funkcjonowanie bieżącego kodu aplikacji

klasa Array visual studio c#

Krok 4. Zwiększamy rozmiar tablic

Napiszemy uniwersalną funkcję zwiększającą rozmiar tablic już istniejących bez zmiany dotychczasowych wartości wylosowanych elementów

void zwiekszRozmiarTablicy(ref float[] t, int rozmiar)
{
//odczytaj stary rozmiar tablicy
int staryRozmiar = t.GetLength(0);
//ustaw nowy rozmiar
Array.Resize(ref t, rozmiar);
//
for (int i = staryRozmiar; i < rozmiar; i++)
t.SetValue(los.Next(0, 100), i);
}

Efekt zwiększania rozmiaru i dopisywania nowych elementów wywołamy w zdarzeniu Click kontrolki button1

private void button1_Click(object sender, EventArgs e)
{
int rozmiar = Convert.ToInt16(textBox4.Text);
zwiekszRozmiarTablicy(ref t1,t1.GetLength(0) + rozmiar);
wypiszTablice(t1, textBox1);
zwiekszRozmiarTablicy(ref t2, t2.GetLength(0) + rozmiar);
wypiszTablice(t2, textBox2);
}

Skompiluj program i sprawdź efekt działania. Prawidłowo działającą aplikację przedstawia poniższa ilustracja

zwiększanie rozmiaru tablic klasa Array visual studio c#

Krok 5. Sortowanie zawartości tablic w kierunku od A do Z

Wykorzystamy wbudowaną funkcję Sort klasy Array. Jej podstawowe wywołanie zawiera poniższy kod

void Sortuj_AdoZ_i_Wypisz(ref float[] t,TextBox tb)
{
Array.Sort(t);
wypiszTablice(t, tb);
}

Działanie sprawdzimy w metodzie Click kontrolki button2

private void button2_Click(object sender, EventArgs e)
{
Sortuj_AdoZ_i_Wypisz(ref t1, textBox1);
}

Skompiluj program i sprawdź efekt działania. Efekt przedstawia poniższa ilustracja

Array C#

Krok 6. Sortowanie zawartości tablicy w kierunku od Z do A

To funkcjonowanie programu jest odwrotne do poprzedniego działania. Wykorzystamy metody klasy Array sortowania i odwracania pozycji elementów w tablicy


void Sortuj_ZdoA_i_Wypisz(ref float[] t, TextBox tb)
{
Array.Sort(t);
Array.Reverse(t);
wypiszTablice(t, tb);
}

Działanie sprawdzimy w metodzie Click kolejnej kontrolki Button

private void button7_Click(object sender, EventArgs e)
{
Sortuj_ZdoA_i_Wypisz(ref t2, textBox2);
}

Skompiluj program i sprawdź efekt działania. Działanie przedstawia poniższa ilustracja

metody klasy Array C#

Krok 7. Funkcja sumowania i przypisywania wyniku do tablicy wielowymiarowej

Piszemy uniwersalna funkcję wykonującą dodawanie elementów z dwóch równoległych indeksów tablic jednowymiarowych i przypisanie tych elementów oraz wyniku sumowania do tablicy wielowymiarowej. Jest to proponowany kod rozwiązania zasad pracy z tablicami przedstawiony w celach dydaktycznych.


void Dodawanie(float[] tA,float[] tB,ref float[,] tWynik,TextBox tb)
{
tb.Clear();
int rozmiar = tA.GetLength(0);
tWynik = new float[rozmiar, 3];
for(int i = 0; i < rozmiar; i++)
{
tWynik[i,0] = tA[i];
tWynik[i,1] = tB[i];
tWynik[i,2] = tWynik[i,0] + tWynik[i,1];
tb.AppendText((i + 1).ToString() + ")" + tabWynikow[i, 0].ToString() + "+" + tabWynikow[i, 1].ToString() + "=" + tabWynikow[i, 2].ToString() + Environment.NewLine);
}
}

Wywołanie tej funkcji wykonamy w zdarzeniu Click z zastosowaniem rzutowania obiektów rozpoznawanych pod właściwości Tag w funkcji switch

private void button3_Click(object sender, EventArgs e)
{
Button bt = sender as Button;
switch (bt.Tag)
{
case "+":Dodawanie(t1, t2,ref tabWynikow,textBox3); break;
}
}

Skompiluj program i sprawdź efekt działania. Wynik dodawania wraz z dodawanymi elementami przedstawia poniższa ilustracja

metody klasy Array C# dodawanie elementów tablic

Ćwiczenie sprawdzające: Napisz uniwersalne funkcje odejmowania, mnożenia i dzielenia wraz z zabezpieczeniem przed dzieleniem przez zero.



Aplikacje na Androida

Okręty- bitwa morska
okręty gra sieciowa
Darmowa aplikacja na Androida
Kalkulator jednostek fizycznych
Kalkulator jednostek fizycznych (tablet, smartfon, telefon)
Znaki drogowe.
znaki drogowe na telefon, tablet, smartfon
Darmowa aplikacja na Androida
Geometria. Wzory
geometri kalkulator wzory figur bryl

© baibaz - stock.adobe.com

przepis na gofryZobacz przepis na wyśmienite gofry