Często w programowaniu spotyka się sytuację, w której korzysta się z dużej liczby zmiennych tego samego typu. Zamiast deklarować np. kilkanaście (czy kilka tysięcy) zmiennych, korzysta się z tablic lub kolekcji.
Czym są tablice?
To zbiory wielu zmiennych tego samego typu. Możemy zadeklarować zmienną typu tablicowego i przechowywać w niej np. sto liczb całkowitych. W tablicach i kolekcjach możemy przetrzymywać także klasy i struktury. Dokładniej rzecz ujmując tablica to obiekt zawierający zbiór referencji do innych zmiennych.
Jako prosty przykład napiszmy program, w którym zadeklarujemy tablicę o rozmiarze 3 (tyle elementów będzie mogła przechowywać), a następnie przypiszemy jej trzy liczby całkowite i wypiszemy je na ekranie w innej kolejności.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
class KlasaGlowna
{
static void Main()
{
int[] tablicaLiczb = new
int[3];
tablicaLiczb[0]
= 11;
tablicaLiczb[1] = 22;
tablicaLiczb[2] = 33;
System.Console.WriteLine("Liczby znajdujące się w tablicy:");
System.Console.WriteLine(tablicaLiczb[0]
+ " " + tablicaLiczb[1] + " " + tablicaLiczb[2]);
System.Console.WriteLine("Te
same liczby ale wypisane w innej kolejności:");
System.Console.WriteLine(tablicaLiczb[1]
+ " " + tablicaLiczb[2] + " " + tablicaLiczb[0]);
System.Console.Read();
Prześledźmy kod. Najpierw deklarujemy zmienną tablicową, określając typ przechowywanych elementów („int”) oraz rozmiar (maksymalna ilość przechowywanych elementów). Po słówku „int” występuje para nawiasów prostokątnych, która określa, że nie jest to zwykła zmienna typu całkowitoliczbowego lecz zmienna tablicowa. Następnie za pomocą słówka „new” tworzymy nowy obiekt (tablicę) i podajemy rozmiar w nawiasach prostokątnych (w tym wypadku „3”). Odwołać się do poszczególnych elementów w tablicy możemy także za pomocą nawiasów prostokątnych. Wystarczy tylko podać, do którego elementu chcemy się dostać. Liczby 0, 1, 2 umieszczone między nawiasami to indeksy tablicy. Im większy rozmiar tablicy tym większych indeksów możemy użyć ale zawsze muszą one być co najmniej o jeden mniejsze od rozmiaru tablicy. Indeksowanie rozpoczyna się zawsze od liczby „0”, więc pierwszy element znajduje się pod „tablica[0]”, a nie jakby się mogło wydawać pod „tablica[1]”.
W naszym programie najpierw przypisujemy wartości kolejnym zmiennym, a następnie wypisujemy je w różnej kolejności.
Wynik działania programu:
class KlasaGlowna
{
static void Main()
{
int[]
tablicaLiczb = { 11, 22, 33 };
System.Console.WriteLine("Liczby znajdujące się w tablicy:");
System.Console.WriteLine(tablicaLiczb[0]
+ " " + tablicaLiczb[1] + " " + tablicaLiczb[2]);
System.Console.WriteLine("Te
same liczby ale wypisane w innej kolejności:");
System.Console.WriteLine(tablicaLiczb[1]
+ " " + tablicaLiczb[2] + " " + tablicaLiczb[0]);
System.Console.Read();
Wynik działania jest identyczny jak w poprzednim programie.
Automatyczna inicjalizacja elementów
W C# podczas powoływania tablicy do życia (stworzenie obiektu typy tablicowego), wszystkie elementy są wypełniane wartościami domyślnymi, czyli dla „int” będzie to „0”, dla „string” łańcuch pusty „”, dla obiektów „null” itd.
class KlasaGlowna
{
static void Main()
{
int[] tablicaInt = new
int[3];
string[] tablicaString = new
string[3];
System.Console.WriteLine("Liczby
znajdujące się w tablicaInt:");
for (int i = 0; i < 3; i++)
{
System.Console.WriteLine(tablicaInt[i]
+ " ");
}
System.Console.WriteLine("\nNapisy znajdujące się w tablicaString:");
for (int i = 0; i < 3; i++)
{
System.Console.WriteLine(tablicaString[i]
+ " ");
}
System.Console.Read();
}
Wynik
Praktyczne wykorzystanie tablic
Bardziej przydatnym programem jest aplikacja, która najpierw poprosi użytkownika o podanie rozmiaru tablicy, a następnie o wprowadzenie tylu liczb ile wynosi podany przez nas rozmiar. Liczby zostaną umieszczone w tablicy. W każdej chwili będziemy mogli wskazać, która liczbę chcemy wyświetlić.
}class KlasaGlowna
{
static void Main()
{
System.Console.WriteLine("Podaj
rozmiar tablicy.");
string rozmiarTablicy = System.Console.ReadLine();
int[] tablicaLiczb = new
int[int.Parse(rozmiarTablicy)];
for (int i = 0; i < int.Parse(rozmiarTablicy);
i++)
{
System.Console.WriteLine("Podaj liczbę o indeksie " + i + ".");
tablicaLiczb[i] = int.Parse(System.Console.ReadLine());
}
System.Console.WriteLine("Liczby znajdujące się w tablicy:");
for (int i = 0; i < int.Parse(rozmiarTablicy);
i++)
{
System.Console.Write(tablicaLiczb[i]
+ " ");
}
string
koniec = "n";
do
{
System.Console.WriteLine("\nKtórą liczbę wyświetlić?");
string indeks =
System.Console.ReadLine();
System.Console.WriteLine("Element
tablicy o indeksie " + indeks +
"
ma wartość: " + tablicaLiczb[int.Parse(indeks)]);
System.Console.WriteLine("Koniec? (t\\n)");
koniec = System.Console.ReadLine();
}
while
(koniec != "t");
}
Wynik wykonania programu:
Ćwiczenie
Napisz program pobierający od użytkownika 5 liczb całkowitych i wypisujący je na ekranie od najmniejszej do największej.
class KlasaGlowna
{
static void Main()
{
int[] tablicaLiczb = new
int[5];
for (int i = 0; i
< 5; i++)
{
System.Console.WriteLine("Podaj liczbę o indeksie " + i + ".");
tablicaLiczb[i] = int.Parse(System.Console.ReadLine());
}
for (int i = 4; i
> 0; i--)
{
for (int j = 0; j
< i; j++)
{
int
pierwsza = tablicaLiczb[j];
int
druga = tablicaLiczb[j + 1];
if
(pierwsza > druga)
{
tablicaLiczb[j] = druga;
tablicaLiczb[j + 1] =
pierwsza;
}
}
}
System.Console.WriteLine("Posortowane liczby: ");
for (int i = 0; i < 5; i++)
{
System.Console.Write(tablicaLiczb[i] + " ");
}
System.Console.Read();
}

Aktualności
- Łatwiejsze i bezpieczniejsze udostępnianie plików w Microsoft 365
- High Volume Email w Microsoft 365 - ważne zmiany dla klientów
- Microsoft 365 Copilot Chat z ochroną linków dzięki SafeLinks
- OpenAI nie stanie się firmą for-profit. Co dalej z AGI?
- Tworzenie firmowych prezentacji z szablonu. Nowa funkcja Copilota w PowerPoint
- Microsoft Phi-4 oferuje teraz własne modele wnioskujące AI
- Ulepszone wstawianie elementów slajdów w PowerPoint
- AI może służyć ludziom. Nowe partnerstwo Onex Group i AI for People

Artykuły
- Microsoft przedstawił nowe zobowiązania dla klientów z Europy
- Gorące funkcje Copilota na 50 urodziny Microsoftu. Nowa era osobistej AI
- Wnioskujące modele AI zmieniają rzeczywistość pracy
- Jak sztuczna inteligencja pomaga planecie?
- Zmiana umowy EA na CSP dla produktów Microsoft 365 - czy będzie konieczna?
- Czym są agenty AI i jak odmienią to, jak pracujemy?
- To był rok z Microsoft! Podsumowanie roku 2024 w świecie technologii
- TOP 10 artykułów z 2024 w świecie technologii Microsoft