Polski Česky English Français Русский Español
Home Site Original War Support Community Forums Facebook YouTube Discord
Your first time here? View this!
» Index > Modding Archive > SAIL - Operacje na tablicach

SAIL - Operacje na tablicach

Serpent pisze: ↑czw gru 06, 2018 9:41 am Temat zbiorczy dotyczący operacji na tablicach w SAILu.

1. Co to jest tablica?

  • Jest to zbiór uporządkowanych danych, w którym poszczególne elementy mają przyporządkowany numer (indeks).
  • W SAILu indeksami są liczby naturalne.
  • Pierwszy element w tablicy zawsze przyjmuje wartość 1.
  • Zawartość tablicy zawiera się w nawiasach kwadratowych [ ].
  • Tablice mogą przechowywać różne typy danych.
  • Możliwe jest tworzenie tablic wielowymiarowych.
  • Przypisanie w stylu tablica[indeks] = wartosc; jest niedozwolona.

2. Tworzenie tablicy
Aby utworzyć tablicę wystarczy użyć operatora przypisania.

Kod:

tablica := [];

Możliwe jest też stworzenie tablicy z konkretną zawartością.

Kod:

tablica := [1, 2, 3]; // tablica jednowymiarowa
tablica := [ [1, 2], [3, 4]. [1, 4] ]; // tablica dwuwymiarowa
tablica := [ [ [1, 2], [1] ], [ [2], [4, 3] ] ]; // tablica trójwymiarowa

3. Pobranie elementu z tablicy
Aby dostać się do konkretnego elementu w tablicy, wystarczy wskazać na jego indeks.

Kod:

moja_wartosc := tablica[2]; // gdzie 2 oznacza drugi element
moja_wartosc := tablica[1][3]; // odwołanie się do 3 elementu w pierwszym podzbiorze w tablicy dwuwymiarowej

4. Operatory tablicowe

  • ^ - “dokleja” wartości do końca tablicy.

    Kod:

    Przykład: tablica := [3, 4] ^ 5; // => tablica =  [3,4,5]
    Przykład: tablica := [1, 2, 3] ^ [4, 5]; // => tablica = [1, 2, 3, 4, 5]
  • union - “dokleja” dwie tablice z pominięciem identycznych wartości.

    Kod:

    Przykład: tablica := [1, 2] union [3,4]; // => tablica = [1,2,3,4]
    Przykład: tablica := [1, 2] union [2, 3]; // => tablica = [1,2,3]
  • isect - zwraca część wspólną obu tablic.

    Kod:

    Przykład: tablica := [1, 2, 3, 4] isect [3, 4, 5]; // => tablica = [3,4]
  • diff - usuwane podaną wartość z tablicy.

    Kod:

    Przykład: tablica := [11, 21, 31] diff 31; // => tablica = [11, 21]
    Przykład: tablica := [10, 15, 20, 10, 25] diff [10, 20]; // => tablica = [15, 25]

5. Podstawowe funkcje do operacji na tablicach

  • Insert(tablica, indeks, wartość) - dodaje ‘wartość’ na konkretnej pozycji w tablicy. Powoduje przesunięcie wartości które znajdują się na pozycjach za ‘indeksem’.

    Kod:

    tablica := [1];
    tablica := Insert(tablica, 2, 30); // => tablica = [1, 30]
    tablica := Insert(tablica, 2, 15); // => tablica = [1, 15, 30]
  • Replace(tablica, indeks, wartość) - podmienia ‘wartość’ na konkretnej pozycji.

    Kod:

    tablica := [1, 2, 3];
    tablica := Replace(tablica, 2, 4); // => tablica = [1, 4, 3]
    tablica := Replace(tablica, 4, 10); // => tablica = [1, 4, 3, 10]
  • Delete(tablica, indeks) - usuwa element na podanej pozycji.

    Kod:

    tablica := [3, 4, 2, 5];
    tablica := Delete(tablica, 1); // => tablica = [4, 2, 5]
    tablica := Delete(tablica, 3); // => tablica = [4, 2]

W miarę możliwości czasowych będę aktualizować ten temat o dodatkowe informacje :)

Author: Serpent
Topic: https://forum.original-war.net/viewtopic.php?f=42&t=5887

» Index > Modding Archive > SAIL - Operacje na tablicach