Конкатенація

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

Конкатенація (лат. concatēnāre, об'єднання, з'єднання) — в загальному сенсі - функція з'єднання двох сутностей або результат такої операції[1][2].

Конкатенація в програмуванні - послідовне з'єднання значень декількох змінних та повернення результуючого значення. Аргументами такої функції можуть бути такі сутності, як рядки або масиви, результатом - ланцюжок цих сутностей.

Приклади:

  • конкатенація слів «мікро» і «світ» дасть слово «мікросвіт».
  • конкатенація рядків «34» та «84» дають результат «3484».

У математиці[3]

Конкатенаціябінарна операція, визначена на словах даного алфавіту. Якщо α=a1an і β=b1bm слова в алфавіті A, то конкатенацією слів αі β, яку позначимо в цій статті як αβ, буде слово γв тому ж алфавіті A, що визначається рівністю

γ=αβ=a1anb1bm.

Наприклад, якщо α=media і β=wiki слова в алфавіті A={a,b,c,,z}, що містить всі літери латинського алфавіту, то

γ=αβ=mediawiki=mediawiki.

Властивості конкатенації

  • Операція конкатенації асоціативна.
  • Операція конкатенації некомутативна. Дійсно, wikimedia=wikimedia, але mediawiki=mediawikiwikimedia. Від перестановки операндів змінюється результат операції, що й означає її некомутативність.
  • Порожнє слово, ε, є нейтральним елементом (одиницею) операції конкатенації. Тобто, якщо ε- порожнє слово, то для будь-якого слова α виконана рівність:

εα=αε=α.

  • Множина A* всіх слів у алфавіті утворює моноїд (так звана «вільна напівгрупа»).
  • Множина A*{ε} всіх непустих слів у алфавіті утворює напівгрупу.
  • Довжина конкатенації слів дорівнює сумі довжин операндів:

|αβ|=|α|+|β|.

Піднесення до степеня

Операція конкатенації слів, подібно операції множення чисел, породжує операцію піднесення до степеня. Нехай α деяке слово в алфавіті A , а n ціле невід'ємне число. Тоді n-м ступенем слова α, що позначається αn, буде слово γ в тому ж алфавіті A, визначене рівністю:

γ=αn=ααn

У випадку n=0, степінь α0за визначенням буде рівною порожньому слову, ε.

В інформатиці

Операція конкатенації визначається для типів даних, які мають структуру послідовності (список, чергу, масив і ряд інших). У загальному випадку, результатом конкатенації двох об'єктів A і B є об'єкт C=AB, отриманий почерговим додаванням всіх елементів об'єкта B, починаючи з початку, в кінець об'єкта A.

З міркувань зручності й ефективності розрізняють дві форми операції конкатенації:

  1. Модифікуюча конкатенація. Результат операції формується в лівому операнді.
  2. Немодифікуюча конкатенація. Результатом є новий об'єкт, операнди залишаються незмінними.[3]

Алгоритм

Алгоритм конкатенації на прикладі двох масивів наведений нижче[4].

Дано:

  1. Масив A з розміром N.
  2. Масив B з розміром M.
  3. Масив C з розміром M+N, що є результатом конкатенації масивів A та B.
  4. Індекс масиву I.

Суть алгоритму:

1. Виконати копіювання масиву A в масив C для I1,2,...M:

C[I]A[I]

2. Виконати копіювання масиву B в масив C для I1,2,...N:

C[M+I]B[I]

3. END

В мовах програмування

C

В мові програмування C функція конкатенації рядків strcat міститься в бібліотеці <string.h> [5][6].

#include <stdio.h> 
#include <string.h> 

#define N 50

void main() 
{ 
	// Декларація змінної example
	char example[N]; 
    // Копіювати рядок в змінну example
	strcpy(example, "Кон"); 
	// Виконати конкатенацію значення змінної example
	strcat(example, "катенація");
	// Вивести на екран змінну example
	printf("%s\n", example); 
}

Шаблон:Compu-stub

Шаблон:Math-stub Шаблон:Без джерел Шаблон:ВП-портали