Tablica (informatyka)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Ten artykuł dotyczy informatyki. Zobacz też: inne znaczenia tego słowa.

Tablicakontener uporządkowanych danych[1] takiego samego typu[2][3], w którym poszczególne elementy dostępne są za pomocą kluczy (indeksu)[1][3]. Indeks najczęściej przyjmuje wartości numeryczne. Rozmiar tablicy jest albo ustalony z góry (tablice statyczne), albo może się zmieniać w trakcie wykonywania programu (tablice dynamiczne). Tablice jednowymiarowe mogą przechowywać inne tablice, dzięki czemu uzyskuje się tablice wielowymiarowe[1][4]. W tablicach wielowymiarowych poszczególne elementy są adresowane przez ciąg indeksów[3].

Praktycznie wszystkie języki programowania obsługują tablice – jedynie w niektórych językach funkcyjnych zamiast tablic używane są listy (choć tablice zwykle też są dostępne). W matematyce odpowiednikiem tablicy jednowymiarowej jest ciąg, a tablicy dwuwymiarowej - macierz.

Tablice w popularnych językach programowania[edytuj]

Pascal[edytuj]

Tablice w Pascalu są typem strukturalnym[5], będącym zbiorem elementów adresowanych typem prostym porządkowym[3].

{ jednowymiarowa tablica 16 liczb całkowitych indeksowana wartościami od 1 do 16 }
var tablica : array [1..16] of Integer;

C/C++[edytuj]

Tablice w C/C++ są typem pochodnym[2] obiektów, które zajmują ciągły obszar pamięci[2]. Indeksowanie elementów zawsze zaczyna się od zera[2].

/* jednowymiarowa tablica 6 liczb całkowitych */
int tablica[6];

int tablica2[6][6]; //tablica dwuwymiarowa
int tablica3[7][7][7]; //tablica trójwymiarowa

Przy deklaracji wielkości tablicy użyte mogą zostać tylko liczby naturalne (bez zera).

C#[edytuj]

Tablice w C# są obiektami[6]. Wyróżnia się tablice jednowymiarowe, wielowymiarowe i nieregularne (poszarpane) czyli tablice tablic[7]. Indeksowanie tablic zawsze zaczyna się od zera[7]. Dopuszczalne są tablice bezelementowe[8].

int[] tablica = new int[6]; // jednowymiarowa tablica 6 liczb całkowitych

int[,] tablica2 = new int[6,6]; //tablica dwuwymiarowa
int[,,] tablica3 = new int[7,7,7]; //tablica trójwymiarowa

// tablica nieregularna
int[][] tablicaX = new int[3][]; // jednowymiarowa tablica na trzy różne jednowymiarowe tablice

Java[edytuj]

Tablice w Javie są obiektami[9]. Można zdefiniować tylko tablice jednowymiarowe[9]. Tablice wielowymiarowe można symulować przez definiowanie tablicy tablic[9]. Indeksowanie tablic zawsze zaczyna się od zera[9].

int[] tablica = new int[6]; // deklaracja tablicy liczb całkowitych z jednoczesną alokacją na 6 elementów

JavaScript[edytuj]

W języku tym tablice tworzy się tak:

var tablica =[1, 2, 3];
var tablicaPusta=[];

lub

var tablica=new Array(1,2,3);
var tablicaPusta=new Array();

Tablice w JavaScripcie są dynamiczne, co oznacza, że nie trzeba deklarować ich wielkości. Tablica powiększa się automatycznie.

var tablica=[1,2,3];
tablica[4]=5;

jest równoważne

var tablica=[1,2,3,undefined,5];

Zobacz też[edytuj]

Przypisy

  1. a b c Markowski, Rydzewski i Kruszyński 1989 ↓, s. 74.
  2. a b c d Grębosz 2000 ↓, s. 127.
  3. a b c d Marciniak 1991 ↓, s. 111.
  4. Grębosz 2000 ↓, s. 143.
  5. Marciniak 1991 ↓, s. 110.
  6. Tablice jako obiekty (Przewodnik programowania w języku C#), msdn.microsoft.com [dostęp 2016-07-12].
  7. a b Tablice (Przewodnik programowania w języku C#) [dostęp 2016-07-12].
  8. Array.Empty<T> Method (), msdn.microsoft.com [dostęp 2016-07-12] (ang.).
  9. a b c d Arrays (The Java™ Tutorials > Learning the Java Language > Language Basics), docs.oracle.com [dostęp 2016-07-13] (ang.).

Bibliografia[edytuj]

  • JerzyJ. Grębosz JerzyJ., Symfonia C++. Programowanie w języku C++ orientowane obiektowo, t. I,II,III, Oficyna Kallimach, 2000.
  • AndrzejA. Marciniak AndrzejA., Tutbo Pascal 5.5, wyd. wydanie drugie, Poznań: Wydawnictwo NAKOM, 1991, ISBN 83-85060-20-0, ISSN 0867-6011.
  • AndrzejA. Markowski AndrzejA., AndrzejA. Rydzewski AndrzejA., HenrykH. Kruszyński HenrykH., Leksykon techniki mikrokomputerowej, seria: Mikrokomputery, Warszawa: Wydawnictwo Czasopism i Książek Technicznych NOT-SIGMA, 1989, ISBN 83-85001-28-X.