Ця стаття не містить . (липень 2019) |
У інформатиці запис (англ. record) (що також називають структурою або об'єднаною інформацією) — це базова структура даних. Запис — це колекція полів, можливо інформації різного типу, зазвичай у зафіксованій кількості та послідовності. Поля записів також можуть називатися елементами, хоча це може збільшити ризик плутанини з елементами колекції, або членами, особливо у об'єктно-орієнтованому програмуванні. Кортеж може або не може вважатися записом, залежно від домовленостей та специфіки мови програмування.
Наприклад інформація може зберігатися як запис, що вміщує числове поле року, поле місяця, представлене як рядок та числове поле дня місяця. Запис Персоналу може вміщувати ім'я, платню та посаду. Запис Кола може вміщувати центр та радіус — у цьому прикладі сам центр може бути представлений як запис точки, який містить координати x та у.
Записи відрізняються від масивів тим, що кількість їх полів зазвичай фіксована, кожне поле має назву і кожне поле іншого типу.
Тип запису це тип інформації, що описує такі значення та змінні. Найсучасніші комп'ютерні мови дозволяють програмісту визначати нові типи записів. Визначення включає вказання типу інформації кожного поля та ідентифікатор (назва, ярлик, тег, мітка), через який до нього можна отримати доступ. У теорії типів, добуток типів (з відсутніми назвами полів) в загальному переважає через простоту, але належні типи записів вивчаються на мовах таких як система F-sub. Оскільки записи теоретичного типу можуть вміщувати першокласні поля функціонального типу, додатково з інформацією вони можуть виражати багато характеристик об'єктно-орієнтованого програмування
Записи можуть існувати у будь-якому середовищі зберігання, включаючи основну пам'ять та носії даних, такі як магнітна стрічка або жорсткі диски. Записи — це основний компонент більшості структур інформації, особливо пов'язані структури даних.[] Багато файлів комп'ютеру організовані як масиви логічних записів, часто згруповані у більші фізичні записи або блоки для ефективності. Параметри функції або процедури часто можуть розглядатися як поля перемінного запису; і аргументи, спрямовані на цю функцію можуть розглядатися як значення запису, що призначається до цієї змінної під час запиту. Також у стеку викликів це часто використовується для здійснення процедурних запитів, кожний вхід це активація запиту або конструкція запиту, що містить параметри процедури та місцеві перемінні, зворотню адресу та інші внутрішні поля.
Об'єкт у об'єктно-орієнтованій мові — це обов'язково запис, що містить процедури спеціалізовані для підтримання цього запису; і типи об'єктів — це удосконалення типів записів. Насправді, у найбільш об'єктно-орієнтованій мові записи це лише спеціальні типи об'єктів і відомі як прості структури даних, на відміну від об'єктів, які використовують об'єктно-орієнтовані характеристики.
Запис може бути розглянутий як комп'ютерний аналог математичного кортежу. В той же час тип запису може розглядатися як комп'ютерна мова аналог декартового добутка двох або більше математичних множин або реалізація абстрактного добутку типів на спеціальній мові.
Історія
Поняття запису можна простежити до різних типів таблиць і бухгалтерських книг, що використовуються в бухгалтерському обліку, так як в далекі часи. Сучасне поняття записів в інформатиці, з полями чітко визначеного типу і розміру, вже закладена в 19-му столітті механічними калькуляторами, такими як аналітична машина Беббіджа.
Оригінальним машинозчитуваним носієм, який використовувався для даних була перфокарта, що використовувалась для перепису у Сполучених Штатів в 1890: кожна перфокарта була одним записом. Порівняйте записи журналу з 1880 року і перфокарту з 1895. Записи добре зарекомендували себе в першій половині 20-го століття, коли найбільшу кількість даних було оброблено за допомогою перфокарт. Як правило, кожен запис даних був записаний в одній перфокарті із зазначенням конкретних стовпців, що присвоювалися конкретним назвам. В основному, запис був найменшою одиницею, яка могла бути прочитана з зовнішнього пристрою (наприклад, пристрої читання карт, стрічка або диск).
Більшість реалізацій машинної мови та ранні мови асемблера не мали спеціального синтаксису для записів, але концепція була доступна (і широко використовувалася) за рахунок використання індексних регістрів, непрямої адресації і коду, що модифікується самостійно. Деякі ранні комп'ютери, такі як , мали апаратну підтримку для обмежування записів і полів, а також спеціальні інструкції з копіювання таких записів.
Концепція записів і полів займала центральне місце в деяких ранніх утилітах з сортування і даних та табуляції, таких як RPG (мова програмування) — генератор звітів компанії IBM.
COBOL був першою широко поширеною мовою програмування для підтримки типів записів, і його алгоритми визначення запису були досить складними на той час. Мова дозволяє визначати вкладені записи за допомогою алфавітно-цифрових символів, цілих і дробових полів довільного розміру і точності, а також полів, які автоматично формулюють будь-яке значення, присвоєне їм (наприклад, введення валютних знаків, знаків після коми і цифри групи сепараторів). Кожен файл пов'язується зі змінною запису, у яку дані зчитуються або з якої записуються. COBOL також надає оператор MOVE
CORRESPONDING
, за допомогою яких відповідні поля двох записів призначаються відповідно з їх іменами.
Ранні мови, розроблені для простих обчислень, такі як FORTRAN (до FORTRAN IV) і Algol 60, не мають підтримки типів записів; але більш пізні версії цих мов, такі як Fortran 77 і [en] підтримують останні. Оригінальна версія мови програмування LISP теж не підтримує записів, але його S-вирази є адекватною заміною. Мова програмування Pascal була одною з перших мов, що повністю інтегрувала типи записів з іншими базовими типами в логічну екосистему.
Мова програмування C спочатку підтримувала концепцію запису як свого роду шаблон (struct
), ніж повноцінний запис. Останній зрештою був наданий (за допомогою декларації typedef
), але ці два поняття і досі відрізняються. Більшість мов, розроблені після того, як був розроблений Pascal (наприклад, Ada, Modula і Java ) також підтримують записи.
Операції
- Декларація нового типу запису, в тому числі положення, тип і (можливо) ім'я кожного поля;
- Декларація змінних та значень, як мають даний тип запису;
- Будівництво значення запису з заданих значень поля і (іноді) з заданими іменами полів;
- Вибір області запису з явним ім'ям;
- Присвоєння значення запису до запису змінної;
- Порівняння двох записів на рівність;
- Обчислення стандартного значення геш-функції для запису.
Вибір поля від значення запису дає значення.
Деякі мови можуть надавати методи, які перераховують всі поля запису, або, наприклад, поля, які є посиланнями. Ці методи необхідні для реалізації певних видів робіт, таких як пошук помилок, збирання сміття, серіалізація . Це вимагає певної міри типізованого поліморфізму .
У системах з записами підтипів, операції на значеннях типу запису можуть також включати в себе:
- Додавання нового поля в запис, встановлення значення нового поля.
- Видалення поля із запису. В таких умовах, певний тип запису означає, що набір полів присутні, але значення цього типу можуть містити додаткові поля. Запис з полями х, у і z за такою логікою належить до типу записів з полями х і у, так само як і запис з полями х, у , і m . Сенс полягає в тому, що передача запису ( х, у , m ) в функцію, яка очікує запис ( х, у ) як аргумент, повинна спрацювати, так як ця функція знайде всі поля, необхідні у запису. Багато способів практичного здійснення записів в мовах програмування матиме проблеми з наданням такої різноманітності, але це питання є головною характеристикою типів записів в більш теоретичних контекстах.
Призначення і порівняння
Більшість мов дозволяють присвоювання між записами, які мають такий самий тип запису (в тому числі тих же типів полів і імен, в тому ж порядку). Проте залежно від мови, два типи запису даних, які були визначені окремо, можуть бути розглянені як окремі види, навіть якщо вони мають одні і ті ж поля. Деякі мови можуть також дозволяти присвоювання між записами, чиї поля мають різні імена, відповідні кожному значенню поля з відповідною змінною поля згідно з їх позиціями в запису; так що, наприклад, комплексне число з полями real
і imag
можуть бути віднесені до двовимірної точки із полями X
і Y
. В цьому прикладі потрібні два операнда з метою мати ту ж послідовність типів полів. Деякі мови можуть також вимагати, щоб відповідні типи мали однаковий розмір і кодування, так що весь запис може бути призначений як неінтерпретований бітовий рядок. Інші мови можуть бути більш гнучкими в цьому відношенні, і вимагають тільки, що кожне значення поля може бути абсолютно легально віднесено до відповідної змінної поля; так що, наприклад, short integer поле може бути призначене до long integer поля, або навпаки. Інші мови (наприклад, COBOL) можуть порівнювати поля і значення за їхніми іменами, а не позиціями. Ці ж можливості застосовуються для порівняння двох записів на рівність. Деякі мови можуть також дозволити інші порівняння такі як ('<' і '>'), використовуючи лексикографічний порядок на основі порівняння окремих полів.
Дистрибутивний вибір поля в Algol 68
У Algol 68, якщо Pts
був масив записів, кожен з яких був цілим числом X
і Y
, можна було б написати Pts.Y
, щоб отримати масив цілих чисел, що складається з Y
полів всіх елементів Pts
. В результаті, оператори Pts[3].Y := 7
і Pts.Y[3] := 7
буде мати той самий ефект.
Оператор"with" у Pascal
У мові програмування Pascal, командаwith R do S
буде виконувати послідовність команд S
, як якщо б все полів запису R
були оголошені як змінні. Таким чином, замість того, щоб писати
pt.x := 5; pt.y := pt.x + 3;
можна написати
with pt do begin x := 5; y := x + 3; end
.
Відображення у пам'яті
Відображення записів у пам'яті відрізняється залежно від мови програмування. Зазвичай поля зберігаються у послідовному положенні у пам'яті, в тому ж порядку, в якому вони були оголошені в типі запису. В результаті це може спричинити, що два або більше полів зберігаються в одному й тому ж слові у пам'яті; насправді ця характеристика часто використовується у системному програмуванні, щоб отримати доступ до спеціальних уривків слова. З іншого боку більшість компіляторів будуть додавати перевантажуючі поля, в цілому невидимі для програміста для дотримання групових обмежень накладених машиною, — тоді говорять, що поле числа з рухомою комою має займати лише одне слово. Деякі мови можуть представляти запис як масив адрес, що вказують на поля (і, можливо, на їх назви та\або типи). Об'єкти у об'єктно-орієнтованих мовах часто представлені у здебільшого складний спосіб, особливо у мовах, що дозволяють множинне наслідування класів.
Записи, що визначаються самостійно
Записи, що визначаються самостійно — це тип записів, що вміщують інформацію для визначення типу запису та місце знаходження інформації у записі. Вони можуть вміщувати нащадки елементів; елементи можуть, унаслідок цього, зберігатися у будь-якому порядку або можуть не бути включені. За альтернативою різні елементи запису, в яких кожний включає ідентифікатор елементу, можуть просто наслідувати один одний у будь-якому порядку.
Джерела
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno lipen 2019 U informatici zapis angl record sho takozh nazivayut strukturoyu abo ob yednanoyu informaciyeyu ce bazova struktura danih Zapis ce kolekciya poliv mozhlivo informaciyi riznogo tipu zazvichaj u zafiksovanij kilkosti ta poslidovnosti Polya zapisiv takozh mozhut nazivatisya elementami hocha ce mozhe zbilshiti rizik plutanini z elementami kolekciyi abo chlenami osoblivo u ob yektno oriyentovanomu programuvanni Kortezh mozhe abo ne mozhe vvazhatisya zapisom zalezhno vid domovlenostej ta specifiki movi programuvannya Napriklad informaciya mozhe zberigatisya yak zapis sho vmishuye chislove pole roku pole misyacya predstavlene yak ryadok ta chislove pole dnya misyacya Zapis Personalu mozhe vmishuvati im ya platnyu ta posadu Zapis Kola mozhe vmishuvati centr ta radius u comu prikladi sam centr mozhe buti predstavlenij yak zapis tochki yakij mistit koordinati x ta u Zapisi vidriznyayutsya vid masiviv tim sho kilkist yih poliv zazvichaj fiksovana kozhne pole maye nazvu i kozhne pole inshogo tipu Tip zapisu ce tip informaciyi sho opisuye taki znachennya ta zminni Najsuchasnishi komp yuterni movi dozvolyayut programistu viznachati novi tipi zapisiv Viznachennya vklyuchaye vkazannya tipu informaciyi kozhnogo polya ta identifikator nazva yarlik teg mitka cherez yakij do nogo mozhna otrimati dostup U teoriyi tipiv dobutok tipiv z vidsutnimi nazvami poliv v zagalnomu perevazhaye cherez prostotu ale nalezhni tipi zapisiv vivchayutsya na movah takih yak sistema F sub Oskilki zapisi teoretichnogo tipu mozhut vmishuvati pershoklasni polya funkcionalnogo tipu dodatkovo z informaciyeyu voni mozhut virazhati bagato harakteristik ob yektno oriyentovanogo programuvannya Zapisi mozhut isnuvati u bud yakomu seredovishi zberigannya vklyuchayuchi osnovnu pam yat ta nosiyi danih taki yak magnitna strichka abo zhorstki diski Zapisi ce osnovnij komponent bilshosti struktur informaciyi osoblivo pov yazani strukturi danih dzherelo Bagato fajliv komp yuteru organizovani yak masivi logichnih zapisiv chasto zgrupovani u bilshi fizichni zapisi abo bloki dlya efektivnosti Parametri funkciyi abo proceduri chasto mozhut rozglyadatisya yak polya pereminnogo zapisu i argumenti spryamovani na cyu funkciyu mozhut rozglyadatisya yak znachennya zapisu sho priznachayetsya do ciyeyi zminnoyi pid chas zapitu Takozh u steku viklikiv ce chasto vikoristovuyetsya dlya zdijsnennya procedurnih zapitiv kozhnij vhid ce aktivaciya zapitu abo konstrukciya zapitu sho mistit parametri proceduri ta miscevi pereminni zvorotnyu adresu ta inshi vnutrishni polya Ob yekt u ob yektno oriyentovanij movi ce obov yazkovo zapis sho mistit proceduri specializovani dlya pidtrimannya cogo zapisu i tipi ob yektiv ce udoskonalennya tipiv zapisiv Naspravdi u najbilsh ob yektno oriyentovanij movi zapisi ce lishe specialni tipi ob yektiv i vidomi yak prosti strukturi danih na vidminu vid ob yektiv yaki vikoristovuyut ob yektno oriyentovani harakteristiki Zapis mozhe buti rozglyanutij yak komp yuternij analog matematichnogo kortezhu V toj zhe chas tip zapisu mozhe rozglyadatisya yak komp yuterna mova analog dekartovogo dobutka dvoh abo bilshe matematichnih mnozhin abo realizaciya abstraktnogo dobutku tipiv na specialnij movi IstoriyaPonyattya zapisu mozhna prostezhiti do riznih tipiv tablic i buhgalterskih knig sho vikoristovuyutsya v buhgalterskomu obliku tak yak v daleki chasi Suchasne ponyattya zapisiv v informatici z polyami chitko viznachenogo tipu i rozmiru vzhe zakladena v 19 mu stolitti mehanichnimi kalkulyatorami takimi yak analitichna mashina Bebbidzha Originalnim mashinozchituvanim nosiyem yakij vikoristovuvavsya dlya danih bula perfokarta sho vikoristovuvalas dlya perepisu u Spoluchenih Shtativ v 1890 kozhna perfokarta bula odnim zapisom Porivnyajte zapisi zhurnalu z 1880 roku i perfokartu z 1895 Zapisi dobre zarekomenduvali sebe v pershij polovini 20 go stolittya koli najbilshu kilkist danih bulo obrobleno za dopomogoyu perfokart Yak pravilo kozhen zapis danih buv zapisanij v odnij perfokarti iz zaznachennyam konkretnih stovpciv sho prisvoyuvalisya konkretnim nazvam V osnovnomu zapis buv najmenshoyu odiniceyu yaka mogla buti prochitana z zovnishnogo pristroyu napriklad pristroyi chitannya kart strichka abo disk Bilshist realizacij mashinnoyi movi ta ranni movi asemblera ne mali specialnogo sintaksisu dlya zapisiv ale koncepciya bula dostupna i shiroko vikoristovuvalasya za rahunok vikoristannya indeksnih registriv nepryamoyi adresaciyi i kodu sho modifikuyetsya samostijno Deyaki ranni komp yuteri taki yak mali aparatnu pidtrimku dlya obmezhuvannya zapisiv i poliv a takozh specialni instrukciyi z kopiyuvannya takih zapisiv Koncepciya zapisiv i poliv zajmala centralne misce v deyakih rannih utilitah z sortuvannya i danih ta tabulyaciyi takih yak RPG mova programuvannya generator zvitiv kompaniyi IBM COBOL buv pershoyu shiroko poshirenoyu movoyu programuvannya dlya pidtrimki tipiv zapisiv i jogo algoritmi viznachennya zapisu buli dosit skladnimi na toj chas Mova dozvolyaye viznachati vkladeni zapisi za dopomogoyu alfavitno cifrovih simvoliv cilih i drobovih poliv dovilnogo rozmiru i tochnosti a takozh poliv yaki avtomatichno formulyuyut bud yake znachennya prisvoyene yim napriklad vvedennya valyutnih znakiv znakiv pislya komi i cifri grupi separatoriv Kozhen fajl pov yazuyetsya zi zminnoyu zapisu u yaku dani zchituyutsya abo z yakoyi zapisuyutsya COBOL takozh nadaye operator MOVE CORRESPONDING za dopomogoyu yakih vidpovidni polya dvoh zapisiv priznachayutsya vidpovidno z yih imenami Ranni movi rozrobleni dlya prostih obchislen taki yak FORTRAN do FORTRAN IV i Algol 60 ne mayut pidtrimki tipiv zapisiv ale bilsh pizni versiyi cih mov taki yak Fortran 77 i en pidtrimuyut ostanni Originalna versiya movi programuvannya LISP tezh ne pidtrimuye zapisiv ale jogo S virazi ye adekvatnoyu zaminoyu Mova programuvannya Pascal bula odnoyu z pershih mov sho povnistyu integruvala tipi zapisiv z inshimi bazovimi tipami v logichnu ekosistemu Mova programuvannya C spochatku pidtrimuvala koncepciyu zapisu yak svogo rodu shablon struct nizh povnocinnij zapis Ostannij zreshtoyu buv nadanij za dopomogoyu deklaraciyi typedef ale ci dva ponyattya i dosi vidriznyayutsya Bilshist mov rozrobleni pislya togo yak buv rozroblenij Pascal napriklad Ada Modula i Java takozh pidtrimuyut zapisi OperaciyiDeklaraciya novogo tipu zapisu v tomu chisli polozhennya tip i mozhlivo im ya kozhnogo polya Deklaraciya zminnih ta znachen yak mayut danij tip zapisu Budivnictvo znachennya zapisu z zadanih znachen polya i inodi z zadanimi imenami poliv Vibir oblasti zapisu z yavnim im yam Prisvoyennya znachennya zapisu do zapisu zminnoyi Porivnyannya dvoh zapisiv na rivnist Obchislennya standartnogo znachennya gesh funkciyi dlya zapisu Vibir polya vid znachennya zapisu daye znachennya Deyaki movi mozhut nadavati metodi yaki pererahovuyut vsi polya zapisu abo napriklad polya yaki ye posilannyami Ci metodi neobhidni dlya realizaciyi pevnih vidiv robit takih yak poshuk pomilok zbirannya smittya serializaciya Ce vimagaye pevnoyi miri tipizovanogo polimorfizmu U sistemah z zapisami pidtipiv operaciyi na znachennyah tipu zapisu mozhut takozh vklyuchati v sebe Dodavannya novogo polya v zapis vstanovlennya znachennya novogo polya Vidalennya polya iz zapisu V takih umovah pevnij tip zapisu oznachaye sho nabir poliv prisutni ale znachennya cogo tipu mozhut mistiti dodatkovi polya Zapis z polyami h u i z za takoyu logikoyu nalezhit do tipu zapisiv z polyami h i u tak samo yak i zapis z polyami h u i m Sens polyagaye v tomu sho peredacha zapisu h u m v funkciyu yaka ochikuye zapis h u yak argument povinna spracyuvati tak yak cya funkciya znajde vsi polya neobhidni u zapisu Bagato sposobiv praktichnogo zdijsnennya zapisiv v movah programuvannya matime problemi z nadannyam takoyi riznomanitnosti ale ce pitannya ye golovnoyu harakteristikoyu tipiv zapisiv v bilsh teoretichnih kontekstah Priznachennya i porivnyannya Bilshist mov dozvolyayut prisvoyuvannya mizh zapisami yaki mayut takij samij tip zapisu v tomu chisli tih zhe tipiv poliv i imen v tomu zh poryadku Prote zalezhno vid movi dva tipi zapisu danih yaki buli viznacheni okremo mozhut buti rozglyaneni yak okremi vidi navit yaksho voni mayut odni i ti zh polya Deyaki movi mozhut takozh dozvolyati prisvoyuvannya mizh zapisami chiyi polya mayut rizni imena vidpovidni kozhnomu znachennyu polya z vidpovidnoyu zminnoyu polya zgidno z yih poziciyami v zapisu tak sho napriklad kompleksne chislo z polyami real i imag mozhut buti vidneseni do dvovimirnoyi tochki iz polyami X i Y V comu prikladi potribni dva operanda z metoyu mati tu zh poslidovnist tipiv poliv Deyaki movi mozhut takozh vimagati shob vidpovidni tipi mali odnakovij rozmir i koduvannya tak sho ves zapis mozhe buti priznachenij yak neinterpretovanij bitovij ryadok Inshi movi mozhut buti bilsh gnuchkimi v comu vidnoshenni i vimagayut tilki sho kozhne znachennya polya mozhe buti absolyutno legalno vidneseno do vidpovidnoyi zminnoyi polya tak sho napriklad short integer pole mozhe buti priznachene do long integer polya abo navpaki Inshi movi napriklad COBOL mozhut porivnyuvati polya i znachennya za yihnimi imenami a ne poziciyami Ci zh mozhlivosti zastosovuyutsya dlya porivnyannya dvoh zapisiv na rivnist Deyaki movi mozhut takozh dozvoliti inshi porivnyannya taki yak lt i gt vikoristovuyuchi leksikografichnij poryadok na osnovi porivnyannya okremih poliv Distributivnij vibir polya v Algol 68 U Algol 68 yaksho Pts buv masiv zapisiv kozhen z yakih buv cilim chislom X i Y mozhna bulo b napisati Pts Y shob otrimati masiv cilih chisel sho skladayetsya z Y poliv vsih elementiv Pts V rezultati operatori Pts 3 Y 7i Pts Y 3 7 bude mati toj samij efekt Operator with u Pascal U movi programuvannya Pascal komandawith R do S bude vikonuvati poslidovnist komand S yak yaksho b vse poliv zapisu R buli ogolosheni yak zminni Takim chinom zamist togo shob pisati pt x 5 pt y pt x 3 mozhna napisati with pt do begin x 5 y x 3 end Vidobrazhennya u pam yati Vidobrazhennya zapisiv u pam yati vidriznyayetsya zalezhno vid movi programuvannya Zazvichaj polya zberigayutsya u poslidovnomu polozhenni u pam yati v tomu zh poryadku v yakomu voni buli ogolosheni v tipi zapisu V rezultati ce mozhe sprichiniti sho dva abo bilshe poliv zberigayutsya v odnomu j tomu zh slovi u pam yati naspravdi cya harakteristika chasto vikoristovuyetsya u sistemnomu programuvanni shob otrimati dostup do specialnih urivkiv slova Z inshogo boku bilshist kompilyatoriv budut dodavati perevantazhuyuchi polya v cilomu nevidimi dlya programista dlya dotrimannya grupovih obmezhen nakladenih mashinoyu todi govoryat sho pole chisla z ruhomoyu komoyu maye zajmati lishe odne slovo Deyaki movi mozhut predstavlyati zapis yak masiv adres sho vkazuyut na polya i mozhlivo na yih nazvi ta abo tipi Ob yekti u ob yektno oriyentovanih movah chasto predstavleni u zdebilshogo skladnij sposib osoblivo u movah sho dozvolyayut mnozhinne nasliduvannya klasiv Zapisi sho viznachayutsya samostijno Zapisi sho viznachayutsya samostijno ce tip zapisiv sho vmishuyut informaciyu dlya viznachennya tipu zapisu ta misce znahodzhennya informaciyi u zapisi Voni mozhut vmishuvati nashadki elementiv elementi mozhut unaslidok cogo zberigatisya u bud yakomu poryadku abo mozhut ne buti vklyucheni Za alternativoyu rizni elementi zapisu v yakih kozhnij vklyuchaye identifikator elementu mozhut prosto nasliduvati odin odnij u bud yakomu poryadku Dzherela