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ójwymiarowa3. 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 dwuwymiarowej4. 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



