Сложный тип данных

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

Некоторые языки программирования предоставляют сложный тип данных для хранения комплексных чисел и арифметические операции как встроенные (примитивные) тип данных.

В некоторых средах программирования термин сложный тип данных (в отличие от примитивных типов данных ) является синонимом составного типа данных.

Содержание
  • 1 Арифметика комплексных чисел
  • 2 Поддержка языка
  • 3 История
  • 4 Ссылки
Арифметика комплексных чисел

Комплексная переменная или значение обычно представляется в виде пары чисел с плавающей запятой. Языки, поддерживающие сложный тип данных, обычно предоставляют специальный синтаксис для построения таких значений и расширяют базовые арифметические операции ('+', '-', '×', '÷'), чтобы воздействовать на них. Эти операции обычно переводятся компилятором в последовательность машинных инструкций с плавающей запятой или в вызовы библиотеки. Эти языки могут также обеспечивать поддержку других операций, таких как форматирование, проверка равенства и т. Д. Как и в Mathematics, эти языки часто интерпретируют значение с плавающей запятой как эквивалент комплексного значения с нулевой мнимой частью.

Поддержка языка
  • Тип FORTRAN COMPLEX
  • Стандарт C99 языка программирования C включает сложные типы данных и сложные математические функции в заголовок стандартной библиотеки <complex.h >
  • Стандартная библиотека C ++ предоставляет шаблонный класс complex, а также сложные математические функции в заголовке
  • Язык программирования Go имеет встроенные типы complex64(каждый компонент - 32-битное число с плавающей запятой) и complex128(каждый компонент 64- bit float)
  • Базовый модуль Perl Math :: Complex обеспечивает поддержку комплексных чисел
  • Python предоставляет встроенный тип complex. Литералы мнимых чисел можно указать, добавив «j». Сложные математические функции предоставляются в модуле стандартной библиотеки cmath
  • Ruby предоставляет класс Complex в модуле стандартной библиотеки complex
  • OCaml поддерживает комплексные числа со стандартным библиотечный модуль Complex
  • Haskell поддерживает комплексные числа с помощью стандартного библиотечного модуля Data.Complex (ранее назывался Complex)
  • Mercury предоставляет комплексные числа с полной поддержкой перегрузки оператора в дополнительном дистрибутиве с использованием libcomplex_numbers.
  • Java не имеет стандартного класса комплексных чисел, но существует ряд несовместимых бесплатных реализаций класса комплексных чисел:
    • Apache Commons Математическая библиотека предоставляет комплексные числа для Java с его сложным классом
    • Библиотека JScience имеет комплексный класс чисел
    • Библиотека JAS позволяет использовать комплексные числа.
    • Netlib имеет класс комплексных чисел для Java
    • javafastcomplex также добавляет поддержку комплексных чисел для Ja va
    • jcomplexnumber - это проект по реализации комплексного числа в Java.
    • JLinAlg включает комплексные числа с произвольной точностью.
  • Common Lisp : Стандарт ANSI Common Lisp поддерживает комплексные числа числа с плавающей запятой, рациональные числа и целые числа произвольной точности. Его основные математические функции определены для комплексных чисел, где это применимо. Например, квадратный корень из -1 - это комплексное число:
    ? (sqrt -1) #C (0 1); результат (sqrt -1)
  • Схема : Комплексные числа и функции (например, sin) включены в спецификацию языка. Однако их реализация в стандарте R5RS является необязательной, а в R6RS - обязательной.
  • .NET Framework предоставляет System.Numerics.Complex начиная с версии 4.0.
  • Для iOS естественно поддерживаются комплексные числа в нотации a + bi . Любая переменная, математическая операция или функция может принимать как действительные, так и комплексные числа в качестве аргументов и возвращать действительные или комплексные числа в зависимости от результата. Например, квадратный корень из -4 является комплексным числом:
    PRINT SQRT (-4)

2i

History

Тип данных COMPLEXбыл предоставлено в FORTRAN IV.

.

Ссылки
Последняя правка сделана 2021-05-15 08:16:05
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте