Радковы тып, праграмаванне

З пляцоўкі Вікіпедыя.
Перайсці да: рух, знайсці

У праграмаванні, тэкставы радок альбо радок (англ. string) традыцыйна ўяўляе сабой паслядоўнасць знакаў альбо ў форме літарала, альбо ў форме пераменнай. Пераменныя могуць дазваляць змяненне асобных элементаў і/альбо даўжыні радка, але могуць быць і фіксаванымі (пасля стварэння). Тэкставы радок у асноўным разглядаюць як тып даных, які часта рэалізаваны як масіў байтаў (альбо слоў), і захоўвае паслядоўнасць элементаў, звычайна — знакаў, у нейкай кадзіроўцы. Радок можа азначаць і больш агульныя масівы альбо паслядоўнасці (спісы) і структуры.

У залежнасці ад мовы праграмавання і выбранага тыпу даных, пераменная, абвешчаная як радок, можа альбо займаць заранёў вызначаны аб'ём памяці пад сваю максімальную даўжыню, альбо займаць памяць дынамічна, тым самым адаптуючыся пад колькасць элементаў.

Калі радок з'яўляецца ў зыходным кодзе як аформлены асобым чынам набор літар, яго мянуюць радковым літаралам.

У фармальных мовах(руск.) бел., што ўжываюцца ў матэматычнай логіцы і тэарэтычнай інфарматыцы(руск.) бел., радок — гэта канчатковая паслядоўнасць знакаў, што належаць мноству, якое мянуецца алфавітам.

Фармальная тэорыя[правіць | правіць зыходнік]

Няхай Σ будзе непустым концым мноствам літараў алфавіту. Элементы Σ мянуюцца сімваламі альбо знакамі. Радок (альбо слова) над Σ — то любая концая паслядоўнасць знакаў з Σ. Прыкладам, калі Σ = {0, 1}, дык 01011 ёсць радком над Σ.

Даўжыня радка — то колькасць знакаў у радку, альбо даўжыня паслядоўнасці, якая можа прымаць любыя неадмоўныя значэнні. Пусты радок — то ўнікальны радок над Σ з нулявой даўжынёй. Пазначаецца як ε альбо λ.

Мноства ўсіх радкоў над Σ з даўжынёй n пазначаецца Σn. Прыкладам, калі Σ = {0, 1}, дык Σ2 = {00, 01, 10, 11}. Заўважце, што Σ0 = {ε} для любога алфавіту Σ.

Мноства ўсіх радкоў над Σ з любой даўжынёй — ёсць замыканнем Кліні(англ.) бел. алфавіта Σ і пазначаецца як Σ*. У тэрмінах Σn,

\Sigma^{*} = \bigcup_{n \in \N} \Sigma^{n}

Прыкладам, калі Σ = {0, 1}, Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, ...}, дзе Σ* ёсць злічоным мноствам(руск.) бел., а ўсе элементы Σ* маюць концую даўжыню.

Мноства радкоў над Σ (г. зн. любое падмноства мноства Σ*) мянуецца фармальнай мовай над Σ. Прыкладам, калі Σ = {0, 1}, дык мноства радкоў з цотнай колькасцю нулёў ({ε, 1, 00, 11, 001, 010, 100, 111, 0000, 0011, 0101, 0110, 1001, 1010, 1100, 1111, ...}) ёсць фармальнай мовай над Σ.

Канкатэнацыя і падрадкі[правіць | правіць зыходнік]

Канкатэнацыя — гэта важная бінарная аперацыя на мностве Σ*. Для любых двух радкоў s і t з мноства Σ* канкатэнацыя вызначаецца як паслядоўнасць знакаў радка s, за якімі ідзе паслядоўнасць знакаў радка t, і абазначаецца st. Прыкладам, калі Σ = {a, b, ..., z}, s = bear, а t = hug, дык st = bearhug, а ts = hugbear.

Канкатэнацыя радкоў — аперацыя асацыятыўная, але некамутатыўная. Пусты радок выступае як неўтральны элемент; для любога радка s, εs = sε = s. Такім чынам, мноства Σ* і аперацыя канкатэнацыя становяць маноід.