Tablice jednowymiarowe w języku C#. Część 1

Tablica jednowymiarowa jest przykładem złożonych typów danych. Do złożonych typów danych należą tablice (jedno-, dwu-, wielowymiarowe), rekordy (struktury), listy, pliki. Na wartość tego rodzaj typów danych składają inne wartości, których złożoność może być duża. Tablice jednowymiarowe są przykładem prostej złożoności.

Tablica jednowymiarowa

Tablica jest rodzajem zmiennej indeksowanej o własnej niepowtarzalnej nazwie w obrębie jednej klasy. Do tej nazwy przypisuje się kolejne indeksy, pod którymi przechowuje się typ danych zadeklarowany w momencie definiowania zmiennej tablicowej.

Rysunek przedstawiający różnicę pomiędzy pojedynczą zmienną a tablicą jednowymiarową

tablica, zmienna indeksowa
Źródło Informatyka dla szkół ponadpodstawowych. Zakres podstawowy Klasa II wyd. MiGra

Zwróć uwagę, że indeksowanie zmiennych w tablicy rozpoczyna się od indeksu równego 0 (zero)

Deklaracja tablicy jednowymiarowej

W zależności od rodzaju deklaracji tablicy możemy utworzyć tablicę statyczną lub dynamiczną. Tablice dynamiczne nie mają z góry określonej ilości elementów. Ich rozmiar może ulegać zmianie w trakcie wykonywania programu. Tablice statyczne mają rozmiar z góry określonych w momencie ich deklaracji. Oznacza to, że pamięć przydzielona na zmienną tablicową tak utworzoną nie zmienia się, nie zależnie od tego czy została wypełniona danymi.

Przykłady deklaracji tablicy jednowymiarowej

Deklaracja tablicy jednowymiarowej typu całkowitego o rozmiarze pięciu elementów

int[] t= new int [5];

Deklaracja tablicy jednowymiarowej typu całkowitego o rozmiarze pięciu elementów z równoczesnym przypisaniem wartości. Rozmiar tablicy zostaje ustalony na podstawie ilości podanych wartości

int[] t= new int[]{9, 8, 1, 4, 3};

Odwołania do elementów tablicy jednowymiarowej

Przypisanie wartości do wybranego indeksu tablicy

t[3]=121;

Odczytanie wartości z dowolnego indeksu tablicy

int a = t[2];
int suma = t[2]+t[5];

Podstawowe operacje na tablicach jednowymiarowych- ćwiczenia

Zad. 1

Utwórz jednowymiarową 10- elementową tablicę liczb całkowitych wypełnioną wartościami w momencie jej deklaracji. Zawartość tablicy wypisz w kontrolce TextBox ustawionej do pracy w trybie multiline.

Wskazówka:


public partial class Form1 : Form
    {
        int[] tabZad1 = new int[10] { 99, 3, 5, 18, 21, 45, 67, 34, 98, 41 };

Rozwiązanie

Wskazówka:


private void button1_Click(object sender, EventArgs e)
{
	textBox1.Text = "";
	//pokaż tablicę
	for (int i = 0; i < 10;i++)
		textBox1.AppendText(
				 tabZad1[i].ToString() 
				 + Environment.NewLine);
	//podejście bardziej elastyczne w stosunku do rozmiaru
	//tablicy
	textBox1.AppendText(
			 "To samo ale z odczytem rozmiaru liczności tablicy"
			 + Environment.NewLine);
	for (int i = 0; i < tabZad1.Length; i++)
		textBox1.AppendText(
				 tabZad1[i].ToString()
				 + Environment.NewLine);
}
Utwórz jednowymiarową 10- elementową tablicę Visual Studio C#

Zad. 2

Wygeneruj losową stuelementową tablicę liczb całkowitych z przedziału od 1 do 500. Wypisz zawartość tablicy w kontrolce TextBox ustawionej do pracy w trybie multiline.

Wskazówka:


public partial class Form1 : Form
{
	int[] tabZad1 = new int[10] { 99, 3, 5, 18, 21, 45, 67, 34, 98, 41 };
	int[] tabZad2 = new int[100];
	Random los = new Random();//generator liczb losowych

Rozwiązanie

Wskazówka:


private void button2_Click(object sender, EventArgs e)
{
	//włącz generator liczb losowych
	for(int i = 0; i < tabZad2.Length; i++)
		tabZad2[i]=los.Next(500)+1;
	//pokaz tablicę
	textBox1.Text = "";
	for (int i = 0; i < tabZad2.Length; i++)
		textBox1.AppendText(
				 tabZad2[i].ToString()
				 + Environment.NewLine);
}
Wygeneruj losową stuelementową tablicę Visual Studio C#

Zad. 3.

Zmodyfikuj zad.2 tak aby program podał indeks i wartość najmniejszego elementu tablicy.

Rozwiązanie

Wskazówka:


private void button3_Click(object sender, EventArgs e)
{
	//korystamy z wyników zadania drugiego
	//losujemy i pokazujemy tablicę o 100 elementach
	button2_Click(sender, e);
	//tymczasowo przymij, ze min to pierwszy element
	int min = tabZad2[0],
		id =0;
	//szukaj najmniejszego elementu
	//oraz ustal jego indeks
	for (int i = 1; i < tabZad2.Length; i++)
	{
		if (tabZad2[i] < min)
		{
			min = tabZad2[i];
			id = i;
		}
	}
	MessageBox.Show(
		 "Minimum to: " + min.ToString() + Environment.NewLine
		 +"Indeks minimum " +id.ToString(),
		 "Komunikat",
		 MessageBoxButtons.OK,
		 MessageBoxIcon.Information
		 );
}
indeks i wartość najmniejszego elementu tablicy Visual Studio C#

Zad. 4

Zmodyfikuj zadanie 2 tak aby program policzył sumę elementów tablicy.

policzył sumę elementów tablicy Visual Studio C#

Pełny kod programu

Wskazówka:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace tablicaJednowymiarowa_cz1
{
    public partial class Form1 : Form
    {
        int[] tabZad1 = new int[10] { 99, 3, 5, 18, 21, 45, 67, 34, 98, 41 };
        int[] tabZad2 = new int[100];
        Random los = new Random();//generator liczb losowych
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            //pokaż tablicę
            for (int i = 0; i < 10;i++)
                textBox1.AppendText(
                         tabZad1[i].ToString() 
                         + Environment.NewLine);
            //podejście bardziej elastyczne w stosunku do rozmiaru
            //tablicy
            textBox1.AppendText(
                     "To samo ale z odczytem rozmiaru liczności tablicy"
                     + Environment.NewLine);
            for (int i = 0; i < tabZad1.Length; i++)
                textBox1.AppendText(
                         tabZad1[i].ToString()
                         + Environment.NewLine);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //włącz generator liczb losowych
            for(int i = 0; i < tabZad2.Length; i++)
                tabZad2[i]=los.Next(500)+1;
            //pokaz tablicę
            textBox1.Text = "";
            for (int i = 0; i < tabZad2.Length; i++)
                textBox1.AppendText(
                         tabZad2[i].ToString()
                         + Environment.NewLine);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //korystamy z wyników zadania drugiego
            //losujemy i pokazujemy tablicę o 100 elementach
            button2_Click(sender, e);
            //tymczasowo przymij, ze min to pierwszy element
            int min = tabZad2[0],
                id =0;
            //szukaj najmniejszego elementu
            //oraz ustal jego indeks
            for (int i = 1; i < tabZad2.Length; i++)
            {
                if (tabZad2[i] < min)
                {
                    min = tabZad2[i];
                    id = i;
                }
            }
            MessageBox.Show(
                 "Minimum to: " + min.ToString() + Environment.NewLine
                 +"Indeks minimum " +id.ToString(),
                 "Komunikat",
                 MessageBoxButtons.OK,
                 MessageBoxIcon.Information
                 );
        }

        private void button4_Click(object sender, EventArgs e)
        {
            //korystamy z wyników zadania drugiego
            //losujemy i pokazujemy tablicę o 100 elementach
            button2_Click(sender, e);
            long suma = 0;
            for (int i = 1; i < tabZad2.Length; i++)
                suma += tabZad2[i];
            MessageBox.Show(
                 "Suma elemntów wynosi "+suma.ToString(),
                 "Komunikat",
                 MessageBoxButtons.OK,
                 MessageBoxIcon.Information
                 );
        }
    }
}
Alkomat- wirtualny test

Alkomat- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play