Кортеж (інформатика): відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
вікіфікація, оформлення, уточнення
Рядок 1:
'''Корте́ж''' або ''n''-ка — в [[математика|математиці]] впорядкована та [[скінченна множина|скінченна]] сукупність елементів (нескінченний кортеж має назву '''сімейства''').
 
Кількість елементів в кортежі визначає його '''довжину'''. Так, кортеж з двох елементів (тобто довжини 2) називається двійкою, з трьох елементів - — трійкою і  т. д. Кортеж з ''n'' елементів називається ''n''-кою.
 
== Формальне означення ==
Головною властивістю кортежа, яка відрізняє його від [[множина|множини]] є те, що, по-перше, кортеж може містити декілька екземплярів одного об'єкта (в множині однакові об'єкти не розрізняються, і ця властивість також відрізняє кортеж від [[впорядкована множина|впорядкованої множини]]), та, по-друге, об'єкти в кортежі впорядковані. Це твердження формалізується таким чином:
 
: (''a''<sub>1</sub>, ''a''<sub>2</sub>, ...,''a<sub>n</sub>'') = (''b''<sub>1</sub>, ''b''<sub>2</sub>, ..., ''b<sub>n</sub>'') ⇔ ''a''<sub>1</sub> = ''b''<sub>1</sub>, ''a''<sub>2</sub> = ''b''<sub>2</sub> ... ''a''<sub>n</sub> = ''b''<sub>n</sub>
 
Часто кортеж з ''n'' елементів визначається [[індукція|індуктивно]] через [[впорядкована пара|впорядковану пару]], тобто ''n''-ка (де ''n'' > 2) визначається як [[впорядкована пара]] її першого елемента, та кортеж з ''n-1'' її останніх елементів:
 
: (''a''<sub>1</sub>, ''a''<sub>2</sub>, ..., ''a<sub>n</sub>'') = (''a''<sub>1</sub>, (''a''<sub>2</sub>, ..., ''a<sub>n</sub>''))
 
Тобто:
Рядок 21:
 
== У програмуванні ==
У деяких мовах програмування, наприклад, [[Python]] або [[ML]], кортеж&nbsp;— особливий тип даних. У мові Python кортеж ({{lang-en|tuple}}) відрізняється від списку тим, що елементи кортежу не можна змінювати.
:У деяких мовах програмування, наприклад, [[Python]] або [[ML]], кортеж - особливий тип даних. У мові Python кортеж ([[Англійська мова|англ.]] Tuple) відрізняється від списку тим, що елементи кортежу не можна змінювати. Ця програма на [[Python|Python 2.7]], яка використовує кортеж a, виведе помилку в 3-му рядку: <code>TypeError: 'tuple' object does not support item assignment</code>. У мовах програмування зі статичної типізацією кортеж відрізняється від списку тим, що елементи кортежу можуть належати різним типам і набір таких типів заздалегідь визначений типом кортежу, а значить і розмір кортежу також визначено. З іншого боку, колекції (списки, масиви) мають обмеження по типу збережених елементів, але не мають обмеження на довжину. У функціональних мовах некаррірованние функції декількох аргументів приймають параметри у вигляді одного аргументу, що є кортежем. У мові [[C++]] підтримка кортежів реалізована як шаблон класу std :: tuple (починаючи з C++ 11) і в бібліотеці Boost Tuple Library. Кортеж є стандартним типом в платформі .NET починаючи з версії 4.0.
<source lang="python">
a = (1, 2, 3, 2)
print a[1]
a[1] = 5 #Помилка
</source>
Ця програма на [[Python|Python 2.7]], яка використовує кортеж ''a'', виведе помилку в 3-му рядку: <code>TypeError: 'tuple' object does not support item assignment</code>.
 
:У деяких мовах програмування, наприклад, [[Python]] або [[ML]], кортеж - особливий тип даних. У мові Python кортеж ([[Англійська мова|англ.]] Tuple) відрізняється від списку тим, що елементи кортежу не можна змінювати. Ця програма на [[Python|Python 2.7]], яка використовує кортеж a, виведе помилку в 3-му рядку: <code>TypeError: 'tuple' object does not support item assignment</code>. У мовах програмування зі статичної типізацією кортеж відрізняється від списку тим, що елементи кортежу можуть належати різним типам і набір таких типів заздалегідь визначений типом кортежу, а значить і розмір кортежу також визначено. З іншого боку, колекції (списки, масиви) мають обмеження по типу збережених елементів, але не мають обмеження на довжину. У функціональних мовах некаррірованние[[Каррінг (інформатика)|некарінгована]] функції декількох аргументів приймають параметри у вигляді одного аргументу, що є кортежем. У мові [[C++]] підтримка кортежів реалізована як шаблон класу std :: tuple (починаючи з C++ 11) і в бібліотеці [[Boost|Boost Tuple Library]]. Кортеж є стандартним типом в платформі [[.NET Framework|.NET]] починаючи з версії 4.0.
=== У базах даних ===
 
:У реляційних базах даних кортеж - це елемент відносини. Для N-арного відносини кортеж є упорядкований набір з N значень, по одному значенню для кожного атрибута відносини.
=== У базах даних ===
:У [[Реляційна модель даних|реляційних базах даних]], кортеж -&nbsp;— це елемент відносини[[Відношення (реляційна модель)|відношення]]. Для N-арного відносинивідношення кортеж є упорядкований набір з N значень, по одному значенню для кожного атрибута відносинивідношення.
 
== Примітки ==
[http://znaimo.com.ua/%D0%9A%D0%BE%D1%80%D1%82%D0%B5%D0%B6 Кортеж] на сайті http://znaimo.com.ua
 
== Див. також ==