Zespolony typ danych

Typ zespolony – typ danych w określonym języku programowania, umożliwiający przechowywanie wartości zespolonych i wykonywanie operacji na tych wartościach.

Podstawowe zasady

Liczby zespolone składają się z części rzeczywistej i części urojonej. Obie części są reprezentowane przez wartości rzeczywiste. Komputerowa reprezentacja takich liczb sprowadza się do rezerwacji w pamięci obszaru niezbędnego do przechowania pary liczb, czyli dwóch wartości, wybranego z dostępnych w konkretnym języku programowania, typu rzeczywistego. Nieodłącznie z typem zespolonym wiąże się również zestaw operatorów i funkcji dostarczanych przez język lub konkretną implementację do wykonywania operacji na wartościach zespolonych. Konkretne wartości zespolone w kodzie źródłowym reprezentowane są za pomocną literałów zespolonych lub wyrażeń.

Typ zespolony w językach programowania

PL/I

W PL/I dane zespolone opisane są w deklaracjach atrybutem COMPLEX (lub w skrócie CPLX). Dane zespolone mogą być reprezentowana za pomocną liczb:

  • stałopozycyjnych (atrybut FIXED)
  • zmiennopozycyjnych (atrybut FLOAT)

o różnej reprezentacji w pamięci. Ponadto można stosować atrybut podstawy systemu liczbowego:

Fortran 77

Typ zespolony oznaczany jest słowem kluczowym COMPLEX. Zmienne i wartości zespolone mogą być argumentami standardowych operatorów i funkcji. Przeprowadzane są automatyczne konwersje argumentów rzeczywistych i całkowitych do typu zespolonego, w przypadku użycia do takiego argumentu i argumentu zespolonego lub użycie liczby w kontekście, w którym wymagana jest wartość zespolona. Nie odnosi się to jednak do wartości podwójnej precyzji, w typ przypadku wymagana jest jawne zastosowanie funkcji przekształcającej CMPLX.

Algol 68

Dostępny jest typ zespolony i literały zespolone.

Mathcad

Dostępny jest typ zespolony zapisany w postaci kanonicznej (algebraicznej). Istnieje możliwość tworzenia zmiennych zespolonych. Dostępne są dla tego typu podstawowe operacje zespolone.

Scheme

Dostępny jest typ zespolony i literały zespolone. Liczbę urojoną zapisuje się w postaci:

10+10i
+i

Język scheme posiada także funkcje operujące na liczbach zespolonych, np. sqrt (czyli pierwiastek) zwraca liczbę zespoloną gdy przekaże się liczbę ujemną.

Common Lisp

Dostępny jest typ zespolony i literały zespolone. Liczbę urojoną zapisuje się w postaci:

#C(1 2)

Python

Posiada typ zespolony i literały zespolone w formacie:

10+10j
1j


D

Język D powstał jako obiektowy następca języka C. Wprowadzono w nim wiele rozszerzeń, w tym między innymi typ urojony (ifloat, idouble, ireal)[1] i zespolony typy danych (cfloat, cdouble, creal)[1]. Zdefiniowane są w składni zasady tworzenia literałów urojonych i zespolonych.

Przypisy

  1. a b Użycie różnych identyfikatorów, odpowiadających typom zmiennoprzecinkowym dostępnym w tym języku, z przedrostkiem "i" lub "c", wiąże się z rozmiarem pamięci przeznaczonym na przechowywanie liczby/liczb i ich precyzji.

Bibliografia