Jump to content

Сравнение языков программирования (массив)

Это сравнение языков программирования (массива) сравнивает особенности структур данных массива или матричной обработки для различных языков программирования .

Синтаксис

[ редактировать ]

Размеры массива

[ редактировать ]

В следующем списке приведены примеры синтаксиса определения размеров (индекс первого элемента, последнего элемента или размера в элементах).

Некоторые языки индексируются с нуля. Какой-то индекс из одного. Некоторые из них не имеют такого ограничения или даже допускают индексацию по любому перечисляемому типу, а не только по целым числам.

Языки Размер Первый Последний
Есть имя 'Длина имя 'Первый имя 'Последний
АЛГОЛ 68 UPB Имя LWB - Имя +1
UPB 2 имени LWB - 2 имени +1
и т. д.
LWB Имя
LWB 2 Имя
и т. д.
УПБ Название

2 Имя УПБ
и т. д.

АПЛ имя
(⍴ имя )[ индекс ]
⎕IO (⍴ имя )-~⎕IO
(⍴ имя )[ индекс ]-~⎕IO
АВК длина 1 ассорти
C# , Visual Basic (.NET) , Windows PowerShell , F# имя.Длина имя .GetLowerBound( размер ) имя .GetUpperBound( размер )
CFML массивLen ( имя )
имя .len()
1 имя .len()
Ч макс(форма( имя )) 0 макс(форма( имя ))-1
Общий Лисп длины ( имя ) 0 (1- (длина имени ))
Д имя.длина 0 имя.длина -1
$-1
Фортран размер ( имя ) lbound( имя ) ubound ( имя )
Идти только ( имя ) 0 Лен( имя ) - 1
Хаскелл rangeSize ( имя границы ) fst ( имя границы ) snd ( имя границы )
ИСЛИСП длины ( имя ) 0 (1- (длина имени ))
Икона * имя 1 * имя
Кобра , D , Haxe , Java , JavaScript , Scala имя.длина 0 имя.длина - 1
Дж # имя 0 <:@# имя
JavaScript ( ES2022 ) имя.длина 0
имя .at(0) [1]
имя.длина - 1
имя .at(-1) [1]
Юлия длина ( имя )
размер ( имя )
начинать
первый.(оси( имя ))
конец
последний.(оси( имя ))
жаргон счет ( имя ) 1 getLast( имя )
LiveCode длина ( имя ) 1
первый
-1
последний
Два # имя 1 по соглашению; любое целое число [2] # имя
Математика Длина[ имя ] 1
Имя ]
-1
Фамилия ]
MATLAB , GNU Октава длина ( имя ) 1 конец
Nim имя .len имя .low [3] имя .высокое
Оберон ТОЛЬКО ( имя ) 0 ЛЕН ( имя ) - 1
Объектный Паскаль Длина ( имя ) 0
низкий ( имя )
Длина( имя )-1
высокий ( имя )
Цель-C ( NSArray * только) [ количество имен ] 0 [ количество имен ] - 1
OCaml массива.длина Имя 0 массива.длина Имя - 1
Перл скаляр(@ имя ) $[ $# имя
PHP счет ( имя ) 0 количество( имя ) - 1
ПЛ/Я дим( имя [,дим]) lbound( имя [,dim]) hbound( имя [,dim])
Питон только ( имя ) 0 -1
Лен( имя ) - 1
Р длина ( имя ) 1 длина ( имя )
Раку @ имя.elems 0 @ имя .конец
Красный длина? имя имя /1
имя
фамилия
Руби имя .размер 0
имя .первое
-1
имя .размер - 1
имя .фамилия
Ржавчина имя .len() 0 имя .len() - 1
S-только длина ( имя ) 0 -1
длина( имя )-1
Схема длины вектора ( вектор ) 0 длины вектора (- ( вектор ) 1)
Смолток имени размер 1
имя первое
имени размер
фамилия фамилия
Быстрый имя. считать 0 имя. кол-во - 1
Юникон * имя 1 * имя
Визуальный Бейсик UBound( имя )-LBound( имя )+1 LBound( имя ) UBound( имя )
Вольфрам Язык Длина[ имя ] 1
Имя ]
-1
Фамилия ]
Хохо UBound( имя ) 0 UBound( имя )
XPath / XQuery счетчик ($ имя ) 1 счетчик ($ имя )
последний()
массив: размер ( имя ) [4]

Индексирование

[ редактировать ]

В следующем списке приведены примеры синтаксиса доступа к одному элементу массива.

Формат Языки
имя [ индекс ] или имя [ индекс 1 , индекс 2 ] и т. д. АЛГОЛ 58 , АЛГОЛ 60 , АЛГОЛ 68 , AWK , Джулия , Модуль , Паскаль , Объектный Паскаль , C # , S-Lang [5] Иконка , Юникон
имя [ индекс ] или имя [ индекс 1 ; индекс 2 ] и т. д.
или индекс имя или индекс 1 индекс 2 имя и т. д.
АПЛ
имя [ индекс ] ActionScript , C , CFML , Ch , Cobra , C++ , D , Go , Haxe , Java , JavaScript , Lingo , Lua , Nim , Objective-C ( NSArray *), Перл , [5] PHP , Питон , [5] Р , Руби , [5] Раст , Свифт
$ имя [ индекс ] Перл , [5] Windows PowerShell , [5] XPath / XQuery [4]
@ имя [ индекс ] Раку
имя ( индекс ) или имя ( индекс 1 , индекс 2 ) и т. д. Ada , ALGOL W , BASIC , COBOL , Fortran , RPG , GNU Octave , MATLAB , PL/I , Scala , Visual Basic , Visual Basic (.NET) , Xojo
$ имя ( индекс ) XPath / XQuery [4]
имя .( индекс ) OCaml
имя .[ индекс ] F# , OCaml
имя/индекс Красный
имя ! индекс Хаскелл
$ имя ? индекс XPath / XQuery [4]
векторной ссылки ( индекс имени ) Схема
( индекс имени арефа ) Общий Лисп
elt ( указатель имени ) ИСЛИСП
имя [[ индекс ]] Математика , [5] Вольфрам Язык
имя в: индекс Смолток
[ имя объектаAtIndex: индекс ] Цель-C ( NSArray * только)
индекс { имя Дж
имя.элемент(индекс) или имя @ индекс [6] Эйфелева

В следующем списке приведены примеры синтаксиса доступа к диапазону элементов массива.

В следующей таблице:

  • first – индекс первого элемента в срезе
  • последний – индекс последнего элемента в срезе
  • end – на единицу больше, чем индекс последнего элемента в срезе
  • len – длина среза (= конец – первый)
  • шаг – количество элементов массива в каждом (по умолчанию 1)
Формат Языки
имя [ первое : последнее ] АЛГОЛ 68 , [7] Юля , Иконка , Юникон
имя [ первое +(⍳ len )-⎕IO] АПЛ
имя [ первое : конец : шаг ] Питон [8] [9]
имя [ первое : конец ] Идти
имя [ первое .. последнее ] Паскаль , Объект Паскаль , Делфи , Ним
$ имя [ первое .. последнее ] Windows PowerShell
@ имя [ первое .. последнее ] Перл [10]
имя [ первое .. последнее ]
имя [ первый ... конец ]
имя [ имя , лен ]
Руби [9]
копировать/пропускать часть имени сначала len Красный
имя ( имя..фамилия ) Есть [7]
имя ( первое : фамилия ) Фортран , [7] [8] GNU Октава , MATLAB [7] [10]
имя [[ первое ;; последний ;; шаг ]] Математика , [7] [8] [9] Вольфрам Язык
имя [[ первое : последнее ]] S-только [7] [8] [10]
имя .[ первый .. шаг .. последний ] Ф#
имя.slice ( первый , конец ) Да , JavaScript , Scala
имя .slice( первый , len ) CFML
array_slice( имя , первое , длина ) PHP [9]
( имя подпоследовательности, первый конец ) Общий Лисп
( имя подпоследовательности, первый конец ) ИСЛИСП
Имя Array.sub, первая длина OCaml
[ имя subarrayWithRange:NSMakeRange( first , len )] Цель-C ( NSArray * только)
( первый ([+i.@(-~) конец ){ имя Дж
имя [ первый ..< конец ]
имя [ первое ... последнее ]
Быстрый
копия имениОт : первого до: последнего
имя copyFrom: первый счетчик: len
Смолток
имя [ первый .. конец ] Д , С# [11] [12]
имя [ первый .. конец ]
имя [ первое ..= последнее ]
Ржавчина
имя [ первое : конец ] Кобра
table.move(name, first, last, 1, {}) Два [13]

Список перекрестных ссылок системы массивов

[ редактировать ]
Язык По умолчанию
базовый индекс
определяемый
тип индекса [14]
определяемый
базовый индекс
Связанный чек Многомерный Динамический размер Векторизованные операции
Есть тип индекса [15] да да проверено да нагревать [16] некоторые, другие определяемые [17]
АЛГОЛ 68 1 нет [18] да варьируется да да определяемый пользователем
АПЛ 1 ? 0 или 1 [19] проверено да да да
АВК 1 да, косвенно нет непроверенный да, как строка с разделителями да, перефразировал нет
БАЗОВЫЙ 0 ? нет проверено нет нагревать [16] ?
С 0 нет нет [20] непроверенный частично нагревать, [16] [21] куча [22] нет
Ч 0 нет нет проверено да, еще массив массива [23] нагревать, [16] [21] куча [22] да
С++ [17] 0 нет нет [20] непроверенный да, еще массив массива [23] куча [22] нет
С# 0 нет частичный [24] проверено да куча [22] [25] да ( LINQ выбор )
CFML 1 нет нет проверено да, еще массив массива [23] да нет
КОБОЛ 1 нет [26] нет проверено массив массива [23] [27] нет [28] некоторые внутренние особенности
Кобра 0 нет нет проверено массив массива [23] куча ?
Общий Лисп 0 ? нет проверено [29] да да да (карта или карта-в)
Д 0 да [30] нет варьируется [31] да да ?
Ф# 0 нет частичный [24] проверено да куча [22] [25] да (карта)
FreeBASIC 0 нет да проверено да нагревать, [16] нагревать [32] ?
Фортран 1 да да варьируется [33] да да да
ФоксПро 1 ? нет проверено да да ?
Идти 0 нет нет проверено массив массива [23] нет [34] нет
Взломать 0 да да проверено да да да
Хаскелл 0 да [35] да проверено да, еще массив массива [23] нагревать [16] ?
МВУ 0 ? нет проверено да да да
ИСЛИСП 0 ? нет проверено да нагревать [16] да (карта или карта-в)
Дж 0 ? нет проверено да да да
Ява [17] 0 нет нет проверено массив массива [23] нагревать [16] ?
JavaScript 0 нет нет проверено [36] массив массива [23] да да
Юлия 1 да да отмечено (может быть пропущено локально или глобально пользователем) да, еще массив массива да да
жаргон 1 ? ? непроверенный да да да
Два 1 ? частичный [37] проверено массив массива [23] да ?
Математика 1 нет нет проверено да да да
МАТЛАБ 1 ? нет проверено да [38] да да
Nim 0 да [3] да необязательный [39] массив массива [23] да да [40]
Оберон 0 ? нет проверено да нет ?
Оберон-2 0 ? нет проверено да да ?
Цель-C [17] 0 нет нет проверено массив массива [23] да нет
OCaml 0 нет нет проверено по умолчанию массив массива [23] нагревать [16] ?
Паскаль , Объектный Паскаль тип индекса [15] да да варьируется [41] да варьируется [42] некоторый
Перл 0 нет да ( $[) проверено [36] массив массива [23] да нет [43]
Раку 0 нет нет проверено [36] да да да
PHP 0 да [44] да [44] проверено [44] да да да
ПЛ/Я 1 да да необязательный да нет да [45]
Питон 0 нет нет проверено массив массива [23] да нет [46]
РПГ 1 нет нет ? нет нет ?
Р 1 ? нет непроверенный да, еще массив массива да да
Кольцо 1 ? частичный [37] проверено массив массива [23] да ?
Руби 0 нет нет проверено [36] массив массива [23] да ?
Ржавчина 0 нет нет проверено массив массива [23] нет ?
Сасс 1 нет нет проверено массив массива [23] нагревать [31] ?
S-только 0 ? нет проверено да да да
Скала 0 нет нет проверено массив массива [23] нагревать [16] да (карта)
Схема 0 ? нет проверено массив массива [23] нагревать [16] да (карта)
Смолток [17] 1 ? нет проверено массив массива [23] да [47] ?
Быстрый 0 нет нет проверено массив массива [23] да ?
Визуальный Бейсик 0, 1 или тип индекса [48] нет да проверено да да ?
Визуальный Бейсик (.NET) 0 или тип индекса [48] нет частичный [24] проверено да да да ( LINQ выбор )
Вольфрам Язык 1 нет нет проверено да да да
Windows PowerShell 0 нет нет проверено да куча ?
Хохо 0 нет нет проверено да да нет
XPath / XQuery 1 нет нет проверено массив массива [4] [23] да да

Векторизованные операции с массивами

[ редактировать ]

Некоторые компилируемые языки, такие как Ada и Fortran , а также некоторые языки сценариев, такие как IDL , MATLAB и S-Lang , имеют встроенную поддержку векторизованных операций с массивами. Например, чтобы выполнить поэлементное суммирование двух массивов, а и б произвести третий c , нужно только написать

c = a + b

Помимо поддержки векторизованных арифметических и реляционных операций, эти языки также векторизуют общие математические функции, такие как синус. Например, если x — массив, тогда

y = sin (x)

приведет к массиву y, элементы которого являются синусом соответствующих элементов массива х .

Также поддерживаются векторизованные индексные операции. В качестве примера:

even = x(2::2);
odd = x(::2);

это то, как можно использовать Фортран для создания массивов из четных и нечетных записей массива. Другое распространенное использование векторизованных индексов — операция фильтрации. Рассмотрим операцию ограничения синусоидальной волны, при которой амплитуды, превышающие 0,5, должны быть установлены на 0,5. Используя S-Lang , это можно сделать с помощью

y = sin(x);
y[where(abs(y)>0.5)] = 0.5;

Математические матричные операции

[ редактировать ]
Язык/
Библиотека
Создавать Определитель Транспонировать Элемент Столбец Ряд Собственные значения
АПЛ mdimsx11 x12 ... -.×m m m[i;j] или i jm m[;j] или j[2]m или
j1m или j⌷⍉m
m[i;] или im 1m
Фортран m = RESHAPE([x11, x12, ...], SHAPE(m)) TRANSPOSE(m) m(i,j) m(:,j) m(i,:)
Ч [49] m = {...} determinant(m) transpose(m) m[i-1][j-1] shape(m,0) shape(m,1) eigen(output, m, NULL)
Джулия и ее стандартная библиотека
LinearAlgebra
m = [1 2; 3 4] или
m = [
    1 2
    3 4
]
det(m) transpose(m) или

m' для реальных матриц

m[i, j] m[:, j] m[i, :] eigen(m).values
Математика /
Вольфрам Язык
{{x11, x12, ...}, ...} Det[m] Transpose[m] m[[i,j]] m[[;;,j]] m[[i]] Eigenvalues[m]
МАТЛАБ /
GNU Октава
m = [...] det(m) m.' m(i,j) m(:,j) m(i,:) eig(m)
NumPy m = mat(...) linalg.det(m) m.T m[i-1,j-1] m[:,j-1] m[i-1,:] linalg.eigvals(m)
Р m <- matrix(...) или m <- array(...) det(m) t(m) m[i, j] m[, j] m[i, ] eigen(m)
S-только m = reshape([x11, x12, ...], [new-dims]) m = transpose(m) m[i,j] m[*,j] m[j,*]
СимПи m = Matrix(...) m.det() m.T m[i-1,j-1] m.col(j-1) m.row(i-1) m.eigenvals()
  1. ^ Jump up to: а б «Спецификация языка ECMAScript® 2025» .
  2. ^ «Программирование на Lua: 11.1» .
  3. ^ Jump up to: а б «Урок Нима (Часть I)» .
  4. ^ Jump up to: а б с д и XPath/XQuery имеет два типа массивов. Последовательности (1,2,3), которые не могут быть вложены в массивы версий XPath/XQuery 3.1. массив { 1,2,3 } или [1,2,3] который может.
  5. ^ Jump up to: а б с д и ж г Индекс может быть отрицательным числом, указывающим соответствующее количество мест до конца массива.
  6. ^ «Эйффельдок: МАССИВ» .
  7. ^ Jump up to: а б с д и ж Срезы для многомерных массивов также поддерживаются и определяются аналогичным образом.
  8. ^ Jump up to: а б с д Срезы типа first:last:step также поддерживаются.
  9. ^ Jump up to: а б с д последний или end может быть отрицательным числом, указывающим на необходимость остановки на соответствующем количестве мест перед концом массива.
  10. ^ Jump up to: а б с В более общем смысле, для одномерных массивов Perl и S-Lang допускают фрагменты вида array[indices], где indices может быть диапазоном, указанным в сноске 2, или явным списком индексов, например, ' [0,9,3,4]', или смесь того и другого, например, A[[[0:3]],7,9,[11:2:-3]]].
  11. ^ C# 8.0 (по состоянию на 29 августа 2019 г.) Предлагаемая функция )
  12. ^ «Диапазоны — предложения по языку C# 8.0» . Документы Майкрософт . Майкрософт . Проверено 29 августа 2019 г.
  13. ^ «Справочное руководство по Lua 5.3» . www.lua.org . Проверено 2 апреля 2022 г.
  14. ^ Тип индекса может быть свободно выбранным целочисленным , перечисляемым или символьным типом . О массивах с некомпактными типами индексов см.: Ассоциативный массив.
  15. ^ Jump up to: а б Базовый индекс по умолчанию — это наименьшее значение используемого типа индекса.
  16. ^ Jump up to: а б с д и ж г час я дж к Размер можно выбрать только при инициализации, после чего он фиксируется.
  17. ^ Jump up to: а б с д и В этом списке строго сравниваются языковые особенности. На каждом языке (даже на языке ассемблера ) можно улучшить обработку массивов с помощью дополнительных библиотек. В этом языке улучшена обработка массивов как часть стандартной библиотеки.
  18. ^ Массивы ALGOL 68 должны быть индексированы (и разделены) по типу. ИНТ . Однако хэш-функция может использоваться для преобразования других типов в ИНТ . например имя [ хеш("строка") ]
  19. ^ База индексации может быть 0 или 1 в соответствии с системной переменной. ⎕ИО . Это значение может применяться ко всей «рабочей области» или быть локализовано для определяемой пользователем функции или одной примитивной функции с помощью оператора Variant ( ).
  20. ^ Jump up to: а б Поскольку C не проверяет индексы по привязке, можно определить указатель на внутреннюю часть любого массива, который будет символически действовать как псевдомассив, вмещающий отрицательные индексы или любое начало целочисленного индекса.
  21. ^ Jump up to: а б C99 позволяет использовать массивы переменного размера; однако почти нет компилятора, поддерживающего эту новую функцию.
  22. ^ Jump up to: а б с д и Размер можно выбрать только при инициализации, когда память выделяется в куче, а не в стеке. Это замечание не обязательно делать для языка, который всегда размещает массивы в куче.
  23. ^ Jump up to: а б с д и ж г час я дж к л м н тот п д р с т в v В х Позволяет создавать массивы массивов, которые можно использовать для эмуляции большинства, но не всех аспектов многомерных массивов.
  24. ^ Jump up to: а б с Базу можно изменить при инициализации с помощью System.Array.CreateInstance (который возвращает System.Array ), но не при использовании синтаксиса языка. Массивы с ненулевыми базовыми индексами не относятся к тому же типу, что и массивы с нулевыми базовыми индексами, и ими нельзя манипулировать с помощью синтаксиса языка ( GetValue и SetValue ) или привести к определенному типу ( Вместо этого необходимо использовать методы T[] в C# или T() в VB.NET), предотвращая поломку кода, предполагая, что базовые индексы равны нулю.
  25. ^ Jump up to: а б Позволяет создавать массивы фиксированного размера в «небезопасном» коде, обеспечивая улучшенную совместимость с другими языками.
  26. ^ Массивы COBOL могут индексироваться с помощью типов «INDEX», отличных от целочисленных типов.
  27. ^ Хотя в COBOL есть только массивы массивов, доступ к элементам массива можно получить с помощью синтаксиса, подобного многомерному массиву, где язык автоматически сопоставляет индексы с массивами, содержащими элемент, на который ссылаются.
  28. ^ COBOL предоставляет способ указать, что полезный размер массива является переменным, но он никогда не может превышать объявленный максимальный размер, который также является выделенным размером.
  29. ^ Большинство реализаций Common Lisp позволяют выборочно отключать проверку.
  30. ^ Ассоциативные массивы - язык программирования D
  31. ^ Jump up to: а б Поведение можно настроить с помощью переключателей компилятора. Как и в DMD 1.0, границы проверяются в режиме отладки и снимаются в режиме выпуска для повышения эффективности.
  32. ^ FreeBASIC поддерживает как массивы переменной длины, так и массивы фиксированной длины. Массивы, объявленные без диапазона индексов, создаются как массивы переменной длины, а массивы с объявленным диапазоном создаются как массивы фиксированной длины.
  33. ^ Почти все реализации Фортрана предлагают варианты проверки границ с помощью переключателей компилятора. Однако по умолчанию проверка границ обычно отключена для повышения эффективности.
  34. ^ Хотя тип Array в Golang не имеет динамического размера, тип данных Slice имеет динамический размер и используется гораздо чаще, чем массивы.
  35. ^ Массивы Haskell (Data.Array) позволяют использовать в качестве типа индекса любой тип, являющийся экземпляром Ix. Таким образом, пользовательский тип может быть определен и использован в качестве индексного типа, если он является экземпляром Ix. Кроме того, кортежи типов Ix также являются типами Ix; это обычно используется для реализации многомерных массивов
  36. ^ Jump up to: а б с д В этих языках можно получить доступ или записать индекс массива, больший или равный длине массива, и массив неявно вырастет до этого размера. На первый взгляд может показаться, что границы не проверяются; однако границы проверяются, чтобы принять решение об увеличении массива, и у вас нет небезопасного доступа к памяти, как в C.
  37. ^ Jump up to: а б Указав базовый индекс, можно создавать массивы с произвольной базой. Однако по умолчанию оператор длины Lua не учитывает базовый индекс массива при вычислении длины. Это поведение можно изменить с помощью метаметодов.
  38. ^ Не менее 2 измерений (скалярные числа — это массивы 1×1, векторы — массивы 1×n или n×1).
  39. ^ «Руководство пользователя компилятора Nim» .
  40. ^ «Векторизация — логическая векторная операция в стиле R в Nim» .
  41. ^ Многие реализации ( Turbo Pascal , Object Pascal ( Delphi ), Free Pascal ) позволяют изменять поведение с помощью переключателей компилятора и встроенных директив.
  42. ^ Зависит от реализации. Более новые реализации ( Free Pascal , Object Pascal ( Delphi )) позволяют использовать динамические массивы на основе кучи.
  43. ^ Стандартные типы данных массива Perl не поддерживают векторизованные операции, как определено здесь. Однако расширение языка данных Perl добавляет объекты массива с этой возможностью.
  44. ^ Jump up to: а б с «Массивы» PHP — это ассоциативные массивы. В качестве ключей (индексов) можно использовать целые числа и строки; В качестве ключа также можно использовать числа с плавающей запятой, но они усекаются до целых чисел. На самом деле не существует никакого «базового индекса» или «границ».
  45. ^ Размер можно выбрать при объявлении массива или при его выделении, после чего он фиксируется.
  46. ^ Стандартный тип массива Python , list, не поддерживает векторизованные операции, определенные здесь. Однако расширение numpy добавляет объекты массива с этой возможностью.
  47. ^ Класс Array имеет фиксированный размер, но OrderedCollection является динамическим.
  48. ^ Jump up to: а б Microsoft QBASIC, QuickBASIC , Visual Basic и VBA имели/имеют возможность указывать Option Base 1 , что приводило к тому, что все массивы в модуле по умолчанию начинались с 1 вместо 0. Поддержка Option Base была прекращена в Visual Basic (. СЕТЬ) . В различных реализациях Microsoft BASIC массивы могут быть DIMensioned с помощью to, чтобы указать минимальное и максимальное значения индекса (например, DIM MyArray(2 to 50) AS STRING будет иметь первый индекс 2 вместо значения по умолчанию).
  49. ^ Численные характеристики Ch
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dda26f129123cce17ad77502410d6cae__1722253920
URL1:https://arc.ask3.ru/arc/aa/dd/ae/dda26f129123cce17ad77502410d6cae.html
Заголовок, (Title) документа по адресу, URL1:
Comparison of programming languages (array) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)