Back to Top

Lekcja 3 - Tablice

Tablice

Zmienne, które tworzyliśmy do tej pory, mogły przechować jedną wartość. Wyobraź sobie sytuację, w której chcesz wyświetlić użytkownikowi listę proponowanych produktów. Jeśli produktów będzie 5, musisz zadeklarować 5 zmiennych, używając znanych Ci typów. Każda zmienna musi mieć inną nazwę.

int product1 = "Spodnie";
int product2 = "Bluzka";
int product3 = "Sukienka";
int product4 = "Spódnica";
int product5 = "Buty";

Czy istnieje na takie sytuacje jakieś lepsze rozwiązanie?  A co kiedy mamy do czynienia ze 100 produktami?

C# pozwala na deklarację tzw. tablicy – to zmienna, która potrafi przechować większą ilość elementów. Tablica może przechowywać tylko elementy tego samego typu. Nie możemy zadeklarować tablicy, która będzie przechowywała liczby i tekst.

Jak deklarujemy tablicę?

int[] products = new int[5];

Podobnie jak zwykłą zmienną, podajemy typ. Dodatkowo, za typem wstawiamy dwa nawiasy kwadratowe i nazwę zmiennej.

Różnicę widzimy po prawej stronie znaku przypisania. Zamiast bezpośrednio przypisywać wartość, używamy słowa kluczowego new, typu i pary nawiasów kwadratowych. Między nawiasami podajemy wielkość tablicy, czyli to ile elementów będzie mogła ona przechować.

Dodawanie Danych do Tablicy

Zadeklarowana tablica nie posiada jeszcze dodanych wartości. Jak dodać wartość do tablicy? Tablica posiada tzw. indeksy, czyli specjalne identyfikatory, które wyróżniają każdą wartość dodaną do tablicy. Tablica o wielkości 5 ma 5 indeksów i może przechować 5 elementów.

Aby przypisać element do konkretnego indeksu tablicy posługujemy się notacją z dwoma nawiasami kwadratowymi.

products[0] = "Buty";
products[1] = "Spodnie";

Uwaga: Dlaczego w pierwszym indeksie podajemy 0?

Ponieważ indeksy są numerowane właśnie od liczby 0. Tablica, która o wielkości 5 elementów posiada indeksy od 0 do 4.

Co się stanie, jeśli spróbujemy przypisać element do indeksu, który nie istnieje? Program zgłosi błąd.

products[-1] = "Spodnie"; // Nie indeksu mniejszego niż 0.
products[6] = "Buty"; // Nie ma indeksu większego od 4.

Deklaracja tablicy razem z danymi

Możemy podczas deklaracji tablicy od razu dodać do niej dane.

int[] numbers = new int[3]
{
	33,
	0,
	-18
};

Za nawiasem kwadratowym otwieramy wtedy nawiasy klamrowe i wymieniamy w nich wartości, oddzielając je przecinkiem. Znak średnika przenosi się wtedy za nawiasy klamrowe.

Rozmiar Tablicy

Czy po zadeklarowaniu tablicy możemy zmienić jej rozmiar? Nie. Tablica po zadeklarowaniu nie może zmienić swoich rozmiarów i jest to podyktowane ich konstrukcją w pamięci.

Więcej na ten temat tutaj.

Odczytywanie elementu z tablicy

Odczytywanie danych z tablicy jest analogiczne do przypisywania, z tym, że tablica znajduje się teraz po prawej stronie operatora. Po lewej wstawiamy zwykłą zmienną.

string product1 = products[0];
string product2 = products[2];

Zmiana elementu tablicy

Jak podmienić istniejącą wartość na nową, podobnie jak w przypadku przypisania, wystarczy nową wartość przypisać do istniejącego indeksu.

products[0] = "Buty";
products[0] = "Spodnie";

W powyższym przykładzie przypisaliśmy wartość "Buty" do indeksu 0, następnie podmieniliśmy ją na nową wartość "Spodnie".

Rozmiar Tablicy

Aby sprawdzić rozmiar tablicy, musimy po nazwie tablicy wpisać kropkę i słowo Length. Takie wywołanie zwróci rozmiar tablicy.

int[] products = new int[10];
int size = products.Length;

Zmienna size będzie zawierała wartość 10, czyli rozmiar tablicy.

Usuwanie Wartości

Nie można tak po prostu usunąć wartości, ponieważ rozmiar tablicy nie może być zmieniony. Możemy natomiast nadpisać wartość wartością pustą w przypadku typu string lub zerem w przypadku typu liczbowego.

products[0] = "Buty";
products[0] = null; // Nadpisanie Wartości

Zadanie 1

Utwórz tablicę o nazwie products i dodaj do niej nazwy 3 produktów. Nazwy produktów mogą być dowolne.

Następnie utwórz 3 zmienne, do których przypiszesz poszczególne produkty. Zmienne wyświetl w konsoli.

Zadanie 1

Rozwiązanie zadania 1

Zadanie 2

W pliku istnieje tablica z produktami, zamień produkt o nazwie "Spodnie" na "Koszule".

Wyświetl wszystkie produkty w konsoli.

Zadanie 2

Rozwiązanie zadania 2

Zadanie 3

Utwórz tablicę z 3 liczbami o nazwie points. Uzupełnij tablicę dowolnymi liczbami. Utwórz zmienną typu int o nazwie avg i przypisz do niej średnią punktów z tablicy. Podziel sumę wszystkich liczb przez rozmiar tablicy.

Pamiętaj o zmianie kolejności działań za pomocą nawiasów okrągłych.

Zadanie 3 

Rozwiązanie zadania 3